summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2012-07-02 17:52:15 -0700
committerDavid Schleef <ds@schleef.org>2012-07-02 18:59:34 -0700
commitde71b467f2927b3bc7ce7c996d76ee58b41f498e (patch)
tree6f12806b30621c5913305f13f778fbb007939662
parentf050069301030622af48ee32c285f67074e1fa29 (diff)
decklinksrc: Send newsegment events
-rw-r--r--sys/decklink/gstdecklinksrc.cpp30
-rw-r--r--sys/decklink/gstdecklinksrc.h2
2 files changed, 32 insertions, 0 deletions
diff --git a/sys/decklink/gstdecklinksrc.cpp b/sys/decklink/gstdecklinksrc.cpp
index c58eccb99..c349c8e9c 100644
--- a/sys/decklink/gstdecklinksrc.cpp
+++ b/sys/decklink/gstdecklinksrc.cpp
@@ -1269,6 +1269,21 @@ gst_decklink_src_task (void *priv)
decklinksrc->dropped_frames_old = decklinksrc->dropped_frames;
}
+ if (!decklinksrc->video_new_segment) {
+ GstEvent *event;
+ gboolean ret;
+
+ 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_WARNING ("new segment event not handled");
+ }
+
+ decklinksrc->video_new_segment = TRUE;
+ }
+
mode = gst_decklink_get_mode (decklinksrc->mode);
video_frame->GetBytes (&data);
@@ -1343,6 +1358,21 @@ gst_decklink_src_task (void *priv)
}
if (gst_pad_is_linked (decklinksrc->audiosrcpad)) {
+ if (!decklinksrc->audio_new_segment) {
+ GstEvent *event;
+ gboolean ret;
+
+ event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME,
+ 0, GST_CLOCK_TIME_NONE, 0);
+
+ ret = gst_pad_push_event (decklinksrc->audiosrcpad, event);
+ if (!ret) {
+ GST_WARNING ("new segment event not handled");
+ }
+
+ decklinksrc->audio_new_segment = TRUE;
+ }
+
n_samples = audio_frame->GetSampleFrameCount ();
audio_frame->GetBytes (&data);
audio_buffer = gst_buffer_new_and_alloc (n_samples * 2 * 2);
diff --git a/sys/decklink/gstdecklinksrc.h b/sys/decklink/gstdecklinksrc.h
index c47279a88..38d00d711 100644
--- a/sys/decklink/gstdecklinksrc.h
+++ b/sys/decklink/gstdecklinksrc.h
@@ -67,6 +67,8 @@ struct _GstDecklinkSrc
int height;
gboolean interlaced;
BMDDisplayMode bmd_mode;
+ gboolean video_new_segment;
+ gboolean audio_new_segment;
/* properties */
gboolean copy_data;