From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id ABC0FE009C5; Thu, 21 May 2015 07:46: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,SPF_HELO_PASS autolearn=ham version=3.3.1 X-Spam-HAM-Report: * -0.0 SPF_HELO_PASS SPF: HELO matches SPF record * -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] Received: from ptmx.org (ptmx.org [178.63.28.110]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id 37FFCE009B6 for ; Thu, 21 May 2015 07:46:05 -0700 (PDT) Received: from [10.1.14.248] (vpn.streamunlimited.com [91.114.0.140]) by ptmx.org (Postfix) with ESMTPSA id B20FB35936; Thu, 21 May 2015 16:45:53 +0200 (CEST) Message-ID: <555DEFAB.9040802@pseudoterminal.org> Date: Thu, 21 May 2015 16:46:03 +0200 From: Carlos Rafael Giani User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Gary Thomas , 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> In-Reply-To: <555DE360.3000303@gmail.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: Thu, 21 May 2015 14:46:09 -0000 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit 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. 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. >>> >>> >>> >>> >> >> >>