After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 771734 - decklinkvideosrc: add support for duplex mode configuration
decklinkvideosrc: add support for duplex mode configuration
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-09-20 17:11 UTC by Florent Thiéry
Modified: 2018-11-03 13:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
log error (3.14 KB, text/x-log)
2016-09-21 13:59 UTC, Florent Thiéry
Details
error log (3.14 KB, text/x-log)
2016-09-21 14:32 UTC, Florent Thiéry
Details

Description Florent Thiéry 2016-09-20 17:11:25 UTC
The BlackmagicDesign DeckLink Duo 2 is a 4 input SDI capture card; the decklinksrc works fine for device-number 0 and 1, but crashes with inputs 2 and 3.

0:00:00.092931712 26035      0x1374b20 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:392:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Failed to enable video input
ERROR: from element /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(2950): gst_base_src_loop (): /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0:
streaming stopped, reason not-negotiated (-4)

Logs for device-numbers 0 to 4:

fthiery@flowmixer:~/gst/master$ GST_DEBUG=decklink*:5 gst-launch-1.0 decklinkvideosrc device-number=0 num-buffers=1 ! xvimagesink
0:00:00.065207266 24536      0x1ec3270 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:743:gst_decklink_video_src_open:<decklinkvideosrc0> Opening
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:00.092581616 24536      0x1f8c320 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:323:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Setting caps video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2
0:00:00.092610454 24536      0x1ec3270 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:857:gst_decklink_video_src_start_streams:<decklinkvideosrc0> Not starting streams yet
New clock: GstDecklinkInputClock
0:00:00.098118730 24536      0x1f8c320 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:829:gst_decklink_video_src_start_streams:<decklinkvideosrc0> Starting streams
0:00:00.171848827 24536 0x7fa1d0001920 DEBUG               decklink gstdecklink.cpp:762:VideoInputFrameArrived:<decklinkvideosrc0> Failed to get timecode: 0x00000001
0:00:00.171884609 24536 0x7fa1d0001920 DEBUG               decklink gstdecklink.cpp:819:VideoInputFrameArrived: Received no audio packet at 0:00:00.073325545
0:00:00.171903391 24536      0x1f8c320 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:608:gst_decklink_video_src_create:<decklinkvideosrc0> Mode changed from 0 to 1
0:00:00.171971273 24536      0x1f8c320 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:669:gst_decklink_video_src_create:<decklinkvideosrc0> Outputting buffer 0x1d048d0 with timestamp 0:00:00.073325545 and duration 0:00:00.033366666
Redistribute latency...
0:00:00.205221875 24536 0x7fa1d0001920 DEBUG               decklink gstdecklink.cpp:762:VideoInputFrameArrived:<decklinkvideosrc0> Failed to get timecode: 0x00000001
0:00:00.205242046 24536 0x7fa1d0001920 DEBUG               decklink gstdecklink.cpp:819:VideoInputFrameArrived: Received no audio packet at 0:00:00.106723532
Got EOS from element "pipeline0".
Execution ended after 0:00:00.145754691
Setting pipeline to PAUSED ...
0:00:00.238414463 24536      0x1ec3270 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
Setting pipeline to READY ...
0:00:00.238726407 24536      0x1ec3270 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:793:gst_decklink_video_src_stop:<decklinkvideosrc0> Stopping
Setting pipeline to NULL ...
0:00:00.767056043 24536      0x1ec3270 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:772:gst_decklink_video_src_close:<decklinkvideosrc0> Closing
Freeing pipeline ...

