[meta-freescale] imxipuvideosink in 3.10.53 on Nitrogex6xlite

Gary Thomas gary at mlbassoc.com
Tue May 19 04:54:53 PDT 2015


On 2015-05-19 05:23, Carlos Rafael Giani wrote:
>
>
> Am 2015-05-19 um 13:17 schrieb Gary Thomas:
>> On 2015-05-19 05:11, Carlos Rafael Giani wrote:
>>>
>>>>>> Thanks for the explanation, perhaps it can help someone fix this.  My
>>>>>> guess is that the FSL plugin doesn't handle those dynamic elements and
>>>>>> thus is not equipped to set up the render in the appropriate window on
>>>>>> the screen.
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Also the full-screen behavior depends the videosink configuration, so
>>>>>>>>> hard to give universal answer, as none will fit all cases.
>>>>>
>>>>> I doubt that the issue is caused exactly by the GstImxVpuDec or GstOverlaySink, as by looking at your pipeline they seem to have static pads. So it's more of how the
>>>>> playbin/decodebin bins handle the pipeline creation process...
>>>>
>>>> All I know is that it does work correctly on other platforms, e.g. a
>>>> native x86 (intel-corei7-64), as well as when there are no i.MX plugins
>>>> installed, so it's definitely tied to the FSL plugin.
>>>
>>> The issue here is that the IPU sink does not know anything about windows. It directly overwrites the framebuffer's pixels. One way I am trying out is to create an empty window in
>>> the sink and let the IPU overwrite its pixels, but this is not exactly clean, and can cause artifacts. If you want to render to a window, I recommend using the imxeglvivsink
>>> instead. In fact, this should be the default one. How did you get the plugins?
>>
>> Nothing special, I simply included gst1.0-fsl-plugin in my image.
>> I'm building my own X based image, which includes these packages:
>>           gst-player-bin
>>           gstreamer1.0-libav
>>           gst1.0-fsl-plugin
>>           gstreamer1.0-plugins-imx
>>
>
> What do you get when you run "gst-inspect-1.0 imxeglvivsink" ?

Output attached.

Note: based on my capture of the gstreamer info (.dot), that plugin
is not what is being used by gtk-play/gst-play.  You can find the .dot
file in a previous reply on this thread (yesterday) or I'll send it
again if you need.


-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
-------------- next part --------------
# gst-inspect-1.0 imxeglvivsink
Factory Details:
  Rank                     primary + 1 (257)
  Long-name                Freescale EGL video sink
  Klass                    Sink/Video
  Description              Video output using the i.MX6 Vivante GPU
  Author                   Carlos Rafael Giani <dv at pseudoterminal.org>

Plugin Details:
  Name                     imxeglvivsink
  Description              EGL/GLES sink using Vivante direct textures
  Filename                 /usr/lib/gstreamer-1.0/libgstimxeglvivsink.so
  Version                  0.10.1
  License                  LGPL
  Source module            gstreamer-imx
  Binary package           Unknown package release
  Origin URL               Unknown package origin

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSink
                         +----GstVideoSink
                               +----GstImxEglVivSink

Implemented Interfaces:
  GstNavigation
  GstVideoOverlay

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { I420, YV12, NV12, NV21, UYVY, RGB16, RGBA, BGRA, RGBx, BGRx, BGR, ARGB, ABGR, xRGB, xBGR }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]


Element Flags:
  no flags set

Element Implementation:
  Has change_state() function: gst_imx_egl_viv_sink_change_state

Element has no clocking 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 custom queryfunc(): gst_base_sink_sink_query
      Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
    Pad Template: 'sink'

Element Properties:
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "imxeglvivsink0"
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  sync                : Sync on the clock
                        flags: readable, writable
                        Boolean. Default: 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: 20000000 
  qos                 : Generate Quality-of-Service events upstream
                        flags: readable, writable
                        Boolean. Default: true
  async               : Go asynchronously to PAUSED
                        flags: readable, writable
                        Boolean. Default: true
  ts-offset           : Timestamp offset in nanoseconds
                        flags: readable, writable
                        Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0 
  enable-last-sample  : Enable the last-sample property
                        flags: readable, writable
                        Boolean. Default: true
  last-sample         : The last sample received in the sink
                        flags: readable
                        Boxed pointer of type "GstSample"
  blocksize           : Size in bytes to pull per buffer (0 = default)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4096 
  render-delay        : Additional render delay of the sink in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  throttle-time       : The time to keep between rendered buffers (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  max-bitrate         : The maximum bits per second to render (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  show-preroll-frame  : Whether to render video frames during preroll
                        flags: readable, writable
                        Boolean. Default: true
  fullscreen          : Whether or not to set the created window to fullscreen mode (ignored if application provides a window handle)
                        flags: readable, writable
                        Boolean. Default: false
  force-aspect-ratio  : When enabled, scaling will respect original aspect ratio
                        flags: readable, writable
                        Boolean. Default: true
  native-display      : String identifying the display to use (default value uses the default display)
                        flags: readable, writable
                        String. Default: null
  window-x-coord      : X coordinate of the window's top left corner, in pixels
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  window-y-coord      : Y coordinate of the window's top left corner, in pixels
                        flags: readable, writable
                        Integer. Range: -2147483648 - 2147483647 Default: 0 
  window-width        : Window width, in pixels (0 = automatically set to the video input width)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0 
  window-height       : Window height, in pixels (0 = automatically set to the video input height)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0 
  borderless-window   : Disable window borders, bypassing any window manager
                        flags: readable, writable
                        Boolean. Default: false


# opkg search /usr/lib/gstreamer-1.0/libgstimxeglvivsink.so
gstreamer1.0-plugins-imx-imxeglvivsink - 0.10.1-r0.1


More information about the meta-freescale mailing list