mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-18 05:16:05 +00:00
playbin: Insert decoders without GstAVElement information between the other decoders
Otherwise they would be preferred over all decoders independent of their ranks. https://bugzilla.gnome.org/show_bug.cgi?id=722316
This commit is contained in:
parent
6b46019abf
commit
4f8f5918be
1 changed files with 9 additions and 1 deletions
|
@ -3824,6 +3824,7 @@ create_decoders_list (GList * factory_list, GSequence * avelements)
|
|||
{
|
||||
GList *dec_list = NULL, *tmp;
|
||||
GList *ave_list = NULL;
|
||||
GList *ave_free_list = NULL;
|
||||
GstAVElement *ave, *best_ave;
|
||||
|
||||
g_return_val_if_fail (factory_list != NULL, NULL);
|
||||
|
@ -3852,7 +3853,10 @@ create_decoders_list (GList * factory_list, GSequence * avelements)
|
|||
/* There's at least raw */
|
||||
ave->n_comm_cf = 1;
|
||||
|
||||
dec_list = g_list_prepend (dec_list, factory);
|
||||
ave_list = g_list_prepend (ave_list, ave);
|
||||
|
||||
/* We need to free these later */
|
||||
ave_free_list = g_list_prepend (ave_free_list, ave);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -3890,6 +3894,10 @@ create_decoders_list (GList * factory_list, GSequence * avelements)
|
|||
}
|
||||
g_list_free (ave_list);
|
||||
|
||||
for (tmp = ave_free_list; tmp; tmp = tmp->next)
|
||||
g_slice_free (GstAVElement, tmp->data);
|
||||
g_list_free (ave_free_list);
|
||||
|
||||
dec_list = g_list_reverse (dec_list);
|
||||
|
||||
return dec_list;
|
||||
|
|
Loading…
Reference in a new issue