fthiery@flowmixer:~/gst/master$ GST_DEBUG=decklink*:5 gst-launch-1.0 decklinkvideosrc device-number=1 num-buffers=1 ! xvimagesink
Setting pipeline to PAUSED ...
0:00:00.072590969 25359       0xf7c4f0 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:743:gst_decklink_video_src_open:<decklinkvideosrc0> Opening
Pipeline is live and does not need PREROLL ...
0:00:00.099498638 25359       0xd87720 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:323:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Setting caps video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2
Setting pipeline to PLAYING ...
0:00:00.099553440 25359       0xf7c4f0 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:857:gst_decklink_video_src_start_streams:<decklinkvideosrc0> Not starting streams yet
New clock: GstDecklinkInputClock
0:00:00.104353182 25359       0xd87720 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:829:gst_decklink_video_src_start_streams:<decklinkvideosrc0> Starting streams
0:00:00.160194730 25359 0x7f307c001930 DEBUG               decklink gstdecklink.cpp:762:VideoInputFrameArrived:<decklinkvideosrc0> Failed to get timecode: 0x00000001
0:00:00.160225458 25359 0x7f307c001930 DEBUG               decklink gstdecklink.cpp:819:VideoInputFrameArrived: Received no audio packet at 0:00:00.055446790
0:00:00.160235209 25359 0x7f307c001930 INFO                decklink gstdecklink.cpp:698:VideoInputFormatChanged: Video input format changed
0:00:00.160233132 25359       0xd87720 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:608:gst_decklink_video_src_create:<decklinkvideosrc0> Mode changed from 0 to 1
0:00:00.160306477 25359       0xd87720 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:669:gst_decklink_video_src_create:<decklinkvideosrc0> Outputting buffer 0xd85950 with timestamp 0:00:00.055446790 and duration 0:00:00.033366666
Redistribute latency...
0:00:00.212742935 25359 0x7f307c001930 DEBUG               decklink gstdecklink.cpp:762:VideoInputFrameArrived:<decklinkvideosrc0> Failed to get timecode: 0x00000001
0:00:00.212779179 25359 0x7f307c001930 DEBUG               decklink gstdecklink.cpp:819:VideoInputFrameArrived: Received no audio packet at 0:00:00.106802837
Got EOS from element "pipeline0".
Execution ended after 0:00:00.127178171
Setting pipeline to PAUSED ...
0:00:00.226793399 25359       0xf7c4f0 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
Setting pipeline to READY ...
0:00:00.227196936 25359       0xf7c4f0 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:793:gst_decklink_video_src_stop:<decklinkvideosrc0> Stopping
Setting pipeline to NULL ...
0:00:00.724605715 25359       0xf7c4f0 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:772:gst_decklink_video_src_close:<decklinkvideosrc0> Closing
Freeing pipeline ...

fthiery@flowmixer:~/gst/master$ GST_DEBUG=decklink*:5 gst-launch-1.0 decklinkvideosrc device-number=2 num-buffers=1 ! xvimagesink
Setting pipeline to PAUSED ...
0:00:00.065090192 26035      0x128da70 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:743:gst_decklink_video_src_open:<decklinkvideosrc0> Opening
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:00.092652881 26035      0x1374b20 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:323:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Setting caps video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2
0:00:00.092675531 26035      0x128da70 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:857:gst_decklink_video_src_start_streams:<decklinkvideosrc0> Not starting streams yet
New clock: GstDecklinkInputClock
0:00:00.092931712 26035      0x1374b20 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:392:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Failed to enable video input
ERROR: from element /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(2950): gst_base_src_loop (): /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.000305325
Setting pipeline to PAUSED ...
0:00:00.093004626 26035      0x128da70 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.093010839 26035      0x128da70 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:948:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Setting pipeline to READY ...
0:00:00.093042442 26035      0x128da70 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.093048184 26035      0x128da70 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:948:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Setting pipeline to NULL ...
0:00:00.093063750 26035      0x128da70 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.093067647 26035      0x128da70 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:948:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Freeing pipeline ...

(gst-launch-1.0:26035): GStreamer-CRITICAL **: 
Trying to dispose element pipeline0, but it is in PAUSED instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.

