AnsweredAssumed Answered

gstreamer mfw_v4lsink YUY2 not displaying anything

Question asked by markurup on Jul 17, 2013
Latest reply on Jul 17, 2013 by markurup

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

 

 

 

Outcomes