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 730975 - decklinksrc fails when using both video and audio
decklinksrc fails when using both video and audio
Status: RESOLVED INVALID
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
1.2.3
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-05-30 02:21 UTC by Reuben
Modified: 2014-06-02 23:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
debug log (241.37 KB, application/x-xz)
2014-05-30 02:27 UTC, Reuben
Details

Description Reuben 2014-05-30 02:21:30 UTC
The following works:


gst-launch-1.0 decklinksrc mode=11 connection=0 audio-input=3 ! video/x-raw,format=UYVY,width=1920,height=1080,framerate=30000/1001,interlace-mode=interleaved ! queue ! v4l2sink device=/dev/video0 sync=false 

The following also works:

gst-launch-1.0 decklinksrc mode=11 connection=0 audio-input=3 ! audio/x-raw,format=S16LE,channels=2,rate=48000,layout=interleaved ! queue ! audioconvert ! audio/x-raw,format=F32LE ! jackaudiosink connect=0 client-name="Video Capture SRC"


The following does NOT work:

gst-launch-1.0 decklinksrc mode=11 connection=0 audio-input=3 name=SRC SRC. ! video/x-raw,format=UYVY,width=1920,height=1080,framerate=30000/1001,interlace-mode=interleaved ! queue ! v4l2sink device=/dev/video0 sync=false SRC. ! audio/x-raw,format=S16LE,channels=2,rate=48000,layout=interleaved ! queue ! audioconvert ! audio/x-raw,format=F32LE ! jackaudiosink connect=0 client-name="Video Capture SRC"

And the error message is fantastically benign. Cannot figure out why it fails. I'm uploading a debug output.
Comment 1 Reuben 2014-05-30 02:27:21 UTC
Created attachment 277508 [details]
debug log
Comment 2 Nicolas Dufresne (ndufresne) 2014-05-30 02:47:10 UTC
Logs says:
gst_decklink_src_task:<SRC> error: streaming task paused, reason not-negotiated (-4)

And a little higher:
<videoconvert0> transform could not transform video/x-raw, format=(string)UYVY, ... 

This basically mean you are forcing incompatible video caps between the decklinksrc and the v4l2sink. May it would be better to close this bug, and take it to the mailing list ?
Comment 3 Reuben 2014-05-30 02:58:14 UTC
Yes, but when I run it without the audio component it works just fine. And I'm not sure why it would need to transform anything, since the source and sink should be using the same format.

The destination is the v4l2loopback device, which supports the raw UYVY. If there is something subtle I'm misunderstanding let me know, but the audio only pipeline and video only pipelines are both working independently, but used at the same time I get this not-negotiated error.
Comment 4 Nicolas Dufresne (ndufresne) 2014-05-30 12:58:06 UTC
The other possibility, is that the video and audio pad get plugged to the wrong route. Can you try it grammatically, to make sure this isn't the case ?
Comment 5 Reuben 2014-05-30 13:53:13 UTC
Won't be able to try it till monday. I'll post back here once I do.
Comment 6 Reuben 2014-06-02 23:51:06 UTC
Ok, finally figured out what is going on. The v4l2loopback device doesn't like interlaced content. I was sure that I had sent directly from the decklink src to the v4l2loopback, but reviewing the bash history that was not the case. I probably copied and pasted chunks of the command too recklessly.

Inserting a deinterlace node in the pipeline fixed the issue:

gst-launch-1.0 --gst-debug-level=3 decklinksrc mode=11 connection=0 audio-input=3 name=SRC SRC.videosrc ! video/x-raw,format=UYVY,width=1920,height=1080,framerate=30000/1001,interlace-mode=interleaved ! queue ! deinterlace ! v4l2sink device=/dev/video0 sync=false SRC.audiosrc ! audio/x-raw,format=S16LE,channels=2,rate=48000,layout=interleaved ! queue ! audioconvert ! jackaudiosink connect=0 client-name="Video Capture SRC"