diff options
author | David Schleef <ds@schleef.org> | 2012-07-02 17:52:15 -0700 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2012-07-02 18:59:34 -0700 |
commit | de71b467f2927b3bc7ce7c996d76ee58b41f498e (patch) | |
tree | 6f12806b30621c5913305f13f778fbb007939662 | |
parent | f050069301030622af48ee32c285f67074e1fa29 (diff) |
decklinksrc: Send newsegment events
-rw-r--r-- | sys/decklink/gstdecklinksrc.cpp | 30 | ||||
-rw-r--r-- | sys/decklink/gstdecklinksrc.h | 2 |
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; |