summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.h
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2007-02-12 15:29:44 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2007-02-12 15:29:44 +0000
commit114afecd8daae4f16903aa90ee1261d051260b1e (patch)
treede55369019b05414354770f134e64e820b08e389 /gst/avi/gstavidemux.h
parent77790aa2dc976ef56a54ef0512f650ed2bc096d4 (diff)
gst/avi/gstavidemux.*: Save some memory (8%) by repacking the index entry structure (more to come). Add more FIXMEs t...
Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_class_init), (gst_avi_demux_reset), (gst_avi_demux_index_entry_for_time), (gst_avi_demux_handle_src_query), (gst_avi_demux_parse_superindex), (gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream), (gst_avi_demux_parse_index), (gst_avi_demux_stream_index), (gst_avi_demux_sync), (gst_avi_demux_next_data_buffer), (gst_avi_demux_stream_scan), (gst_avi_demux_massage_index), (gst_avi_demux_calculate_durations_from_index), (gst_avi_demux_push_event), (gst_avi_demux_stream_header_pull), (gst_avi_demux_do_seek), (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data), (gst_avi_demux_loop): * gst/avi/gstavidemux.h: Save some memory (8%) by repacking the index entry structure (more to come). Add more FIXMEs to questionable parts.
Diffstat (limited to 'gst/avi/gstavidemux.h')
-rw-r--r--gst/avi/gstavidemux.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h
index 7912ec1a..599ef9e4 100644
--- a/gst/avi/gstavidemux.h
+++ b/gst/avi/gstavidemux.h
@@ -47,15 +47,19 @@ G_BEGIN_DECLS
((((chunkid) & 0xff) - '0') * 10 + \
(((chunkid) >> 8) & 0xff) - '0')
+#define GST_AVI_INDEX_ENTRY_FLAG_KEYFRAME 1
+
+/* 48 bytes */
typedef struct {
- gint index_nr;
- gint stream_nr;
- guint64 ts, dur;
- guint32 flags;
+ guint index_nr; /* = (entry-index_entries)/sizeof(gst_avi_index_entry); */
+ guchar stream_nr;
+ guchar flags;
+ guint64 ts;
+ guint64 dur; /* =entry[1].ts-entry->ts */
guint64 offset;
- gint size;
- guint64 bytes_before;
- guint32 frames_before;
+ guint64 bytes_before; /* calculated */
+ guint32 frames_before; /* calculated */
+ guint32 size; /* could be read from the chunk (if we don't split) */
} gst_avi_index_entry;
typedef struct {
@@ -95,6 +99,7 @@ typedef struct {
/* VBR indicator */
gboolean is_vbr;
+ /* openDML support (for files >4GB) */
gboolean superindex;
guint64 *indexes;