summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorVivia Nikolaidou <vivia@ahiru.eu>2017-11-09 11:44:17 +0200
committerVivia Nikolaidou <vivia@ahiru.eu>2017-11-09 11:55:13 +0200
commit5ab660c4e25d2389a26e06c7f325f7a6cbb7fa67 (patch)
tree3c8e69a8304c5816aee6bcd84ebcbea2db8b91b5 /sys
parentbae9427dc1abd29f03a524e4f30667876682600e (diff)
downloadgstreamer-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')
-rw-r--r--sys/decklink/gstdecklinkvideosrc.cpp9
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);