From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id 2A934E009BB; Tue, 26 May 2015 06:50:09 -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 C1EF8E0098D for ; Tue, 26 May 2015 06:50:05 -0700 (PDT) Received: by mail.chez-thomas.org (Postfix, from userid 1998) id 31B45F811E6; Tue, 26 May 2015 07:50:05 -0600 (MDT) Received: from [192.168.1.114] (zeus [192.168.1.114]) by mail.chez-thomas.org (Postfix) with ESMTP id 81907F811DF; Tue, 26 May 2015 07:50:04 -0600 (MDT) Message-ID: <55647A23.9020701@mlbassoc.com> Date: Tue, 26 May 2015 07:50:27 -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> <555DF13F.1010308@mlbassoc.com> In-Reply-To: <555DF13F.1010308@mlbassoc.com> 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: Tue, 26 May 2015 13:50:09 -0000 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 2015-05-21 08:52, Gary Thomas wrote: > 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 >>> Any ideas on how to get this to work (i.e. fix the broken locking)? >>> >>>> 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 ------------------------------------------------------------