diff options
author | Vivia Nikolaidou <vivia@ahiru.eu> | 2017-11-09 11:44:17 +0200 |
---|---|---|
committer | Vivia Nikolaidou <vivia@ahiru.eu> | 2017-11-09 11:55:13 +0200 |
commit | 5ab660c4e25d2389a26e06c7f325f7a6cbb7fa67 (patch) | |
tree | 3c8e69a8304c5816aee6bcd84ebcbea2db8b91b5 /sys/decklink | |
parent | bae9427dc1abd29f03a524e4f30667876682600e (diff) | |
download | gstreamer-plugins-bad-5ab660c4e25d2389a26e06c7f325f7a6cbb7fa67.tar.gz |
decklink: Ignore some driver-set timecode flags
The "fields" flag is ignored because currently GStreamer doesn't support
having only top or only bottom fields inside a frame. The "drop frame"
flag is ignored because some occurrences have been spotted where it
wasn't set while it should have been. In practice, when we have 29.97 or
59.94 FPS, it's always drop-frame.
https://bugzilla.gnome.org/show_bug.cgi?id=790112
Diffstat (limited to 'sys/decklink')
-rw-r--r-- | sys/decklink/gstdecklinkvideosrc.cpp | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/sys/decklink/gstdecklinkvideosrc.cpp b/sys/decklink/gstdecklinkvideosrc.cpp index e070e7e80..6d6f00892 100644 --- a/sys/decklink/gstdecklinkvideosrc.cpp +++ b/sys/decklink/gstdecklinkvideosrc.cpp @@ -738,16 +738,11 @@ gst_decklink_video_src_got_frame (GstElement * element, GST_DEBUG_OBJECT (self, "Got timecode %02d:%02d:%02d:%02d", hours, minutes, seconds, frames); bmode = gst_decklink_get_mode (mode); - if (bmode->interlaced) { + if (bmode->interlaced) flags = (GstVideoTimeCodeFlags) (flags | GST_VIDEO_TIME_CODE_FLAGS_INTERLACED); - if (bflags & bmdTimecodeFieldMark) - field_count = 2; - else - field_count = 1; - } - if (bflags & bmdTimecodeIsDropFrame) + if (bmode->fps_d == 1001 && (bmode->fps_n == 30000 || bmode->fps_n == 60000)) flags = (GstVideoTimeCodeFlags) (flags | GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME); |