Воспроизведение видео на ручном режиме отключено - PullRequest
0 голосов
/ 16 мая 2018

В настоящее время я использую плату процессора ARM Freescale для воспроизведения видео:

Когда я использую библиотеки Qt Multimedia поверх приложения, я получаю Preemption до того, как воспроизведение видео останавливается:

root@sanuser:~#  /home/app.sh start
====== AIUR: 4.1.4 build on Mar  2 2018 10:49:12. ======
        Core: MPEG4PARSER_06.09.36  build on Aug 23 2016 05:18:47
 file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm11_elinux.so.3.2
------------------------
    Track 00 [video_0] Enabled
        Duration: 0:02:07.280000000
        Language: und
    Mime:
        video/x-h264, parsed=(boolean)true, alignment=(string)au, stream-format=(string)avc, width=(int)640, height=(int)480, framerate=(fraction)25/1, codec_data=(buffer)014d401effe10018674d401eda0280f6c044000003000400000300c83c58ba8001000468ef3c80
------------------------
------------------------
    Track 01 [audio_0] Enabled
        Duration: 0:02:07.317000000
        Language: und
    Mime:
        audio/mpeg, mpegversion=(int)4, channels=(int)6, rate=(int)48000, bitrate=(int)384039, stream-format=(string)raw, codec_data=(buffer)11b0
------------------------
====== BEEP: 4.1.4 build on Mar  2 2018 10:49:24. ======
        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 Jul 13 2016 18:15:25.
[INFO]  bitstreamMode 1, chromaInterleave 0, mapType 0, tiled2LinearEnable 0
BUG: scheduling while atomic: vqueue:src/642/0x00000101
Preemption disabled at:[<80101544>] __do_softirq+0x5c/0x3b4

Однако воспроизведение видео без проблем происходит при использовании конвейера gstreamer:

gst-launch-1.0 -v filesrc location=/home/SampleVideo_720x480.mp4 typefind=true ! qtdemux !queue max-size-time=0 !vpudec ! videoconvert ! imxipuvideosink framebuffer=/dev/fb0

1 Ответ

0 голосов
/ 18 мая 2018

Мультимедийная система Qt вызывает ошибку ядра. Это также может быть ошибкой в ​​Qt, но ни одно приложение пользовательского пространства не должно вызывать панику ядра. И это то, что BUG: scheduling while atomic. Это ошибка драйвера где-то в коде ядра, возможно, драйвер видеокарты для платы. Возможно, у gstreamer есть обходной путь для этой ошибки ядра, или он делает что-то другое, и ошибка ядра не устраняется. Но это определенно ошибка в ядре, без сомнения об этом.

...