This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

gstreamer could not negotiate format for 1080p25 & 720p50

Hello,

I am working on DM816x-EVM(Netra) based custom board.

Custom board setup is as following:

We have DM816x Video ports connected to FPGA logic. At video RX side FPGA will recieve video from HD-SDI and converts it to 1080p30/1080p25/720p50 format and feed to VIN0 (x16) of DM816x. At video Tx side DM816x will feed VOUT1 (x16) 1080p30/1080p25/720p50 format to FPGA where it converts to HD-SDI and sent for display devices.

Note : 1080p30/1080p25/720p50 format are user configurable at DM816x as well as at FPGA.

Following test cases are passed:

 For all 1080p30/1080p25/720p50 formats, Omx Capture_encode application & saLoopback application works fine with custom board.

But end user application needs GST pipelines.

Following is the issues i am facing with gstreamer applications.

I tested with EVM for 1080p25 & 720p50, with respective inputs it gives the same problem as with my custom board explained below.

1) For 1080p30Works fine

LOG:

root@root:~# GST_DEBUG=0 gst-launch v4l2src always-copy=false queue-size=11 ! 'video/x-raw-yuv-
strided,format=(fourcc)YUY2,width=1920,height=1080,framerate=(fraction)30/1' ! omxbufferalloc num
Buffers=11 ! gstperf ! v4l2sink min-queued-bufs=2
Setting pipeline to PAUSED ...

** (gst-launch-0.10:1332): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1332): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1332): CRITICAL **: gst_v4l2sink_sync_flip: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

Mode set is 1080
allocating 11 buffers of size:4147200!!
allocated outbuf:0x44f7a080
allocated outbuf:0x4536e880
allocated outbuf:0x45763080
allocated outbuf:0x45b57880
allocated outbuf:0x45f4c080
allocated outbuf:0x46340880
allocated outbuf:0x46735080
allocated outbuf:0x46b29880
allocated outbuf:0x46f1e080
allocated outbuf:0x47312880
allocated outbuf:0x47707080
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
perf0: frames: 29 current: 28.68 average: 28.68 arm-load: 0
perf0: frames: 60 current: 30.00 average: 29.35 arm-load: 0
perf0: frames: 90 current: 30.00 average: 29.56 arm-load: 0
perf0: frames: 121 current: 30.00 average: 29.67 arm-load: 0
perf0: frames: 152 current: 30.00 average: 29.74 arm-load: 0
perf0: frames: 182 current: 30.00 average: 29.78 arm-load: 0
perf0: frames: 213 current: 30.00 average: 29.81 arm-load: 0
perf0: frames: 244 current: 30.00 average: 29.84 arm-load: 0
perf0: frames: 275 current: 30.00 average: 29.86 arm-load: 0
perf0: frames: 305 current: 30.00 average: 29.87 arm-load: 0
perf0: frames: 335 current: 30.00 average: 29.88 arm-load: 0
perf0: frames: 365 current: 30.00 average: 29.89 arm-load: 0
perf0: frames: 395 current: 30.00 average: 29.90 arm-load: 0
perf0: frames: 426 current: 30.00 average: 29.91 arm-load: 0
^C

Caught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 14974059036 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...

!!!!!!!!!unreference all the remaining buffers!!!!!!!!!Setting pipeline to NULL ...
Freeing pipeline ...
root@root:~#

2) For 1080p25: Could not negotiate format Error

root@root:~# gst-launch -e v4l2src device=/dev/video0 always-copy=false queue-size=11 ! video/x
-raw-yuv-strided,format=\(fourcc\)YUY2,framerate=\(fraction\)25/1,width=\(int\)1920,height=\(int\
)1080 ! omxbufferalloc numBuffers=11 ! gstperf ! v4l2sink device=/dev/video1 sync=false min-queue
d-bufs=2
Setting pipeline to PAUSED ...

** (gst-launch-0.10:1207): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1207): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1207): CRITICAL **: gst_v4l2sink_sync_flip: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

Mode set is 15
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format
Additional debug info:
gstbasesrc.c(2778): gst_base_src_start (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Check your filtered caps, if any
Setting pipeline to NULL ...

!!!!!!!!!unreference all the remaining buffers!!!!!!!!!Freeing pipeline ...
root@root:~#

3) For 720p50Could not negotiate format error

root@root:~# GST_DEBUG=0 gst-launch v4l2src always-copy=false queue-size=11 ! 'video/x-raw-yuv-

strided,format=(fourcc)YUY2,width=1280,height=720,framerate=(fraction)50/1' ! omxbufferalloc numB
uffers=11 ! gstperf ! v4l2sink min-queued-bufs=2
Setting pipeline to PAUSED ...

** (gst-launch-0.10:1288): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1288): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1288): CRITICAL **: gst_v4l2sink_sync_flip: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

Mode set is 6
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format
Additional debug info:
gstbasesrc.c(2778): gst_base_src_start (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Check your filtered caps, if any
Setting pipeline to NULL ...

!!!!!!!!!unreference all the remaining buffers!!!!!!!!!Freeing pipeline ...
root@root:~#

Hope you understand my problem, Please help in this regard. to make gst pipelines works for 1080p25 & 720p50 formats.

Thanks in advance

Regards

Sadasivappa