streamcombiner: Forward upstream force-key-unit events to all sinkpads

streamcombiner element forwards a upstream event only to one sinkpad.
When the streamcombiner is used with encodebin, the sinkpad
corresponding to pass-through path is configured before that of encoder,
and therefore streamcombiner forwards upstream events only to
the firstly configured one (i.e., pass-through path).
This commit is contained in:
Seungha Yang 2018-04-15 19:15:28 +09:00
parent 32395fe837
commit 9af8516873

View file

@ -22,6 +22,7 @@
#include "config.h"
#endif
#include <gst/video/video.h>
#include "gststreamcombiner.h"
#include "gststreamcombinerpad.h"
@ -175,6 +176,10 @@ gst_stream_combiner_src_event (GstPad * pad, GstObject * parent,
GstStreamCombiner *stream_combiner = (GstStreamCombiner *) parent;
GstPad *sinkpad = NULL;
/* Forward force-key-unit event to all sinkpads */
if (gst_video_event_is_force_key_unit (event))
return gst_pad_event_default (pad, parent, event);
STREAMS_LOCK (stream_combiner);
if (stream_combiner->current)
sinkpad = stream_combiner->current;