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
------------------------------------------------------------
# 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 <[email protected]>
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
--
_______________________________________________
meta-freescale mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-freescale