^C
fthiery@flowmixer:~/gst/master$ GST_DEBUG=decklink*:5 gst-launch-1.0 decklinkvideosrc device-number=3 num-buffers=1 ! xvimagesink
Setting pipeline to PAUSED ...
0:00:00.068787281 27493      0x1610980 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:743:gst_decklink_video_src_open:<decklinkvideosrc0> Opening
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:00.096260956 27493      0x1610980 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:857:gst_decklink_video_src_start_streams:<decklinkvideosrc0> Not starting streams yet
New clock: GstDecklinkInputClock
0:00:00.096281588 27493      0x1744f20 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:323:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Setting caps video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2
0:00:00.096516527 27493      0x1744f20 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:392:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Failed to enable video input
ERROR: from element /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(2950): gst_base_src_loop (): /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.000299774
Setting pipeline to PAUSED ...
0:00:00.096583029 27493      0x1610980 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.096588907 27493      0x1610980 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:948:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Setting pipeline to READY ...
0:00:00.096625874 27493      0x1610980 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.096632183 27493      0x1610980 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:948:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Setting pipeline to NULL ...
0:00:00.096648297 27493      0x1610980 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:940:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.096652238 27493      0x1610980 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:948:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Freeing pipeline ...

(gst-launch-1.0:27493): GStreamer-CRITICAL **: 
Trying to dispose element pipeline0, but it is in PAUSED instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.

^C
fthiery@flowmixer:~/gst/master$ GST_DEBUG=decklink*:5 gst-launch-1.0 decklinkvideosrc device-number=4 num-buffers=1 ! xvimagesink
Setting pipeline to PAUSED ...
0:00:00.342124277 28802      0x1d47470 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:743:gst_decklink_video_src_open:<decklinkvideosrc0> Opening
0:00:00.369050310 28802      0x1d47470 ERROR       decklinkvideosrc gstdecklinkvideosrc.cpp:749:gst_decklink_video_src_open:<decklinkvideosrc0> Failed to acquire input
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...
Comment 1 Florent Thiéry 2016-09-20 17:15:11 UTC
Kernel: 4.7.4-1-ARCH
Blackmagic driver version 10.8a2

dmesg:

[    2.197846] Probe subdriver ffffffffa0598320 (serial): ffff88040d670b40
[    2.197848] BlackmagicIO: Initialised serial driver for blackmagic!io0
[    2.197942] BlackmagicIO: Enabled device "DeckLink Duo 2 (3)" x4/5.0 Gbps (38254df2,510101) FW Date: 03-15 08:29
[    2.199146] BlackmagicIO: DeckLink Duo 2 (3) as blackmagic!io1 [0000:01:00.0]
[    2.199147] Probe subdriver ffffffffa0598320 (serial): ffff88040c9fe540
[    2.199148] BlackmagicIO: Initialised serial driver for blackmagic!io1
[    2.199216] BlackmagicIO: Enabled device "DeckLink Duo 2 (2)" x4/5.0 Gbps (38254df1,510102) FW Date: 03-15 08:29
[    2.199785] BlackmagicIO: DeckLink Duo 2 (2) as blackmagic!io2 [0000:01:00.0]
[    2.199787] Probe subdriver ffffffffa0598320 (serial): ffff880405e00f00
[    2.199788] BlackmagicIO: Initialised serial driver for blackmagic!io2
[    2.199854] BlackmagicIO: Enabled device "DeckLink Duo 2 (4)" x4/5.0 Gbps (38254df3,510103) FW Date: 03-15 08:29
[    2.200464] BlackmagicIO: DeckLink Duo 2 (4) as blackmagic!io3 [0000:01:00.0]
[    2.200465] Probe subdriver ffffffffa0598320 (serial): ffff88040ad42a80
[    2.200465] BlackmagicIO: Initialised serial driver for blackmagic!io3
Comment 2 Florent Thiéry 2016-09-20 17:19:36 UTC
Sebastian, i see that the SDK headers have not been updated for quite some time, can i help there ?

fthiery@flowmixer:~/gst/master/gst-plugins-bad$ (master) git log ./sys/decklink/linux/DeckLinkAPI.h
commit 5d74b4ba425533263889298e3e6eb9096f8c6806
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Dec 3 14:39:13 2014 +0100

    decklink: Update Linux SDK headers to 10.3.1
