]> git.sesse.net Git - vlc/blobdiff - modules/demux/avi/avi.h
some cleanup in file info code, add fourccs in hex form ( some users want
[vlc] / modules / demux / avi / avi.h
index 958c06463f0ed13e2bd608e3050de4fb251bd94e..2f54fbb7b5d651bfd58c5b28801247f7d0580201 100644 (file)
@@ -2,14 +2,14 @@
  * avi.h : AVI file Stream input module for vlc
  *****************************************************************************
  * Copyright (C) 2001 VideoLAN
- * $Id: avi.h,v 1.5 2002/10/27 15:37:16 fenrir Exp $
+ * $Id: avi.h,v 1.11 2003/06/24 23:11:35 fenrir Exp $
  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
- * 
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
 
-
 typedef struct avi_packet_s
 {
-    u32     i_fourcc;
-    off_t   i_pos;
-    u32     i_size;
-    u32     i_type;     // only for AVIFOURCC_LIST
-    
-    u8      i_peek[8];  //first 8 bytes
-
-    int     i_stream;
-    int     i_cat;
+    vlc_fourcc_t i_fourcc;
+    off_t        i_pos;
+    uint32_t     i_size;
+    vlc_fourcc_t i_type;     // only for AVIFOURCC_LIST
+
+    uint8_t      i_peek[8];  //first 8 bytes
+
+    unsigned int i_stream;
+    unsigned int i_cat;
 } avi_packet_t;
 
 
 typedef struct AVIIndexEntry_s
 {
-    u32 i_id;
-    u32 i_flags;
-    u32 i_pos;
-    u32 i_length;
-    u32 i_lengthtotal;
+    vlc_fourcc_t i_id;
+    uint32_t     i_flags;
+    off_t        i_pos;
+    uint32_t     i_length;
+    uint32_t     i_lengthtotal;
 
 } AVIIndexEntry_t;
 
 typedef struct avi_stream_s
 {
-    int i_activated;
+    vlc_bool_t      b_activated;
 
-    int i_cat;           /* AUDIO_ES, VIDEO_ES */
+    unsigned int    i_cat; /* AUDIO_ES, VIDEO_ES */
     vlc_fourcc_t    i_fourcc;
     vlc_fourcc_t    i_codec;
 
     int             i_rate;
     int             i_scale;
     int             i_samplesize;
-    
+
     es_descriptor_t     *p_es;
 
     AVIIndexEntry_t     *p_index;
-    int                 i_idxnb;
-    int                 i_idxmax; 
+    unsigned int        i_idxnb;
+    unsigned int        i_idxmax;
 
-    int                 i_idxposc;  /* numero of chunk */
-    int                 i_idxposb;  /* byte in the current chunk */
+    unsigned int        i_idxposc;  /* numero of chunk */
+    unsigned int        i_idxposb;  /* byte in the current chunk */
 
 } avi_stream_t;
 
@@ -72,17 +71,24 @@ struct demux_sys_t
 {
     mtime_t i_time;
     mtime_t i_length;
-    mtime_t i_pcr; 
+    mtime_t i_pcr;
 
-    int     b_seekable;
+    vlc_bool_t  b_seekable;
     avi_chunk_t ck_root;
-    
+
+    vlc_bool_t  b_odml;
+    vlc_bool_t  b_interleaved;      /* for seeking purpose */
+
     off_t   i_movi_begin;
-    off_t   i_movi_lastchunk_pos; /* XXX position of last valid chunk */
-    
-    /* number of stream and informations*/
-    int i_streams;
-    avi_stream_t  **pp_info; 
+    off_t   i_movi_lastchunk_pos;   /* XXX position of last valid chunk */
+
+    /* number of streams and information */
+    unsigned int i_streams;
+    avi_stream_t  **pp_info;
+
+#ifdef __AVI_SUBTITLE__
+    subtitle_demux_t    *p_sub;
+#endif
 
 };