From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id C696FE01482 for ; Thu, 4 Jul 2013 08:03:23 -0700 (PDT) Received: by mail-wg0-f45.google.com with SMTP id j13so1251410wgh.24 for ; Thu, 04 Jul 2013 08:03:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:subject:date:message-id:organization:user-agent :mime-version:content-transfer-encoding:content-type :x-gm-message-state; bh=AgJz4AZ8/JJshfmLTxNyfaxP80b/6eTkM/MYcl+Jcos=; b=MXg05Y/+bMyW2cxMuarU/59v5B/VbX8CCJIQ3vtNxG+FgWfeZMsXOl0/2dR7MS0lf3 +/rGNlq7nYHS7hU9880uoj5wvxuVW6i8nAKaids7SrycbZDpcqx7Fwdy9eShQpsZ9Z7J B0F8dnDLA+69dOZv0dIphrizCGIbbPNvhAuk24R9qVhAPioeG/l1Ls90IvfvotZc9pYC s2IrouPHNZn++fA0P8WL2r5N3kQ5O/S7RBU7RKYf5K87UPHz/HQTC99DMpFl8AWBhtnM uBkIyrNlrqAv++5znUxI4vfqB1AP2oMqAJBbGFh4zdYtPhvRdGTBwwHjpQbDe/646xN5 Fp9w== X-Received: by 10.194.63.229 with SMTP id j5mr3668932wjs.79.1372950202302; Thu, 04 Jul 2013 08:03:22 -0700 (PDT) Received: from rudolf.localnet (ppp-82-135-84-132.dynamic.mnet-online.de. [82.135.84.132]) by mx.google.com with ESMTPSA id b20sm4119258wiw.4.2013.07.04.08.03.21 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 04 Jul 2013 08:03:21 -0700 (PDT) From: Thomas Senyk To: meta-freescale@yoctoproject.org Date: Thu, 04 Jul 2013 17:03:03 +0200 Message-ID: <1797012.Po2ZnTUHJW@rudolf> Organization: Pelagicore AG User-Agent: KMail/4.10.4 (Linux/3.9.8-1-ARCH; KDE/4.10.4; x86_64; ; ) MIME-Version: 1.0 X-Gm-Message-State: ALoCoQkK7eGR1WaAl14KBrWBuVQUwpphI8MwxJZf4kyDeoXzgMcqevKdtsGUB3LNfIDS1/Y8veHj Subject: QtMultimedia on i.MX6 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, 04 Jul 2013 15:03:24 -0000 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Hi, I've started to investigate to see the QtMultimedia-gstreamer integration on the i.MX6 could be optimized. I'm writing this mail to sync with others who might already done some work or investigations on this matter, to get hints where to start and what's worth to investigate. State right now: The HW-decoders are used (according to gstreamer log). That's a very good start/out of the box experience! Good job..freescale I guess? There is still a lot of cpu load: - 720p: smooth playback but~18% complete cpu load => ~70% of one core - 1080p: playback not smooth and ~27% complete cpu load -> 100% of one core + some additional cpu load The obvious reason for this cpu load is some sort of memcopy and/or conversion. ... gstreamer doesn't render into gpu-memory directly. ... or (if you want it the other way around) the gstreamer (/cpu) memory isn't mapped into gpu-memory (which is possibly on the imx6) Started to do some digging: One of the first things I tried was to compile gst-plugin-gl (which is part of the meta-fsl-arm layer via a .bbappend). The current recipe is driver-version-1.1.0 based and is not building out of the box (at least not for me) ... I got gst-plugins-gl-0.10.3.1.tar.gz (based on 4.0.0) building.** So, after I got it deployed I hoped for magic to happen and everything is perfect now ... no big surprise: it's not :) nothing changed, possibly the gst-pipline build by qtmultimedia is the ame. The reason for this mail / some questions: So I though, I write this mail before I waste a lot of time. What does people think is the best way forward? Try to convince QtMultimedia to use glsink? Try to use a fakesink/memory-based-sink and try to map the cpu memory into gpu memory via vivante APIs? Does anyone have c/c++ code I could try? Ideally for direct framebuffer/EGL use (I'm not using X11) I found: https://github.com/andreluizeng/i.MX6-Video-Streaming-Texture.git .. but it's crashing rather early and I'm not sure the if the time is well spend fix this code? Anyone used it before? Does anyone know if gst-plugins-gl is applicable for framebuffer/EGL setups? Greet Thomas ** some more info in gst-plugin-gl: It's 'detected' on the board: root@nitrogen-1:~# gst-inspect |grep gl opengl: glupload: OpenGL upload opengl: gldownload: OpenGL video maker opengl: glimagesink: OpenGL video sink opengl: glfiltercube: OpenGL cube filter opengl: gleffects: Gstreamer OpenGL Effects ... if someone is interested on how I got it building, let me know. If I got something useful out of it (read: "it's tested") I'll start a discussion on how to upstream it properly into meta-fsl-arm (by the way: I find the current setup of how to bbappend and it's patch looks like very weird)