From 5dab8b214f747e9d0a01f1943c78904dd93930cf Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Tue, 5 Oct 2004 15:28:08 +0000 Subject: [PATCH] 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. --- ChangeLog | 5 +++++ gst/avi/gstavidemux.c | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3f16c25..bcd8572 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-10-05 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): + Prevent overwrite of size member. Makes audio sound crappy. + 2004-10-05 Stephane Loeuillet * gst/typefind/gsttypefindfunctions.c: (plugin_init): diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 84e5bac..6ea3c7c 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; -- 2.7.4