summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavidemux.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-10-05 15:28:08 +0000
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>2004-10-05 15:28:08 +0000
commit5dab8b214f747e9d0a01f1943c78904dd93930cf (patch)
tree920392b0703c84fcbc684d71776ed7e11afe79fa /gst/avi/gstavidemux.c
parent22011be036800d1fb41b12ce9152c047f0afb186 (diff)
gst/avi/gstavidemux.c: Prevent overwrite of size member. Makes audio sound crappy.
Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): Prevent overwrite of size member. Makes audio sound crappy.
Diffstat (limited to 'gst/avi/gstavidemux.c')
-rw-r--r--gst/avi/gstavidemux.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 84e5bace..6ea3c7c9 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -1332,7 +1332,7 @@ gst_avi_demux_stream_scan (GstAviDemux * avi,
* order. The end result should be a smoother playing AVI.
*/
-static gint
+static gint G_GNUC_UNUSED
sort (gst_avi_index_entry * a, gst_avi_index_entry * b)
{
if (a->ts > b->ts)
@@ -1415,24 +1415,25 @@ gst_avi_demux_massage_index (GstAviDemux * avi,
for (i = 0; i < num_added + 1; i++) {
gst_avi_index_entry *entry2;
- if (i == 0)
+ if (i == 0) {
entry2 = entry;
- else {
+ } else {
entry2 = &entries[i - 1];
list = g_list_insert_before (list, one->next, entry2);
entry = one->data;
one = one->next;
+ memcpy (entry2, entry, sizeof (gst_avi_index_entry));
}
if (old_size >= ideal_size) {
entry2->size = ideal_size;
old_size -= ideal_size;
- } else
+ } else {
entry2->size = old_size;
+ }
entry2->dur = GST_SECOND * entry2->size / stream->bitrate;
if (i != 0) {
- memcpy (entry2, entry, sizeof (gst_avi_index_entry));
entry2->index_nr++;
entry2->ts += entry->dur;
entry2->offset += entry->size;