imx6Quad use qtmultimedia example qmlvideo play mp4 loops for time , qt break

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6Quad use qtmultimedia example qmlvideo play mp4 loops for time , qt break

1,379 Views
yqa
Contributor I

hello nxp:

I use fsl-yocto-L4.9.11_1.0.0 on ubuntu1404

sources/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb have add  gstreamer

PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
+       gstreamer"

yocto qt is qt5.8

by bitbake -c populate_sdk meta-toolchain-qt5

bitbake fsl-image-qt5

I get the rootfs and toochain

on the arm:

#:  gst-play-1.0 video_1080p_60fps.mp4

play ok

log:

root@imx6qsabresd:~# gst-play-1.0 video_1080p_60fps.mp4
Press 'k' to see a list of keyboard shortcuts.
Now playing /home/root/video_1080p_60fps.mp4
Prerolling...
====== AIUR: 4.2.1 build on Aug 23 2020 03:28:54. ======
        Core: MPEG4PARSER_06.12.07  build on May 16 2017 06:45:37
 file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm11_elinux.so.3.2
------------------------
    Track 00 [video_0] Enabled
        Duration: 0:00:30.000000000
        Language: und
    Mime:
        video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)1920, height=(int)1080, framerate=(fraction)60/1, codec_data=(buffer)0164002affe1001b6764002aacd940780227e5c044000003000400000301e03c60c65801000668ebe3cb22c0
------------------------
display(/dev/fb0) resolution is (1280x800).
====== OVERLAYSINK: 4.2.1 build on Aug 23 2020 03:29:09. ======
display(/dev/fb0) resolution is (1280x800).
[INFO]  Product Info: i.MX6Q/D/S
[INFO]  Product Info: i.MX6Q/D/S
====== VPUDEC: 4.2.1 build on Aug 23 2020 03:29:14. ======
        wrapper: 1.0.68 (VPUWRAPPER_ARM_LINUX Build on Aug 23 2020 02:57:39)
        vpulib: 5.4.37
        firmware: 3.1.1.46075
[INFO]  bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0
------------------------
    Track 01 [audio_0] Enabled
        Duration: 0:00:30.021000000
        Language: und
    Mime:
        audio/mpeg, mpegversion=(int)4, channels=(int)6, rate=(int)48000, bitrate=(int)192434, stream-format=(string)raw, codec_data=(buffer)11b0
------------------------

====== BEEP: 4.2.1 build on Aug 23 2020 03:28:59. ======
        Core: AAC decoder Wrapper  build on May 30 2016 12:33:44
 file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm12_elinux.so.3
CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_CORTEX-A8  build on Mar 15 2017 17:11:31.
display(/dev/fb0) resolution mxc_v4l2_output v4l2_out: Bypass IC.
is (1280x800).
mxc_v4l2_output v4l2_out: Bypass IC.
Redistribute latency...

 

use shell

#!/bin/sh
while test "1" = "1"
do
        gst-play-1.0 video_1080p_60fps.mp4
        sleep 1
done

 

loop play video is ok

 

but have errer when use qt5.8  qtmultimedia/examples/multimedia/video/qmlvideo

use qmlvideo  play mp4  use fillemode or fullscreen an so on ; play loop 3~5

,play stop by ctrl+c can exit app qmlvideo ;but touch button "back"

qmlvideo app will be break ctrl+c can not exit.

   log:

root@imx6qsabresd:~/qmlvideo# ./qmlvideo
 ILITEK INFO line = 1752 ilitek_fb_notifier_callback : FB EVENT event = 16
 ILITEK INFO line = 1752 ilitek_fb_notifier_callback : FB EVENT event = 9
 ILITEK INFO line = 1675 ilitek_resume :
 ILITEK INFO line = 699 ilitek_reset : delay = 200
 ILITEK INFO line = 1697 ilitek_resume : ILI2511 resume write 0x20
QEglFSVivIntegration will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.
 If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).

====== AIUR: 4.2.1 build on Aug 23 2020 03:28:54. ======
        Core: MPEG4PARSER_06.12.07  build on May 16 2017 06:45:37
 file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm11_elinux.so.3.2
