[meta-freescale] [meta-fsl-arm] Using gstreamer on Nitrogen6x/SabreLite

Eric Nelson eric.nelson at boundarydevices.com
Wed Mar 5 09:44:04 PST 2014


Hi Gary,

On 03/04/2014 08:03 AM, Gary Thomas wrote:
> I have a SabreLite with the OV5642 camera.  I'd like to capture
> some video and display it on the screen.  Here's my gstreamer
> pipeline:
>
> gst-launch -e -vvv mfw_v4lsrc device=/dev/video0 num-buffers=100 typefind=true \
>     ! "video/x-raw-yuv, format=(fourcc)I420, width=640, height=480, framerate=(fraction)30/1" \
>     ! ffmpegcolorspace \
>     ! ximagesink
>
> What I don't understand is why the format from mfw_v4lsrc has to
> be I420 when the OV5642 [kernel] driver seems to only support YUYV
> (yuyv422)?
>
> To further confuse, I can grab a frame like this:
>    yavta -fYUYV -s640x480 -F -c1 /dev/video0
> and the V4l2 subsystem tells me this sensor is YUYV:
>    root at nitrogen6x:~# v4l2-ctl -d /dev/video0 --list-formats
>    ioctl: VIDIOC_ENUM_FMT
>          Index       : 0
>          Type        : Video Capture
>          Pixel Format: 'YUYV'
>          Name        :

This appears to be a bug in the video driver (mxc_v4l2_capture) with
respect to enumeration (not a strong point for the drivers).

The driver (mxc_v4l2_capture) appears to support a wide variety of
pixel formats through the magic of the IPU.

The mfw_v4lsrc plugin appears to be hard-coded to support only
UYVY and I420 on i.MX6 though (and NV12 on i.MX51).

Note that your pipeline is very expensive, and would benefit from
using a sink that can support YUV natively (mfw_isink, mfw_v4lsink)
or that can do the conversion in hardware (glimagesink).

Regards,


Eric



More information about the meta-freescale mailing list