From 114afecd8daae4f16903aa90ee1261d051260b1e Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 12 Feb 2007 15:29:44 +0000 Subject: 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. --- gst/avi/gstavidemux.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'gst/avi/gstavidemux.h') 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; -- cgit