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.
This commit is contained in:
Ronald S. Bultje 2004-10-05 15:28:08 +00:00
parent 22011be036
commit 5dab8b214f
2 changed files with 11 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2004-10-05 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/avi/gstavidemux.c: (gst_avi_demux_massage_index):
Prevent overwrite of size member. Makes audio sound crappy.
2004-10-05 Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
* gst/typefind/gsttypefindfunctions.c: (plugin_init):

View file

@ -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;