From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id 396DCE009FA; Thu, 21 May 2015 07:53:23 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on yocto-www.yoctoproject.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 X-Spam-HAM-Report: * -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] Received: from mail.chez-thomas.org (mail.mlbassoc.com [65.100.170.105]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id 7CEADE00A08 for ; Thu, 21 May 2015 07:52:33 -0700 (PDT) Received: by mail.chez-thomas.org (Postfix, from userid 1998) id 985CDF811EA; Thu, 21 May 2015 08:52:33 -0600 (MDT) Received: from [192.168.1.114] (zeus [192.168.1.114]) by mail.chez-thomas.org (Postfix) with ESMTP id F3A6EF811EA; Thu, 21 May 2015 08:52:32 -0600 (MDT) Message-ID: <555DF13F.1010308@mlbassoc.com> Date: Thu, 21 May 2015 08:52:47 -0600 From: Gary Thomas User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: meta-freescale@yoctoproject.org References: <555979FE.50306@satel.pl> <5559A04D.5080500@mail.bg> <5559D536.5030206@mlbassoc.com> <555A0B81.3090905@mail.bg> <555A130C.9060605@mlbassoc.com> <555A7B5B.90906@mail.bg> <555B1634.9050003@gmail.com> <555B18AB.4080403@mail.bg> <555B19AA.4010309@gmail.com> <555B1A48.9030303@pseudoterminal.org> <555B1BD6.7090704@mlbassoc.com> <555B1D37.4040300@pseudoterminal.org> <555B248D.2070401@mlbassoc.com> <555B5234.9060104@pseudoterminal.org> <555DE360.3000303@gmail.com> <555DEFAB.9040802@pseudoterminal.org> In-Reply-To: <555DEFAB.9040802@pseudoterminal.org> Subject: Re: imxipuvideosink in 3.10.53 on Nitrogex6xlite X-BeenThere: meta-freescale@yoctoproject.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Usage and development list for the meta-fsl-* layers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 May 2015 14:53:23 -0000 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 2015-05-21 08:46, Carlos Rafael Giani wrote: > Are you starting this from SSH or minicom? If so, make sure you call this first: > > export DISPLAY=:0 > > Otherwise, it will not be able to connect to the X display. This might explain why the eglvivsink wasn't being picked. > As for the double mutex unlock, this might already have a fix. I'll check. Yes, I have DISPLAY set. playbin without any video-sink option works fine to my device, but it goes in an overlay (whole screen). I'm trying to investigate how to make it work correctly when rendered into a window, e.g. called from gtk-play/gst-play > > > On 05/21/2015 03:53 PM, Gary Thomas wrote: >> On 2015-05-19 09:09, Carlos Rafael Giani wrote: >>> It is strange that gtk-play isn't picking this one. Anyway, if you explicitely pick it, you should have windowed output. >> >> I tried forcing this via: >> gst-launch-1.0 playbin uri=file:///some_file.mp4 >> >> It starts up, then fails with: >> Setting pipeline to PAUSED ... >> Pipeline is PREROLLING ... >> [INFO] Product Info: i.MX6Q/D/S >> [INFO] bitstreamMode 1, chromaInterleave 0, mapType 0, tiled2LinearEnable 0 >> CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_CORTEX-A8 build on Jun 19 2014 18:30:32. >> Attempt to unlock mutex that was not locked >> >> Using GDB, I tracked this down to >> #4 0xb685d318 in gst_imx_egl_viv_sink_egl_platform_expose (platform=0xa93ff460) >> at ../src/eglvivsink/egl_platform_x11.c:497 >> >> The code in question looks pretty simple: >> gboolean gst_imx_egl_viv_sink_egl_platform_expose(GstImxEglVivSinkEGLPlatform *platform) >> { >> EGL_PLATFORM_LOCK(platform); >> gst_imx_egl_viv_sink_egl_platform_send_cmd(platform, GSTIMX_EGLX11_CMD_EXPOSE); >> EGL_PLATFORM_UNLOCK(platform); >> return TRUE; >> } >> >> It's failing on the EGL_PLATFORM_UNLOCK() call. >> >> I did have some debug messages show up about this time (many of these): >> mxc_vpu 2040000.vpu: VPU interrupt received. >> Could this be involved? >> >> Any ideas? I'm running this version of that code: >> git log recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_0.10.1.bb >> commit 1e5f8cea6a779c0dc374cdc3a9a6e2d0bdabbd32 >> Author: Otavio Salvador >> Date: Wed Apr 8 11:39:19 2015 -0300 >> >> >>> Am 2015-05-19 um 13:54 schrieb Gary Thomas: >>>> 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 ------------------------------------------------------------