------------------------
    Track 00 [video_0] Enabled
        Duration: 0:00:30.000000000
        Language: und
    Mime:
        video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)1920, height=(int)1080, framerate=(fraction)60/1, codec_data=(buffer)0164002affe1001b6764002aacd940780227e5c044000003000400000301e03c60c65801000668ebe3cb22c0
------------------------
[INFO]  Product Info: i.MX6Q/D/S
[INFO]  Product Info: i.MX6Q/D/S
====== VPUDEC: 4.2.1 build on Aug 23 2020 03:29:14. ======
        wrapper: 1.0.68 (VPUWRAPPER_ARM_LINUX Build on Aug 23 2020 02:57:39)
        vpulib: 5.4.37
        firmware: 3.1.1.46075
[INFO]  bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0
------------------------
    Track 01 [audio_0] Enabled
        Duration: 0:00:30.021000000
        Language: und
    Mime:
        audio/mpeg, mpegversion=(int)4, channels=(int)6, rate=(int)48000, bitrate=(int)192434, stream-format=(string)raw, codec_data=(buffer)11b0
------------------------

====== BEEP: 4.2.1 build on Aug 23 2020 03:28:59. ======
        Core: AAC decoder Wrapper  build on May 30 2016 12:33:44
 file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm12_elinux.so.3
CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_CORTEX-A8  build on Mar 15 2017 17:11:31.
------------[ cut here ]------------
WARNING: CPU: 0 PID: 797 at mm/page_alloc.c:7361 cma_release+0x78/0x90
765 pages are still in use!
Modules linked in: bcmdhd
CPU: 0 PID: 797 Comm: QSGRenderThread Tainted: G        W       4.9.11-g0527f8a6e76a #89
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[<8010eb64>] (unwind_backtrace) from [<8010b180>] (show_stack+0x10/0x14)
[<8010b180>] (show_stack) from [<80380d34>] (dump_stack+0x78/0x8c)
[<80380d34>] (dump_stack) from [<8012d390>] (__warn+0xe8/0x100)
[<8012d390>] (__warn) from [<8012d3e0>] (warn_slowpath_fmt+0x38/0x48)
[<8012d3e0>] (warn_slowpath_fmt) from [<801fbe30>] (cma_release+0x78/0x90)
[<801fbe30>] (cma_release) from [<80113940>] (__arm_dma_free.constprop.2+0x124/0x138)
[<80113940>] (__arm_dma_free.constprop.2) from [<8065851c>] (vpu_free_dma_buffer+0x98/0xb8)
[<8065851c>] (vpu_free_dma_buffer) from [<80658f14>] (vpu_release+0x1a0/0x2e0)
[<80658f14>] (vpu_release) from [<80200da8>] (__fput+0x84/0x1cc)
[<80200da8>] (__fput) from [<80147394>] (task_work_run+0xb8/0xd8)
[<80147394>] (task_work_run) from [<8010acf4>] (do_work_pending+0x7c/0xa4)
[<8010acf4>] (do_work_pending) from [<80107694>] (slow_work_pending+0xc/0x20)

====== AIUR: 4.2.1 build on---[ end trace 994e9097ede03c67 ]---
 Aug 23 2020 03:28:54. ======
        Core: MPEG4PARSER_06.12.07  build------------[ cut here ]------------
 on May 16 2017 06:45:37
 file: WARNING: CPU: 0 PID: 797 at mm/page_alloc.c:7361 cma_release+0x78/0x90
/usr/lib/imx-mm/parser/lib_mp4_pa765 pages are still in use!
rser_arm11_elinux.so.3.2
-------Modules linked in:-----------------
    Track 00 [ bcmdhdvideo_0] Enabled
        Duration: 0:00
