[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