Comment 3 Sebastian Dröge (slomo) 2016-09-20 17:26:45 UTC
Nothing really changed there, and that's not going to be the problem :) Not sure what the problem is though, would have to debug that further (can you upload a full debug log with GST_DEBUG=decklink*:6 ? ) but no time for that currently. It's supposed to work though, I know of people capturing from two cards at once.
Comment 4 Florent Thiéry 2016-09-21 09:30:53 UTC
Well, for the headers i just thought it could be an issue because the SDK version of the headers is 10.3.1 where my system uses the current vendor version 10.8

Here is the log

fthiery@flowmixer:~$ LANG=C GST_DEBUG=decklink*:6 gst-launch-1.0 decklinkvideosrc device-number=3 num-buffers=1 ! fakesink
Setting pipeline to PAUSED ...
0:00:00.011882491  4227      0x1a1fd30 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:636:gst_decklink_video_src_open:<decklinkvideosrc0> Opening
Pipeline is live and does not need PREROLL ...
0:00:00.037553549  4227      0x1a66000 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:266:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Setting caps video/x-raw, width=(int)720, height=(int)486, pixel-aspect-ratio=(fraction)10/11, interlace-mode=(string)interleaved, framerate=(fraction)30000/1001, format=(string)UYVY, colorimetry=(string)bt601, chroma-site=(string)mpeg2
Setting pipeline to PLAYING ...
0:00:00.037586493  4227      0x1a1fd30 LOG                 decklink gstdecklink.cpp:999:gst_decklink_clock_get_internal_time:<GstDecklinkInputClock> result 0:00:00.000000000 time 99:99:99.999999999 last time 0:00:00.000000000 offset 0:00:00.000000000 start time 99:99:99.999999999 (ret: 0xffffffff)
0:00:00.037628339  4227      0x1a1fd30 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:740:gst_decklink_video_src_start_streams:<decklinkvideosrc0> Not starting streams yet
New clock: GstDecklinkInputClock
0:00:00.037769955  4227      0x1a66000 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:335:gst_decklink_video_src_set_caps:<decklinkvideosrc0> Failed to enable video input
ERROR: from element /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2948): gst_base_src_loop (): /GstPipeline:pipeline0/GstDecklinkVideoSrc:decklinkvideosrc0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:00.000206096
Setting pipeline to PAUSED ...
0:00:00.037854147  4227      0x1a1fd30 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:810:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.037860589  4227      0x1a1fd30 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:818:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Setting pipeline to READY ...
0:00:00.037925831  4227      0x1a1fd30 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:810:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.037934531  4227      0x1a1fd30 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:818:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Setting pipeline to NULL ...
0:00:00.037956128  4227      0x1a1fd30 DEBUG       decklinkvideosrc gstdecklinkvideosrc.cpp:810:gst_decklink_video_src_change_state:<decklinkvideosrc0> Stopping streams
0:00:00.037960514  4227      0x1a1fd30 WARN        decklinkvideosrc gstdecklinkvideosrc.cpp:818:gst_decklink_video_src_change_state:<decklinkvideosrc0> error: Failed to stop streams: 0x80000009
Freeing pipeline ...

(gst-launch-1.0:4227): GStreamer-CRITICAL **: 
Trying to dispose element pipeline0, but it is in PAUSED instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element.
Comment 5 Sebastian Dröge (slomo) 2016-09-21 13:32:12 UTC
I intentionally said that you should *attach* the log :) It's annoying to read in Bugzilla comments.

Can you get a new log with this commit:

  commit f9a8b843df2ef45c2ae196ebb2b8ba2308227d99
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Sep 21 09:31:23 2016 -0400

    decklink: Print the Decklink API error return values in debug output in all places
Comment 6 Florent Thiéry 2016-09-21 13:59:17 UTC
Created attachment 335998 [details]
log error

