I'm having some trouble with mfw_v4lsink in gstreamer:
Working:
root@flexpad /$ gst-launch-0.10 -v videotestsrc ! video/x-raw-yuv,format=\(fourcc\)I420 ! mfw_v4lsink &
root@flexpad /$ MFW_GST_V4LSINK_PLUGIN 1.9.6 build on Jan 27 2012 11:18:05.
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLING ...
>>V4L_SINK: Actually buffer status:
hardware buffer : 12
software buffer : 0
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/MFW_GST_V4LSINK_INFO_T:mfw_gst_v4lsink_info_t0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
full screen size:800x480
[V4L Update Display]: left=0, top=0, width=800, height=480
New clock: GstSystemClock
Not working (it runs with no error, but nothing is displayed on screen):
root@flexpad /$ gst-launch-0.10 -v videotestsrc ! video/x-raw-yuv,format=\(fourc
c\)YUY2 ! mfw_v4lsink &
root@flexpad /$ MFW_GST_V4LSINK_PLUGIN 1.9.6 build on Jan 27 2012 11:18:05.
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLING ...
>>V4L_SINK: Actually buffer status:
hardware buffer : 12
software buffer : 0
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1
/GstPipeline:pipeline0/MFW_GST_V4LSINK_INFO_T:mfw_gst_v4lsink_info_t0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
full screen size:800x480
[V4L Update Display]: left=0, top=0, width=800, height=480
New clock: GstSystemClock
mfw_v4lsink shows YUV (I420) but not YUV (YUY2), although inspecting the caps says it should support it:
root@flexpad /$ gst-inspect mfw_v4l_sink
No such element or plugin 'mfw_v4l_sink'
root@flexpad /$ gst-inspect | grep mfw
mfw_aacdecoder: mfw_aacdecoder: Freescale AAC Decoder Plugin
mfw_mp3decoder: mfw_mp3decoder: freescale mp3 decoder
mfw_h264decoder: mfw_h264decoder: Freescale H264 decoder
mfw_mpeg4aspdecoder: mfw_mpeg4aspdecoder: Freescale MPEG4 Decoder
mfw_v4lsink: mfw_v4lsink: Freescale: V4L Sink
root@flexpad /$ gst-inspect mfw_v4lsink
MFW_GST_V4LSINK_PLUGIN 1.9.6 build on Jan 27 2012 11:18:05.
Factory Details:
Long name: Freescale: V4L Sink
Class: Sink/Video
Description: Video rendering device plugin used to display YUV/RGB data with the support to input cropping
Author(s): Multimedia Team <shmmmw@freescale.com>
Rank: unknown (258)
Plugin Details:
Name: mfw_v4lsink
Description: Video display plugin based on V4L2
Filename: /usr/lib/gstreamer-0.10/libmfw_gst_v4lsink.so
Version: 1.9.6
License: unknown
Source module: gst-fsl-plugin
Binary package: Gstreamer Multimedia Plugins (Freescale)
Origin URL: http://www.freescale.com
GObject
+----GstObject
+----GstElement
+----GstBaseSink
+----GstVideoSink
+----MFW_GST_V4LSINK_INFO_T
Pad Templates:
SINK template: 'sink'
Availability: Always
Capabilities:
video/x-raw-yuv
format: I420
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw-yuv
format: YV12
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw-yuv
format: YUYV
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw-yuv
format: YUY2
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw-yuv
format: NV12
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw-yuv
format: 422P
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw-rgb
bpp: [ 1, 32 ]
depth: [ 1, 32 ]
Element Flags:
no flags set
Element Implementation:
Has change_state() function: mfw_gst_v4lsink_change_state
Has custom save_thyself() function: gst_element_save_thyself
Has custom restore_thyself() function: gst_element_restore_thyself
Element has no clocking capabilities.
Element has no indexing capabilities.
Element has no URI handling capabilities.
Pads:
SINK: 'sink'
Implementation:
Has chainfunc(): gst_base_sink_chain
Has custom eventfunc(): gst_base_sink_event
Has bufferallocfunc(): gst_base_sink_pad_buffer_alloc
Pad Template: 'sink'
Element Properties:
name : The name of the object
flags: readable, writable
String. Default: null Current: "mfw_gst_v4lsink_info_t0"
preroll-queue-len : Number of buffers to queue during preroll
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 0 Current: 0
sync : Sync on the clock
flags: readable, writable
Boolean. Default: true Current: true
max-lateness : Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)
flags: readable, writable
Integer64. Range: -1 - 9223372036854775807 Default: -1 Current: 20000000
qos : Generate Quality-of-Service events upstream
flags: readable, writable
Boolean. Default: false Current: true
async : Go asynchronously to PAUSED
flags: readable, writable
Boolean. Default: true Current: true
ts-offset : Timestamp offset in nanoseconds
flags: readable, writable
Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0 Current: 0
last-buffer : The last buffer received in the sink
flags: readable
MiniObject of type "GstBuffer"
blocksize : Size in bytes to pull per buffer (0 = default)
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 4096 Current: 4096
render-delay : Additional render delay of the sink in nanoseconds
flags: readable, writable
Unsigned Integer64. Range: 0 - -1 Default: 0 Current: 0
show-preroll-frame : Whether to render video frames during preroll
flags: readable, writable
Boolean. Default: true Current: true
disp-width : gets the width of the image to be displayed
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
disp-height : gets the height of the image to be displayed
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
axis-top : gets the top co-ordinate of the origin of display
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
axis-left : gets the left co-ordinate of the origin of display
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
crop-left-by-pixel : set the input image cropping in the left (width)
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
crop-right-by-pixel : set the input image cropping in the right (width)
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
crop-top-by-pixel : set the input image cropping in the top (height)
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
crop-bottom-by-pixel: set the input image cropping in the bottom (height)
flags: readable, writable
Integer. Range: 0 - 2147483647 Default: 0 Current: 0
dump-location : Location of the file to write cropped video YUV stream.Enable it will output image to file instead of V4L device
flags: readable, writable
String. Default: null Current: null
setpara : set parameter of V4L2, 1: Set V4L 2: Set Color
flags: readable, writable
Integer. Range: 0 - 3 Default: 0 Current: 0
force-aspect-ratio : Force Aspect Ratio
flags: readable, writable
Boolean. Default: false Current: false
>>V4L finalize: class finalized.
root@flexpad /$
Is this a general issue, or am I missing something/doing it wrong?
ps. I could use a ffmpegcolorspace element, but that uses alot of cpu time, so I would rather avoid it, especially when mfw_v4lsink says it supports YUY2!
Regards
Mark