mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-03 13:02:29 +00:00
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:
parent
22011be036
commit
5dab8b214f
2 changed files with 11 additions and 5 deletions
|
@ -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>
|
2004-10-05 Stephane Loeuillet <stephane.loeuillet@tiscali.fr>
|
||||||
|
|
||||||
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
|
* gst/typefind/gsttypefindfunctions.c: (plugin_init):
|
||||||
|
|
|
@ -1332,7 +1332,7 @@ gst_avi_demux_stream_scan (GstAviDemux * avi,
|
||||||
* order. The end result should be a smoother playing 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)
|
sort (gst_avi_index_entry * a, gst_avi_index_entry * b)
|
||||||
{
|
{
|
||||||
if (a->ts > b->ts)
|
if (a->ts > b->ts)
|
||||||
|
@ -1415,24 +1415,25 @@ gst_avi_demux_massage_index (GstAviDemux * avi,
|
||||||
for (i = 0; i < num_added + 1; i++) {
|
for (i = 0; i < num_added + 1; i++) {
|
||||||
gst_avi_index_entry *entry2;
|
gst_avi_index_entry *entry2;
|
||||||
|
|
||||||
if (i == 0)
|
if (i == 0) {
|
||||||
entry2 = entry;
|
entry2 = entry;
|
||||||
else {
|
} else {
|
||||||
entry2 = &entries[i - 1];
|
entry2 = &entries[i - 1];
|
||||||
list = g_list_insert_before (list, one->next, entry2);
|
list = g_list_insert_before (list, one->next, entry2);
|
||||||
entry = one->data;
|
entry = one->data;
|
||||||
one = one->next;
|
one = one->next;
|
||||||
|
memcpy (entry2, entry, sizeof (gst_avi_index_entry));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_size >= ideal_size) {
|
if (old_size >= ideal_size) {
|
||||||
entry2->size = ideal_size;
|
entry2->size = ideal_size;
|
||||||
old_size -= ideal_size;
|
old_size -= ideal_size;
|
||||||
} else
|
} else {
|
||||||
entry2->size = old_size;
|
entry2->size = old_size;
|
||||||
|
}
|
||||||
|
|
||||||
entry2->dur = GST_SECOND * entry2->size / stream->bitrate;
|
entry2->dur = GST_SECOND * entry2->size / stream->bitrate;
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
memcpy (entry2, entry, sizeof (gst_avi_index_entry));
|
|
||||||
entry2->index_nr++;
|
entry2->index_nr++;
|
||||||
entry2->ts += entry->dur;
|
entry2->ts += entry->dur;
|
||||||
entry2->offset += entry->size;
|
entry2->offset += entry->size;
|
||||||
|
|
Loading…
Reference in a new issue