Skip to content

Commit

Permalink
decodebin3: Store stream-start event on output pad before exposing it
Browse files Browse the repository at this point in the history
It's required for users to be able to figure out associated GstStream
object with a pad on pad-added callback.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/889>
  • Loading branch information
seungha-yang authored and tp-m committed Oct 22, 2020
1 parent 975247c commit 28e3a9f
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
14 changes: 14 additions & 0 deletions gst/playback/gstdecodebin3.c
Expand Up @@ -2262,6 +2262,20 @@ reconfigure_output_stream (DecodebinOutputStream * output,
goto cleanup;
}
if (output->src_exposed == FALSE) {
GstEvent *stream_start;

stream_start = gst_pad_get_sticky_event (slot->src_pad,
GST_EVENT_STREAM_START, 0);

/* Ensure GstStream is accesiable from pad-added callback */
if (stream_start) {
gst_pad_store_sticky_event (output->src_pad, stream_start);
gst_event_unref (stream_start);
} else {
GST_WARNING_OBJECT (slot->src_pad,
"Pad has no stored stream-start event");
}

output->src_exposed = TRUE;
gst_element_add_pad (GST_ELEMENT_CAST (dbin), output->src_pad);
}
Expand Down
12 changes: 12 additions & 0 deletions gst/playback/gsturidecodebin3.c
Expand Up @@ -541,6 +541,7 @@ add_output_pad (GstURIDecodeBin3 * dec, GstPad * target_pad)
{
OutputPad *output;
gchar *pad_name;
GstEvent *stream_start;

output = g_slice_new0 (OutputPad);

Expand All @@ -554,6 +555,17 @@ add_output_pad (GstURIDecodeBin3 * dec, GstPad * target_pad)
g_free (pad_name);

gst_pad_set_active (output->ghost_pad, TRUE);

stream_start = gst_pad_get_sticky_event (target_pad,
GST_EVENT_STREAM_START, 0);
if (stream_start) {
gst_pad_store_sticky_event (output->ghost_pad, stream_start);
gst_event_unref (stream_start);
} else {
GST_WARNING_OBJECT (target_pad,
"Exposing pad without stored stream-start event");
}

gst_element_add_pad (GST_ELEMENT (dec), output->ghost_pad);

output->probe_id =
Expand Down

0 comments on commit 28e3a9f

Please sign in to comment.