playbin3: Propagate sink context

When the playsink's sink is activated its state is set to READY but it remains
unlinked. So, in order for decodebin3 to potentially reuse the context later on,
the whole playbin3 needs to have it internally stored.
This commit is contained in:
Philippe Normand 2019-08-11 11:25:50 +01:00 committed by Sebastian Dröge
parent 539a703b0b
commit 0a515acfa8

View file

@ -3691,6 +3691,13 @@ activate_sink_bus_handler (GstBus * bus, GstMessage * msg,
gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
else
gst_message_unref (msg);
} else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_HAVE_CONTEXT) {
GstContext *context;
gst_message_parse_have_context (msg, &context);
gst_element_set_context (GST_ELEMENT_CAST (playbin), context);
gst_context_unref (context);
gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
} else {
gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
}