:30.000000000
        Language: und
  CPU: 0 PID: 797 Comm: QSGRenderThread Tainted: G        W       4.9.11-g0527f8a6e76a #89
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[<8010eb64>] (unwind_backtrace) from [<8010b180>] (show_stack+0x10/0x14)
[<8010b180>] (show_stack) from [<80380d34>] (dump_stack+0x78/0x8c)
[<80380d34>] (dump_stack) from [<8012d390>] (__warn+0xe8/0x100)
[<8012d390>] (__warn) from [<8012d3e0>] (warn_slowpath_fmt+0x38/0x48)
[<8012d3e0>] (warn_slowpath_fmt) from [<801fbe30>] (cma_release+0x78/0x90)
[<801fbe30>] (cma_release) from [<80113940>] (__arm_dma_free.constprop.2+0x124/0x138)
[<80113940>] (__arm_dma_free.constprop.2) from [<8065851c>] (vpu_free_dma_buffer+0x98/0xb8)
[<8065851c>] (vpu_free_dma_buffer) from [<80658f14>] (vpu_release+0x1a0/0x2e0)
[<80658f14>] (vpu_release) from [<80200da8>] (__fput+0x84/0x1cc)
[<80200da8>] (__fput) from [<80147394>] (task_work_run+0xb8/0xd8)
[<80147394>] (task_work_run) from [<8010acf4>] (do_work_pending+0x7c/0xa4)
[<8010acf4>] (do_work_pending) from [<80107694>] (slow_work_pending+0xc/0x20)
  Mime:
        video/x-h264, parsed=(b---[ end trace 994e9097ede03c68 ]---
oolean)true, alignment=(string)au------------[ cut here ]------------
, stream-format=(string)avc, widtWARNING: CPU: 0 PID: 797 at mm/page_alloc.c:7361 cma_release+0x78/0x90
h=(int)1920, height=(int)1080, fr765 pages are still in use!
amerate=(fraction)60/1, codec_datModules linked in:a=(buffer)0164002affe1001b6764002 bcmdhdaacd940780227e5c04400000300040000
0301e03c60c65801000668ebe3cb22c0 CPU: 0 PID: 797 Comm: QSGRenderThread Tainted: G        W       4.9.11-g0527f8a6e76a #89
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[<8010eb64>] (unwind_backtrace) from [<8010b180>] (show_stack+0x10/0x14)
[<8010b180>] (show_stack) from [<80380d34>] (dump_stack+0x78/0x8c)
[<80380d34>] (dump_stack) from [<8012d390>] (__warn+0xe8/0x100)
[<8012d390>] (__warn) from [<8012d3e0>] (warn_slowpath_fmt+0x38/0x48)
[<8012d3e0>] (warn_slowpath_fmt) from [<801fbe30>] (cma_release+0x78/0x90)
[<801fbe30>] (cma_release) from [<80113940>] (__arm_dma_free.constprop.2+0x124/0x138)
[<80113940>] (__arm_dma_free.constprop.2) from [<8065851c>] (vpu_free_dma_buffer+0x98/0xb8)
[<8065851c>] (vpu_free_dma_buffer) from [<80658f14>] (vpu_release+0x1a0/0x2e0)
[<80658f14>] (vpu_release) from [<80200da8>] (__fput+0x84/0x1cc)
[<80200da8>] (__fput) from [<80147394>] (task_work_run+0xb8/0xd8)
[<80147394>] (task_work_run) from [<8010acf4>] (do_work_pending+0x7c/0xa4)
[<8010acf4>] (do_work_pending) from [<80107694>] (slow_work_pending+0xc/0x20)

