From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id A3255E0095C; Wed, 13 May 2015 10:00:12 -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 3E6FAE00820 for ; Wed, 13 May 2015 10:00:06 -0700 (PDT) Received: by mail.chez-thomas.org (Postfix, from userid 1998) id 1251AF8119A; Wed, 13 May 2015 11:00:05 -0600 (MDT) Received: from [192.168.1.114] (zeus [192.168.1.114]) by mail.chez-thomas.org (Postfix) with ESMTP id 4F095F8119A; Wed, 13 May 2015 11:00:05 -0600 (MDT) Message-ID: <55538316.3040901@mlbassoc.com> Date: Wed, 13 May 2015 11:00:06 -0600 From: Gary Thomas User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: meta-freescale@yoctoproject.org References: <554B7546.8050202@mail.bg> <554B764F.9080206@mlbassoc.com> <554B83B2.3000607@mail.bg> <554B84EF.9080108@mlbassoc.com> <554B8721.6050302@mail.bg> <5551E54E.3060504@mail.bg> <5551E881.6060602@mlbassoc.com> <5551F196.5070401@mail.bg> <5551F65B.8020005@mlbassoc.com> <5551F7CF.6020906@mlbassoc.com> <55534A22.5030900@mlbassoc.com> <5553514A.1030609@mlbassoc.com> <555358E3.7000304@mlbassoc.com> <555378E2.6010402@mlbassoc.com> In-Reply-To: <555378E2.6010402@mlbassoc.com> Subject: Re: Fido with kernel 3.10.17 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: Wed, 13 May 2015 17:00:12 -0000 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 2015-05-13 10:16, Gary Thomas wrote: > On 2015-05-13 08:00, Gary Thomas wrote: >> On 2015-05-13 07:27, Gary Thomas wrote: >>> On 2015-05-13 07:07, Otavio Salvador wrote: >>>> On Wed, May 13, 2015 at 9:57 AM, Gary Thomas wrote: >>>>> On 2015-05-12 06:59, Otavio Salvador wrote: >>>>>> >>>>>> On Tue, May 12, 2015 at 9:53 AM, Gary Thomas wrote: >>>>>>> >>>>>>> On 2015-05-12 06:48, Otavio Salvador wrote: >>>>>>>> >>>>>>>> >>>>>>>> On Tue, May 12, 2015 at 9:47 AM, Gary Thomas wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> On 2015-05-12 06:43, Otavio Salvador wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, May 12, 2015 at 9:27 AM, Nikolay Dimitrov >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Gstreamer-1.0 freezes instantly with my test video streams. As I've >>>>>>>>>>> invested some time in the past to really force gstreamer-0.10 to >>>>>>>>>>> work, >>>>>>>>>>> I'm quite reluctant to go forward with gstreamer-1.0, especially when >>>>>>>>>>> its MPEGTS implementation is, well... half-working. So I'm sticking >>>>>>>>>>> with >>>>>>>>>>> what I've made to work so far. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Did you try the community plugin? We have been using it with several >>>>>>>>>> customers and in general it is working very well. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Is that not what you would get when running the media player? >>>>>>>>> >>>>>>>>> Do you have an example pipeline that does work, e.g. play a >>>>>>>>> complete movie (H264+mp3) in .mp4 container? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> gst-play-1.0 works. >>>>>>>> >>>>>>> >>>>>>> Not for me on either of the i.MX6 boards I have here :-( What board(s) >>>>>>> [and kernel] have you tested with? >>>>>>> >>>>>>> What did you play? What is your display device? Anything else >>>>>>> you can provide that might help me figure this out... >>>>>> >>>>>> >>>>>> Did you use the gstreamer1.0-imx? The fsl-image-multimedia works for >>>>>> many movies. >>>>>> >>>>> >>>>> I found that my kernel was not enabling mxc_v4l2_output. I've enabled this >>>>> and now the result is different, but always failing with: >>>>> mxc_v4l2_output v4l2_out.32: Bypass IC. >>>>> Attempt to unlock mutex that was not locked >>>>> >>>>> Do you have an image where this works correctly? I'd like to try it with >>>>> my kernel on my hardware, etc. >>>> >>>> http://ci.ossystems.com.br/public/fsl-community-bsp/fido >>>> >>> >>> Thanks. I tried an image for my SabreLite, but it seems to be missing >>> important bits. This is the image I tried: >>> http://ci.ossystems.com.br/public/fsl-community-bsp/fido/16/x11/nitrogen6x/fsl-image-multimedia-nitrogen6x.sdcard >>> >>> It doesn't have gst-play-1.0, nor much of anything as far as I can tell. >>> X brings up a terminal window, but I don't see how to run anything else, >>> e.g. chrome? >>> >>> What am I missing? Perhaps I chose the wrong image? How do I play a movie >>> using this image (as your comment above says should work)? >>> >>> Thanks again >>> >> >> I tried a different image that has more tools: >> http://ci.ossystems.com.br/public/fsl-community-bsp/fido/16/x11/nitrogen6x/fsl-image-machine-test-nitrogen6x.sdcard >> >> Sadly, it's working the same as the image(s) I build myself: >> >> root@nitrogen6x:~# export DISPLAY=:0.0 >> root@nitrogen6x:~# gst-play-1.0 Vlad+Louise.mp4 >> mxc_cam_select_input: input(0) CSI IC MEM >> mxc_v4l_open: Mxc Camera no sensor ipu1/csi0 >> mxc_v4l_open: Mxc Camera no sensor ipu1/csi1 >> Now playing /home/root/Vlad+Louise.mp4 >> [INFO]liProduct 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 >> Aborted >> >> Please tell me again how this is working well for your customers? >> What am I doing wrong? >> >> Note: I've tried multiple .mp4 files, with the same results. >> > > I've tracked this down to the gst1.0-fsl-plugin package. > Here's a GDB backktrace from the abort: > > (gdb) bt > #0 0xb6b109d4 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55 > #1 0xb6b144d4 in __GI_abort () at abort.c:89 > #2 0xb6d537e4 in g_mutex_unlock_slowpath (mutex=mutex@entry=0xb39ff460, prev=) > at /usr/src/debug/glib-2.0/1_2.44.0-r0/glib-2.44.0/glib/gthread-posix.c:1326 > #3 0xb6d542f8 in g_mutex_unlock (mutex=mutex@entry=0xb39ff460) > at /usr/src/debug/glib-2.0/1_2.44.0-r0/glib-2.44.0/glib/gthread-posix.c:1349 > #4 0xb6d5441c in g_cond_wait (cond=0xfffffffe, cond@entry=0xb49085e4, mutex=0xb39ff460, mutex@entry=0xb49085f0) > at /usr/src/debug/glib-2.0/1_2.44.0-r0/glib-2.44.0/glib/gthread-posix.c:1394 > #5 0xb31d3a98 in compositor_compositing_thread (compositor=0xb49085d0) > at /usr/src/debug/gst1.0-fsl-plugin/4.0.3-r0/gst1.0-fsl-plugins-4.0.3/plugins/overlay_sink/compositor.c:282 > #6 0xb6d34be4 in g_thread_proxy (data=0xb4902a30) > at /usr/src/debug/glib-2.0/1_2.44.0-r0/glib-2.44.0/glib/gthread.c:764 > #7 0xb6c27de0 in start_thread (arg=0xb39ff460) at pthread_create.c:338 > #8 0xb6bb4fa0 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:89 from /tmp/p0382_root/lib/libc.so.6 > > The function in question is: > > static gpointer compositor_compositing_thread (gpointer compositor) > { > CompositorHandle *hcompositor = (CompositorHandle*) compositor; > > while (hcompositor->running) { > COMPOSITOR_WAIT_SURFACE (hcompositor); > compositor_do_compositing_surface_list (hcompositor); > } > > GST_DEBUG ("compositor thread exit"); > > return; > } > > It's failing on the 'COMPOSITOR_WAIT_SURFACE' function, the first time > is is called. > > Anyone know why this might be failing? Does someone have a working > example of this code - from either fido or current master? > > Thanks > BTW, this patch fixes the problem and I can play my videos with gst-play. Is it correct? Index: gst1.0-fsl-plugins-4.0.3/plugins/overlay_sink/compositor.c =================================================================== --- gst1.0-fsl-plugins-4.0.3.orig/plugins/overlay_sink/compositor.c +++ gst1.0-fsl-plugins-4.0.3/plugins/overlay_sink/compositor.c @@ -278,6 +278,7 @@ static gpointer compositor_compositing_t { CompositorHandle *hcompositor = (CompositorHandle*) compositor; + g_mutex_lock(&hcompositor->lock); while (hcompositor->running) { COMPOSITOR_WAIT_SURFACE (hcompositor); compositor_do_compositing_surface_list (hcompositor); -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------