summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivia Nikolaidou <vivia@ahiru.eu>2017-11-09 11:44:17 +0200
committerSebastian Dröge <sebastian@centricular.com>2017-12-01 11:58:32 +0200
commit4d7625f0f9aa25bad20f89930a1f7760e4162de3 (patch)
tree7ff89c53142e8d4ae341070dece82865936fdac0
parentdf0d7a6b4460fd3f64a607c220ee38751bd9b711 (diff)
downloadgstreamer-plugins-bad-4d7625f0f9aa25bad20f89930a1f7760e4162de3.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
-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 5f3ff75a8..2a063931b 100644
--- a/sys/decklink/gstdecklinkvideosrc.cpp
+++ b/sys/decklink/gstdecklinkvideosrc.cpp
@@ -702,16 +702,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);