------------------------
---[ end trace 994e9097ede03c69 ]---
------------[ cut here ]------------
WARNING: CPU: 0 PID: 797 at mm/page_alloc.c:7361 cma_release+0x78/0x90
765 pages are still in use!
Modules linked in: bcmdhd
CPU: 0 PID: 797 Comm: QSGRenderThread Tainted: G        W       4.9.11-g0527f8a6e76a #89
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[<8010eb64>] (unwind_backtrace) from [<8010b180>] (show_stack+0x10/0x14)
[<8010b180>] (show_stack) from [<80380d34>] (dump_stack+0x78/0x8c)
[<80380d34>] (dump_stack) from [<8012d390>] (__warn+0xe8/0x100)
[<8012d390>] (__warn) from [<8012d3e0>] (warn_slowpath_fmt+0x38/0x48)
[<8012d3e0>] (warn_slowpath_fmt) from [<801fbe30>] (cma_release+0x78/0x90)
[<801fbe30>] (cma_release) from [<80113940>] (__arm_dma_free.constprop.2+0x124/0x138)
[<80113940>] (__arm_dma_free.constprop.2) from [<8065851c>] (vpu_free_dma_buffer+0x98/0xb8)
[<8065851c>] (vpu_free_dma_buffer) from [<80658f14>] (vpu_release+0x1a0/0x2e0)
[<80658f14>] (vpu_release) from [<80200da8>] (__fput+0x84/0x1cc)
[<80200da8>] (__fput) from [<80147394>] (task_work_run+0xb8/0xd8)
[<80147394>] (task_work_run) from [<8010acf4>] (do_work_pending+0x7c/0xa4)
[<8010acf4>] (do_work_pending) from [<80107694>] (slow_work_pending+0xc/0x20)
---[ end trace 994e9097ede03c6a ]---
------------[ cut here ]------------
WARNING: CPU: 0 PID: 797 at mm/page_alloc.c:7361 cma_release+0x78/0x90
765 pages are still in use!
Modules linked in: bcmdhd
CPU: 0 PID: 797 Comm: QSGRenderThread Tainted: G        W       4.9.11-g0527f8a6e76a #89
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[<8010eb64>] (unwind_backtrace) from [<8010b180>] (show_stack+0x10/0x14)
[<8010b180>] (show_stack) from [<80380d34>] (dump_stack+0x78/0x8c)
[<80380d34>] (dump_stack) from [<8012d390>] (__warn+0xe8/0x100)
[<8012d390>] (__warn) from [<8012d3e0>] (warn_slowpath_fmt+0x38/0x48)
[<8012d3e0>] (warn_slowpath_fmt) from [<801fbe30>] (cma_release+0x78/0x90)
[<801fbe30>] (cma_release) from [<80113940>] (__arm_dma_free.constprop.2+0x124/0x138)
[<80113940>] (__arm_dma_free.constprop.2) from [<8065851c>] (vpu_free_dma_buffer+0x98/0xb8)
[<8065851c>] (vpu_free_dma_buffer) from [<80658f14>] (vpu_release+0x1a0/0x2e0)
[<80658f14>] (vpu_release) from [<80200da8>] (__fput+0x84/0x1cc)
[<80200da8>] (__fput) from [<80147394>] (task_work_run+0xb8/0xd8)
[<80147394>] (task_work_run) from [<8010acf4>] (do_work_pending+0x7c/0xa4)
[<8010acf4>] (do_work_pending) from [<80107694>] (slow_work_pending+0xc/0x20)
---[ end trace 994e9097ede03c6b ]---
[INFO]  Product Info: i.MX6Q/D/S
====== VPUDEC: 4.2.1 build on Aug 23 2020 03:29:14. ======
        wrapper: 1.0.68 (VPUWRAPPER_ARM_LINUX Build on Aug 23 2020 02:57:39)
        vpulib: 5.4.37
        firmware: 3.1.1.46075
[INFO]  bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0
------------------------
    Track 01 [audio_0] Enabled
        Duration: 0:00:30.021000000
        Language: und
    Mime:
        audio/mpeg, mpegversion=(int)4, channels=(int)6, rate=(int)48000, bitrate=(int)192434, stream-format=(string)raw, codec_data=(buffer)11b0
------------------------

====== BEEP: 4.2.1 build on Aug 23 2020 03:28:59. ======
        Core: AAC decoder Wrapper  build on May 30 2016 12:33:44
 file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm12_elinux.so.3
CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_CORTEX-A8  build on Mar 15 2017 17:11:31.

 

I find the patch

Labels (3)
0 Kudos
3 Replies

1,360 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello yqa,

The patch works, I tried to reproduced without success, works on my side, but try to update your yocto to 4.19.35 bsp

regards

 

0 Kudos

1,368 Views
yqa
Contributor I

I have  see

https://community.nxp.com/t5/i-MX-Processors/Exception-throw-after-running-qmlvideo/m-p/1053796

https://codereview.qt-project.org/c/qt/qtmultimedia/+/273602

 

on my qt5.8 patch am https://codereview.qt-project.org/c/qt/qtmultimedia/+/273602  cross qt5.8 up all ; test the problem sttl exist.

 

on the linux : I have patch

 

