mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
asfmux: Do not mess up GstCollectData list
asfmux was messing up with the GstCollectData list of its GstCollectPads when sorting the list inplace. This patch makes it copy the list before sorting it, leaving the GstCollectPads list as is. Fixes #591610
This commit is contained in:
parent
4f61f46f07
commit
c83615fca9
2 changed files with 4 additions and 5 deletions
|
@ -1604,7 +1604,7 @@ gst_asf_mux_write_indexes (GstAsfMux * asfmux)
|
|||
|
||||
/* write simple indexes for video medias */
|
||||
ordered_pads =
|
||||
g_slist_sort (asfmux->collect->data,
|
||||
g_slist_sort (g_slist_copy (asfmux->collect->data),
|
||||
(GCompareFunc) stream_number_compare);
|
||||
for (walker = ordered_pads; walker; walker = g_slist_next (walker)) {
|
||||
GstAsfPad *pad = (GstAsfPad *) walker->data;
|
||||
|
@ -1613,10 +1613,12 @@ gst_asf_mux_write_indexes (GstAsfMux * asfmux)
|
|||
if (ret != GST_FLOW_OK) {
|
||||
GST_ERROR_OBJECT (asfmux, "Failed to write simple index for stream %"
|
||||
G_GUINT16_FORMAT, (guint16) pad->stream_number);
|
||||
return ret;
|
||||
goto cleanup_and_return;
|
||||
}
|
||||
}
|
||||
}
|
||||
cleanup_and_return:
|
||||
g_slist_free (ordered_pads);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -139,9 +139,6 @@ struct _GstAsfMux
|
|||
/* pads */
|
||||
GstPad *srcpad;
|
||||
|
||||
/* sinkpads, video first */
|
||||
GSList *sinkpads;
|
||||
|
||||
GstCollectPads *collect;
|
||||
GstPadEventFunction collect_event;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue