decodebin3: handle full removal of streams
Fix the validate.file.playback.disable_subtitle_track_while_paused.* validate scenarios when using playbin3. https://bugzilla.gnome.org/show_bug.cgi?id=769298
This commit is contained in:
parent
9adaeb0a71
commit
500e4117bb
@ -2036,10 +2036,15 @@ reassign_slot (GstDecodebin3 * dbin, MultiQueueSlot * slot)
|
|||||||
(GstPadProbeCallback) idle_reconfigure, target_slot, NULL);
|
(GstPadProbeCallback) idle_reconfigure, target_slot, NULL);
|
||||||
/* gst_pad_send_event (target_slot->src_pad, gst_event_new_reconfigure ()); */
|
/* gst_pad_send_event (target_slot->src_pad, gst_event_new_reconfigure ()); */
|
||||||
} else {
|
} else {
|
||||||
|
GstMessage *msg;
|
||||||
|
|
||||||
|
dbin->output_streams = g_list_remove (dbin->output_streams, output);
|
||||||
|
free_output_stream (dbin, output);
|
||||||
|
msg = is_selection_done (slot->dbin);
|
||||||
SELECTION_UNLOCK (dbin);
|
SELECTION_UNLOCK (dbin);
|
||||||
/* FIXME : Remove output if no longer needed ? The tricky part is knowing
|
|
||||||
* if it's really no longer needed or not */
|
if (msg)
|
||||||
GST_FIXME_OBJECT (slot->src_pad, "Remove unused output stream ?");
|
gst_element_post_message ((GstElement *) slot->dbin, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -2185,6 +2190,8 @@ handle_stream_switch (GstDecodebin3 * dbin, GList * select_streams,
|
|||||||
GST_DEBUG_OBJECT (dbin,
|
GST_DEBUG_OBJECT (dbin,
|
||||||
"Really need to deactivate slot %p, but no available alternative",
|
"Really need to deactivate slot %p, but no available alternative",
|
||||||
slot);
|
slot);
|
||||||
|
|
||||||
|
slots_to_reassign = g_list_append (slots_to_reassign, slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The only slots left to activate are the ones that won't be reassigned and
|
/* The only slots left to activate are the ones that won't be reassigned and
|
||||||
|
Loading…
x
Reference in New Issue
Block a user