-- a/drivers/mxc/vpu/mxc_vpu.c
+++ b/drivers/mxc/vpu/mxc_vpu.c
@@ -155,6 +155,26 @@ static atomic_t clk_cnt_from_ioc = ATOMIC_INIT(0);
 #define        READ_REG(x)             readl_relaxed(vpu_base + x)
 #define        WRITE_REG(val, x)       writel_relaxed(val, vpu_base + x)
 
+/* Store a pool of continuous memory areas for DMA */
+/* Use MAX_CHUNKSIZES different bins, with MAX_CHUNKS each */
+#define DMA_MEM_MAX_CHUNKSIZES 128
+#define DMA_MEM_MAX_CHUNKS 8
+/* Pool graqnularity: must be power of 2, 128k or 256k are recommended */
+#define DMA_MEM_CHUNKSIZE (1 << 18)
+static u32 vpu_dma_mem_free_list[DMA_MEM_MAX_CHUNKSIZES][DMA_MEM_MAX_CHUNKS] = {{ 0 }};
+static u32 vpu_dma_mem_phys_free_list[DMA_MEM_MAX_CHUNKSIZES][DMA_MEM_MAX_CHUNKS] = {{ 0 }};
+static u32 vpu_dma_mem_nof_free[DMA_MEM_MAX_CHUNKSIZES] = { 0 };
+static u32 vpu_dma_mem_total_allocs = 0;
+static u32 vpu_dma_mem_in_use = 0;
+static u32 vpu_dma_mem_pooled = 0;
+static u32 vpu_dma_mem_peak_usage = 0;
+static spinlock_t vpu_dma_mem_lock;
+
+/* Helper function for the pooled dma allocator */
+static u32 chunkify(u32 size) {
+        return (size | (DMA_MEM_CHUNKSIZE - 1)) + 1;
+}
+
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
 /* redirect to static functions */
 static int cpu_is_mx6dl(void)