Generated with
GST_DEBUG_COLOR_MODE=off LANG=C GST_DEBUG=decklink*:6 gst-launch-1.0-nocolor decklinkvideosrc device-number=3 num-buffers=1 ! fakesink &> /tmp/error.log
Comment 7 Florent Thiéry 2016-09-21 13:59:41 UTC
Really sorry for the logs in the ticket, will attach now
Comment 8 Sebastian Dröge (slomo) 2016-09-21 14:20:09 UTC
Hm, why does not contain the decklink debug category? Can you try with decklin*:6 maybe? I'm interested in what happens during probing here.
Comment 9 Florent Thiéry 2016-09-21 14:32:32 UTC
Created attachment 336003 [details]
error log

GST_DEBUG_COLOR_MODE=off LANG=C GST_DEBUG=*deck*:6 gst-launch-1.0-nocolor decklinkvideosrc device-number=3 num-buffers=1 ! fakesink
Comment 10 Florent Thiéry 2016-09-21 14:33:03 UTC
There's nothing more; i updated and recompiled though (saw your commit passing)...
Comment 11 Sebastian Dröge (slomo) 2016-09-21 14:50:22 UTC
I was looking for the output here in this function https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/sys/decklink/gstdecklink.cpp#n885 but nothing is printed when it all goes fine. That means all your devices can do input and output I guess.

Not sure how to further debug this, we only get "FAILED" as error from the driver. Maybe the mode you selected is not supported, not sure what else could fail until that point.
Comment 12 Florent Thiéry 2016-09-21 15:18:06 UTC
Actually, just tried to use the vendor software, where the inputs 3 & 4 choices are greyed out... Sorry, i should have tried sooner.
Comment 13 Florent Thiéry 2016-09-21 16:14:49 UTC
Okay, sorry for all the fuss, in fact the connectors have to be mapped through the vendor software, and apparently by default connectors 1 & 2 are in/out, 3 & 4 in/out, leaving the 2 remaining capture channels unmapped.
Comment 14 Florent Thiéry 2016-09-22 09:40:37 UTC
Apparently, the latest SDK (10.8) allows configuring the duplex mode using bmdDeckLinkConfigDuplexMode (in this case, trying to use input 3 would require disabling full-duplex mode on inputs 1&2 which are linked); would it sound right to automatically reconfigure the mapping instead of failing like it does today ? Also, is the current behaviour good enough (Internal data stream error) ?

Unfortunately the return code #define E_FAIL ((HRESULT)0x80000008L) is completely generic, so it doesn't indicate wheter the channel is just unmapped (a quick helpful error message is not an option then)...

AFAIK the full-duplex feature is designed for looping out the input, but also performing hardware-based keying -- is that an actual use-case for gstreamer currently (hence, a reason for not disabling full duplex when trying to open an unmapped channel)?

I tried to query if the device supports duplex mode (BMDDeckLinkSupportsDuplexModeConfiguration and getting BMDDeckLinkPairedDevicePersistentID) but it's not in the current headers included in gstdecklink (only in the latest SDK headers). Also, when i query it for BMDDeckLinkSupportsFullDuplex, i always get 0 as return code (on all inputs), so i think that the SDK needs to be updated anyway (the card i'm trying to use is probably more recent than the current SDK release).

As a workaroud, users can use the BMD utility to disable full duplex on channels 1 and 2, which enables capture channels 3 and 4, but i still believe it would be good to support this, if you don't mind i would like to reopen this ticket and adjust the title.
Comment 15 Sebastian Dröge (slomo) 2016-09-22 13:56:16 UTC
If we can do something here, that would be useful. But no magic, it should all be controller via properties. Would you like to provide a patch? (If you do, make updating the SDK headers a separate commit)
Comment 16 Florent Thiéry 2016-09-22 14:09:26 UTC
Yes i will try to provide a patch. I'll keep in mind to update the SDK headers. Anything shady i should be aware of (some SDK patching required or just copying should suffice) ?
Comment 17 Sebastian Dröge (slomo) 2016-09-22 14:13:00 UTC
There are 3 different platforms to update, Windows, Linux, OSX. Apart from that nothing I can remember :)
Comment 18 GStreamer system administrator 2018-11-03 13:55:25 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/425.