Other Parts Discussed in Thread: TVP7002
Dear All,
on our custom dm814x hardware, we have a pal decoder (CX25836) connect to VIN1A. I've already managed how to configure it to work as V4L2 input by "telling" the system that it's capturing at 1080p resolution (subdevice reports V4L2_DV_1080P60 like tvp7002 does). This work pretty well with the sample saLookback video example but now I want to use it with gstreamer and, for example, do something like capture/encode/display example (encode h264 and display on 1080p HDMI screen).
Here is my simple pipeline:
gst-launch v4l2src device="/dev/video2" always-copy=false queue-size=12 num-buffers=1000 ! 'video/x-raw-yuv-strided,format=(fourcc)NV12,width=1920,height=1080,framerate=(fraction)50/1' ! omxbufferalloc silent=false numBuffers=12 ! omx_mdeiscaler name=d d.src_01 ! omx_h264enc bitrate=5000000 ! filesink location=v4l2cap.h264 d.src_00 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! gstperf ! omx_videosink display-mode=OMX_DC_MODE_1080P_60
The capture is show correctly for the "active" area, but the rest of the screen is filled with random data (which lead to a "wrong" encoded stream). How can I clip/crop with 720x576 resolution to create a h264 with only active area? Is it possible?
I've also try to report V4L2_DV_576P50 as dv preset and use the following pipeline
gst-launch v4l2src device="/dev/video2" always-copy=false queue-size=12 num-buffers=1000 ! 'video/x-raw-yuv-strided,format=(fourcc)NV12,width=720,height=576,framerate=(fraction)50/1' ! omxbufferalloc silent=false numBuffers=12 ! omx_mdeiscaler name=d d.src_01 ! fakesink d.src_00 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! gstperf ! omx_videosink display-mode=OMX_DC_MODE_1080P_60
but it's not working at all and I get the following errors:
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed trying to get video frames from device '/dev/video2'.
Additional debug info:
gstv4l2bufferpool.c(650): gst_v4l2_buffer_pool_dqbuf (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
The buffer type is not supported, or the index is out of bounds, or no buffers have been allocated yet, or the userptr or length are invalid. device /dev/video2
Any clue or any example in how to capture something different from 1080p or 720p?
Best Regards,
Andrea