@@ -260,11 +280,36 @@ static int cpu_is_mx51(void)
  */
 static int vpu_alloc_dma_buffer(struct vpu_mem_desc *mem)
 {
-       mem->cpu_addr = (unsigned long)
+       /*mem->cpu_addr = (unsigned long)
            dma_alloc_coherent(NULL, PAGE_ALIGN(mem->size),
                               (dma_addr_t *) (&mem->phy_addr),
                               GFP_DMA | GFP_KERNEL);
-       dev_dbg(vpu_dev, "[ALLOC] mem alloc cpu_addr = 0x%x\n", mem->cpu_addr);
+       dev_dbg(vpu_dev, "[ALLOC] mem alloc cpu_addr = 0x%x\n", mem->cpu_addr);*/
+       u32 chunked_size = chunkify(mem->size);
+       u32 size_in_chunks = chunked_size / DMA_MEM_CHUNKSIZE;
+
+       vpu_dma_mem_total_allocs++;
+
+       spin_lock(&vpu_dma_mem_lock);
+       if (size_in_chunks < DMA_MEM_MAX_CHUNKSIZES && vpu_dma_mem_nof_free[size_in_chunks] > 0) {
+               vpu_dma_mem_nof_free[size_in_chunks]--;
+               mem->cpu_addr = vpu_dma_mem_free_list[size_in_chunks][vpu_dma_mem_nof_free[size_in_chunks]];
+               mem->phy_addr = vpu_dma_mem_phys_free_list[size_in_chunks][vpu_dma_mem_nof_free[size_in_chunks]];
+               vpu_dma_mem_pooled -= size_in_chunks * DMA_MEM_CHUNKSIZE;
+               vpu_dma_mem_in_use += size_in_chunks * DMA_MEM_CHUNKSIZE;
+               spin_unlock(&vpu_dma_mem_lock);
+       } else {
+               spin_unlock(&vpu_dma_mem_lock);
+               mem->cpu_addr = (unsigned long)
+                       dma_alloc_coherent(NULL, PAGE_ALIGN(size_in_chunks * DMA_MEM_CHUNKSIZE),
+                               (dma_addr_t *) (&mem->phy_addr),
+                               GFP_DMA | GFP_KERNEL);
+               if ((void *)mem->cpu_addr != NULL)
+                       vpu_dma_mem_in_use += size_in_chunks * DMA_MEM_CHUNKSIZE;
+       }
+       
+       if (vpu_dma_mem_in_use > vpu_dma_mem_peak_usage) vpu_dma_mem_peak_usage = vpu_dma_mem_in_use;
+
        if ((void *)(mem->cpu_addr) == NULL) {
                dev_err(vpu_dev, "Physical memory allocation error!\n");
                return -1;
@@ -277,8 +322,24 @@ static int vpu_alloc_dma_buffer(struct vpu_mem_desc *mem)
  */
 static void vpu_free_dma_buffer(struct vpu_mem_desc *mem)
 {
-       if (mem->cpu_addr != 0) {
-               dma_free_coherent(0, PAGE_ALIGN(mem->size),
+       //if (mem->cpu_addr != 0) {
+       //      dma_free_coherent(0, PAGE_ALIGN(mem->size),
+       u32 chunked_size = chunkify(mem->size);
+       u32 size_in_chunks = chunked_size / DMA_MEM_CHUNKSIZE;
+
+       spin_lock(&vpu_dma_mem_lock);
+
+       if (size_in_chunks < DMA_MEM_MAX_CHUNKSIZES && vpu_dma_mem_nof_free[size_in_chunks] < DMA_MEM_MAX_CHUNKS) {
+               vpu_dma_mem_in_use -= PAGE_ALIGN(chunked_size);
+               vpu_dma_mem_free_list[size_in_chunks][vpu_dma_mem_nof_free[size_in_chunks]] = mem->cpu_addr;
+               vpu_dma_mem_phys_free_list[size_in_chunks][vpu_dma_mem_nof_free[size_in_chunks]] = mem->phy_addr;
+               vpu_dma_mem_nof_free[size_in_chunks]++;
+               vpu_dma_mem_pooled += size_in_chunks * DMA_MEM_CHUNKSIZE;
+               spin_unlock(&vpu_dma_mem_lock);
+       } else {               
+               spin_unlock(&vpu_dma_mem_lock);
+               vpu_dma_mem_in_use -= PAGE_ALIGN(chunked_size);
+               dma_free_coherent(0, PAGE_ALIGN(chunked_size),
                                  (void *)mem->cpu_addr, mem->phy_addr);
        }
 }

above all test ;the problem still is exist .

 

 

0 Kudos

1,347 Views
yqa
Contributor I

I have see the follow patchs

https://community.nxp.com/thread/530284

https://codereview.qt-project.org/c/qt/qtmultimedia/+/273602

I have patch am 273602 on qt5.8 qtmultimedia ;but the patch is invalid ,

on yocto fsl-yocto-L4.9.11_1.0.0  use imx-gst1.0-plugin  can use gpu vpu and so on;

patch 273602 is gstreamer_imxcommon  ;   gstreamer1.0-plugins-imx  have imxcommon libs , but enable  gstreamer1.0-plugins-imx on yocto fsl-yocto-L4.9.11_1.0.0 will diable   imx-gst1.0-plugin can not use imx6q vpu gpu ;

proble will be still exist.

 

 

my debug log:

修改后rm config.cache 重新配置编译
git 3809958  
 
sources/meta-fsl-bsp-release/imx/meta-sdk/recipes-fsl/images/fsl-image-qt5-validation-imx.bb
@@ -44,4 +44,6 @@ ${QT5_IMAGE_INSTALL} \
tslib-calibrate \
tslib-tests \
tslib-conf \
+gstreamer1.0-plugins-imx \
+imx-gst1.0-plugin \
 
 
编译后qmlvideo无法使用硬件加速
2、只修改qt源码qtmultimedia后 硬件加速正常,
 
qmlvideo播放还是会出现问题待继续测试 。,不会qt卡死
 
3、修改qt源码qtmultimedia 
sources/meta-fsl-bsp-release/imx/meta-sdk/recipes-fsl/images/fsl-image-qt5-validation-imx.bb
@@ -44,4 +44,6 @@ ${QT5_IMAGE_INSTALL} \
tslib-calibrate \
tslib-tests \
tslib-conf \
+gstreamer1.0-plugins-imx \
 
 播放失败
gst-play-1.0 /home/root/video_1080p_60fps.mp4  cannot play
qmlvideo can use vpu
 imx-gst1.0-plugin 为正确的 默认已经添加

 

0 Kudos