diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-01-25 00:43:16 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-01-25 00:43:16 +0000 |
commit | 2c82da7073399d3e3cd40967458faab8f503dc8c (patch) | |
tree | 73bb90abc90de5802aff13caa8bb36998eb1eb32 /gst/avi/gstavidemux.c | |
parent | 9e67f9a283b2205f5161de52bea738d3d8938e78 (diff) |
gst/avi/gstavidemux.c: The index reading was broken. The rest worked fine, but the whole goal of my rewrite was to ma...
Original commit message from CVS:
2004-01-25 Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih),
(gst_avi_demux_stream_odml), (gst_avi_demux_stream_index):
The index reading was broken. The rest worked fine, but the whole
goal of my rewrite was to make avidemux readable, and this was
not at all readable. Please use typed variables.
Diffstat (limited to 'gst/avi/gstavidemux.c')
-rw-r--r-- | gst/avi/gstavidemux.c | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 431e8cbd..79b183ea 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -705,8 +705,7 @@ gst_avi_demux_stream_avih (GstAviDemux *avi, GstRiffRead *riff = GST_RIFF_READ (avi); guint32 tag; GstBuffer *buf; - gst_riff_avih avih; - guint32 *data; + gst_riff_avih avih, *_avih; if (!gst_riff_read_data (riff, &tag, &buf)) return FALSE; @@ -723,21 +722,21 @@ gst_avi_demux_stream_avih (GstAviDemux *avi, return FALSE; } - data = (guint32 *) GST_BUFFER_DATA (buf); - avih.us_frame = GUINT32_FROM_LE (*data); data++; - avih.max_bps = GUINT32_FROM_LE (*data); data++; - avih.pad_gran = GUINT32_FROM_LE (*data); data++; - avih.flags = GUINT32_FROM_LE (*data); data++; - avih.tot_frames = GUINT32_FROM_LE (*data); data++; - avih.init_frames = GUINT32_FROM_LE (*data); data++; - avih.streams = GUINT32_FROM_LE (*data); data++; - avih.bufsize = GUINT32_FROM_LE (*data); data++; - avih.width = GUINT32_FROM_LE (*data); data++; - avih.height = GUINT32_FROM_LE (*data); data++; - avih.scale = GUINT32_FROM_LE (*data); data++; - avih.rate = GUINT32_FROM_LE (*data); data++; - avih.start = GUINT32_FROM_LE (*data); data++; - avih.length = GUINT32_FROM_LE (*data); data++; + _avih = (gst_riff_avih *) GST_BUFFER_DATA (buf); + avih.us_frame = GUINT32_FROM_LE (_avih->us_frame); + avih.max_bps = GUINT32_FROM_LE (_avih->max_bps); + avih.pad_gran = GUINT32_FROM_LE (_avih->pad_gran); + avih.flags = GUINT32_FROM_LE (_avih->flags); + avih.tot_frames = GUINT32_FROM_LE (_avih->tot_frames); + avih.init_frames = GUINT32_FROM_LE (_avih->init_frames); + avih.streams = GUINT32_FROM_LE (_avih->streams); + avih.bufsize = GUINT32_FROM_LE (_avih->bufsize); + avih.width = GUINT32_FROM_LE (_avih->width); + avih.height = GUINT32_FROM_LE (_avih->height); + avih.scale = GUINT32_FROM_LE (_avih->scale); + avih.rate = GUINT32_FROM_LE (_avih->rate); + avih.start = GUINT32_FROM_LE (_avih->start); + avih.length = GUINT32_FROM_LE (_avih->length); /* debug stuff */ GST_INFO ("avih tag found:"); @@ -958,7 +957,7 @@ gst_avi_demux_stream_odml (GstAviDemux *avi) switch (tag) { case GST_RIFF_TAG_dmlh: { - gst_riff_dmlh dmlh; + gst_riff_dmlh dmlh, *_dmlh; GstBuffer *buf; if (!gst_riff_read_data (riff, &tag, &buf)) @@ -969,7 +968,8 @@ gst_avi_demux_stream_odml (GstAviDemux *avi) gst_buffer_unref (buf); break; } - dmlh.totalframes = GUINT32_FROM_LE (*((guint32 *) GST_BUFFER_DATA (buf))); + _dmlh = (gst_riff_dmlh *) GST_BUFFER_DATA (buf); + dmlh.totalframes = GUINT32_FROM_LE (_dmlh->totalframes); GST_INFO ("dmlh tag found:"); GST_INFO (" totalframes: %u", dmlh.totalframes); @@ -1048,18 +1048,17 @@ gst_avi_demux_stream_index (GstAviDemux *avi) GST_INFO ("%u index entries", avi->index_size); for (i = 0; i < avi->index_size; i++) { - gst_riff_index_entry entry; + gst_riff_index_entry entry, *_entry; avi_stream_context *stream; gint stream_nr; gst_avi_index_entry *target; GstFormat format; - guint32 *data; - data = &((guint32 *) GST_BUFFER_DATA (buf))[i * 4]; - entry.id = GUINT32_FROM_LE (data); - entry.offset = GUINT32_FROM_LE (data + 1); - entry.flags = GUINT32_FROM_LE (data + 2); - entry.size = GUINT32_FROM_LE (data + 3); + _entry = &((gst_riff_index_entry *) GST_BUFFER_DATA (buf))[i]; + entry.id = GUINT32_FROM_LE (_entry->id); + entry.offset = GUINT32_FROM_LE (_entry->offset); + entry.flags = GUINT32_FROM_LE (_entry->flags); + entry.size = GUINT32_FROM_LE (_entry->size); target = &avi->index_entries[i]; stream_nr = CHUNKID_TO_STREAMNR (entry.id); |