summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorblake tregre <blake@oblong.com>2012-02-11 22:49:10 -0800
committerDavid Schleef <ds@schleef.org>2012-03-17 14:24:51 -0700
commit86eeca91de0cd5143ef23355cd8d4792d13e7b71 (patch)
treefd63d049d84d0e35afc84d24233cc83fba32720a /sys
parentc13e4eacc247b72721182abae4c9773dcb1896ec (diff)
downloadgstreamer-plugins-bad-86eeca91de0cd5143ef23355cd8d4792d13e7b71.tar.gz
decklinksrc: push new new segment event to all pads
Take care to push the event to all pads, but favor the video src pad. Fixes: #667716.
Diffstat (limited to 'sys')
-rw-r--r--sys/decklink/gstdecklinksrc.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/sys/decklink/gstdecklinksrc.cpp b/sys/decklink/gstdecklinksrc.cpp
index b2d67f05c..37fd59ae6 100644
--- a/sys/decklink/gstdecklinksrc.cpp
+++ b/sys/decklink/gstdecklinksrc.cpp
@@ -1300,11 +1300,28 @@ gst_decklink_src_task (void *priv)
event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0,
GST_CLOCK_TIME_NONE, 0);
- ret = gst_pad_push_event (decklinksrc->videosrcpad, event);
- if (!ret) {
- GST_ERROR_OBJECT (decklinksrc, "new segment event ret=%d", ret);
- return;
+ if (gst_pad_is_linked (decklinksrc->videosrcpad)) {
+ gst_event_ref (event);
+ ret = gst_pad_push_event (decklinksrc->videosrcpad, event);
+ if (!ret) {
+ GST_ERROR_OBJECT (decklinksrc, "new segment event ret=%d", ret);
+ gst_event_unref (event);
+ return;
+ }
+ } else {
+ gst_event_unref (event);
}
+
+ if (gst_pad_is_linked (decklinksrc->audiosrcpad)) {
+ ret = gst_pad_push_event (decklinksrc->audiosrcpad, event);
+ if (!ret) {
+ GST_ERROR_OBJECT (decklinksrc, "new segment event ret=%d", ret);
+ gst_event_unref (event);
+ }
+ } else {
+ gst_event_unref (event);
+ }
+
}
if (decklinksrc->video_caps == NULL) {