All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Thomas <gary@mlbassoc.com>
To: meta-freescale@yoctoproject.org
Subject: Re: imxipuvideosink in 3.10.53 on Nitrogex6xlite
Date: Tue, 19 May 2015 05:54:53 -0600	[thread overview]
Message-ID: <555B248D.2070401@mlbassoc.com> (raw)
In-Reply-To: <555B1D37.4040300@pseudoterminal.org>

[-- Attachment #1: Type: text/plain, Size: 2360 bytes --]

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
------------------------------------------------------------

[-- Attachment #2: gst.out --]
[-- Type: text/plain, Size: 6304 bytes --]

# 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@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

  reply	other threads:[~2015-05-19 11:54 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-18  5:34 imxipuvideosink in 3.10.53 on Nitrogex6xlite Paweł Żabiełowicz
2015-05-18  7:48 ` Carlos Rafael Giani
2015-05-18  8:18 ` Nikolay Dimitrov
2015-05-18 12:04   ` Gary Thomas
2015-05-18 12:26     ` Carlos Rafael Giani
2015-05-18 12:33       ` Gary Thomas
2015-05-18 15:55     ` Nikolay Dimitrov
2015-05-18 16:27       ` Gary Thomas
2015-05-18 23:52         ` Nikolay Dimitrov
2015-05-19 10:53           ` Gary Thomas
2015-05-19 11:04             ` Nikolay Dimitrov
2015-05-19 11:08               ` Gary Thomas
2015-05-19 11:11                 ` Carlos Rafael Giani
2015-05-19 11:16                   ` Nikolay Dimitrov
2015-05-19 11:17                   ` Gary Thomas
2015-05-19 11:23                     ` Carlos Rafael Giani
2015-05-19 11:54                       ` Gary Thomas [this message]
2015-05-19 15:09                         ` Carlos Rafael Giani
2015-05-19 15:13                           ` Gary Thomas
2015-05-19 15:28                             ` Nikolay Dimitrov
2015-05-21 13:53                           ` Gary Thomas
2015-05-21 14:13                             ` Gary Thomas
2015-05-21 14:40                               ` Nikolay Dimitrov
2015-05-21 14:49                                 ` Nikolay Dimitrov
2015-05-21 14:46                             ` Carlos Rafael Giani
2015-05-21 14:52                               ` Gary Thomas
2015-05-26 13:50                                 ` Gary Thomas
2015-05-26 13:59                                   ` Carlos Rafael Giani
2015-05-26 14:04                                     ` Gary Thomas
2015-05-26 18:53                                       ` Carlos Rafael Giani
2015-05-27 12:05                                         ` Gary Thomas
2015-05-28  6:33                                           ` Carlos Rafael Giani
2015-05-28 12:11                                             ` Gary Thomas
2015-05-29  7:06                                               ` Carlos Rafael Giani
2015-05-29  7:25                                                 ` Carlos Rafael Giani
2015-05-29 13:00                                                   ` Gary Thomas
2015-06-02 15:34                                                     ` Carlos Rafael Giani
2015-06-02 17:11                                                       ` Carlos Rafael Giani
2015-06-02 17:16                                                         ` Gary Thomas
2015-06-02 21:05                                                           ` Carlos Rafael Giani
2015-06-02 21:19                                                             ` Nikolay Dimitrov
2015-06-02 22:10                                                             ` Gary Thomas
2015-06-02 22:17                                                               ` Pushpal Sidhu
2015-06-02 22:33                                                                 ` Gary Thomas
2015-06-02 22:42                                                                   ` Pushpal Sidhu
2015-05-19 11:10               ` Nikolay Dimitrov
2015-05-19 11:19                 ` Gary Thomas
2015-05-19  6:48     ` Paweł Żabiełowicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=555B248D.2070401@mlbassoc.com \
    --to=gary@mlbassoc.com \
    --cc=meta-freescale@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.