[Bug 729887] New: decklinksrc requires output sinks to run with sync=FALSE.

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri May 9 10:00:19 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=729887
  GStreamer | gst-plugins-bad | 1.2.4

           Summary: decklinksrc requires output sinks to run with
                    sync=FALSE.
    Classification: Platform
           Product: GStreamer
           Version: 1.2.4
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: swestrup at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


The documentation for the decklink capture card we recently purchased states
(without explanation) that when using decklinksrc in a pipeline, the output
sink needs to have clock sync disabled, (ie property sync=FALSE).

Some simple tests have proven this to be true. With sync=FALSE we are able to
capture and display HDMI content at (or at least at what appears to be) a full
60fps. When we leave sync at the default of TRUE, we start to get errors about
dropped frames if we go over 9 fps.

What causes this requirement is not clear. Below is a simple pipeline with
sync=TRUE, and the timestamps all appear correct. I'm not sure what else would
cause this kind of issue though.

Knowing that most of the developers won't have access to one of these expensive
capture cards, I'll be most willing to run any additional tests and report any
results that may aid in tracking down the issue.


gst-launch-1.0 -v decklinksrc connection=HDMI mode=18 name=d d.videosrc !
fakesink silent=false
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event *******
(fakesink0:sink) E (type: stream-start (10254), GstEventStreamStart,
stream-id=(string)74ffd1fa, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE,
group-id=(uint)0;) 0x20399e0
/GstPipeline:pipeline0/GstDecklinkSrc:d.GstPad:audiosrc: caps = audio/x-raw,
format=(string)S16LE, channels=(int)2, rate=(int)48000,
layout=(string)interleaved
/GstPipeline:pipeline0/GstDecklinkSrc:d.GstPad:videosrc: caps = video/x-raw,
format=(string)UYVY, width=(int)1280, height=(int)720,
framerate=(fraction)60/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709,
chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event *******
(fakesink0:sink) E (type: caps (12814), GstEventCaps,
caps=(GstCaps)video/x-raw, format=(string)UYVY, width=(int)1280,
height=(int)720, framerate=(fraction)60/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709,
chroma-site=(string)mpeg2;) 0x2039aa0
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw,
format=(string)UYVY, width=(int)1280, height=(int)720,
framerate=(fraction)60/1, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709,
chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event *******
(fakesink0:sink) E (type: segment (17934), GstEventSegment,
segment=(GstSegment)"GstSegment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE,
rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME,
base=(guint64)0, offset=(guint64)0, start=(guint64)0,
stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0,
duration=(guint64)18446744073709551615;";) 0x2039b00
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = preroll   *******
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.000000000, duration:
0:00:00.016666666, offset: 0, offset_end: 0, flags: 00000040 discont )
0x7f6450005010
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.016666666, duration:
0:00:00.016666667, offset: 1, offset_end: 1, flags: 00000000 ) 0x7f6450005120
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.033333333, duration:
0:00:00.016666667, offset: 2, offset_end: 2, flags: 00000000 ) 0x7f6450005230
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.050000000, duration:
0:00:00.016666666, offset: 3, offset_end: 3, flags: 00000000 ) 0x7f6450005340
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.066666666, duration:
0:00:00.016666667, offset: 4, offset_end: 4, flags: 00000000 ) 0x7f6450005450
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.083333333, duration:
0:00:00.016666667, offset: 5, offset_end: 5, flags: 00000000 ) 0x7f6450005560
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.100000000, duration:
0:00:00.016666666, offset: 6, offset_end: 6, flags: 00000000 ) 0x7f6450005450
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.116666666, duration:
0:00:00.016666667, offset: 7, offset_end: 7, flags: 00000000 ) 0x7f6450005340
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.133333333, duration:
0:00:00.016666667, offset: 8, offset_end: 8, flags: 00000000 ) 0x7f6450005230
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.150000000, duration:
0:00:00.016666666, offset: 9, offset_end: 9, flags: 00000000 ) 0x7f6450005120
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.166666666, duration:
0:00:00.016666667, offset: 10, offset_end: 10, flags: 00000000 ) 0x7f6450005010
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.183333333, duration:
0:00:00.016666667, offset: 11, offset_end: 11, flags: 00000000 ) 0x7f6450005120
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain *******
(fakesink0:sink) (1843200 bytes, dts: none, pts: 0:00:00.200000000, duration:
0:00:00.016666666, offset: 12, offset_end: 12, flags: 00000000 ) 0x7f6450005230

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list