iMX8M Plus: Linux kernel hangs when video playback is stopped
Hi all,
I have the 8MPLUSLPD4-EVK Evaluation Kit and I am trying video
playback of mp4 files. I can play videos using gstreamer, but hangs up
on Ctrl-c.
i.MX Yocto Project(LF5.10.9_1.0.0) is running on EVK.
I have attached log, but the log may not be output.
The video is as follows:
https://github.com/bower-media-samples/big-buck-bunny-1080p-60fps-30s/raw/master/video.mp4
The excute command is as follows:
gst-launch-1.0 filesrc location=. /video.mp4 ! decodebin ! queue ! waylandsink
Note that this does not occur with the i.MX Yocto Project(L5.4.47_2.2.0).
Regards,
mizo
I couldn't reproduce this issue on my imx8mp lpddr4 board, see the log file:
root@imx8mpevk:/mnt# gplay-1.0 video.mp4
FSL_GPLAY2_01.00_LINUX build on Jan 29 2021 08:22:32
====== AIUR: 4.6.0 build on Jan 29 2021 08:22:32. ======
Core: MPEG4PARSER_06.17.17 build on Nov 12 2020 05:13:57
file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm_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
------------------------
====== VPUDEC: 4.6.0 build on Jan 29 2021 08:22:32. ======
wrapper: 3.0.0 (VPUWRAPPER_ARM64_LINUX Build on Feb 18 2021 02:40:50)
vpulib: 1.1.1
firmware: 1.1.1.65535
------------------------
Track 01 [audio_0] Enabled
Duration: 0:00:30.021333000
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.6.0 build on Jan 29 2021 08:22:32. ======
Core: AAC decoder Wrapper build on Jul 28 2020 10:45:34
file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm_elinux.so.3
CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_ARMV8 build on Sep 20 2017 15:02:50.
===!!! Current pulsesink device is alsa_output.platform-sound-xcvr.iec958-stereo !!!===
[Stop (No Repeated)][Vol=1.0][00:00:00/00:00:00]=========== fsl_player_play() ==================
FSL_GPLAY2_01.00_LINUX build on Jan 29 2021 08:22:32
[h]display the operation Help
[p]Play
[s]Stop
[e]Seek
[a]Pause when playing, play when paused
[v]Volume
[m]Switch to mute or not
[>]Play next file
[<]Play previous file
[r]Switch to repeated mode or not
[u]Select the video track
[d]Select the audio track
[b]Select the subtitle track
[n]Select adaptive playback track
[f]Set full screen
[z]resize the width and height
[t]Rotate
[c]Setting play rate
[i]Display the metadata
[x]eXit
State changed: buffering
State changed: playing
[Playing (No Repeated)][Vol=1.0][00:00:00/00:00:30]
[Playing (No Repeated)][Vol=1.0][00:00:01/00:00:30]
[Playing (No Repeated)][Vol=1.0][00:00:02/00:00:30]
[Playing (No Repeated)][Vol=1.0][00:00:03/00:00:30]^C Aborted by signal[2] Interrupt...
FSL_PLAYER_UI_MSG_EXIT
Exit display thread
Total showed frames (301), playing for (0:00:04.988053000), fps (60.344).
fsl_player_deinit
root@imx8mpevk:/mnt#
Hi, @joanxie
Thank you for the reply.
I reconfirmed that it does not always fail.
The results is as follows:
- Repeated play and stop(Ctrl-c) several times will fail
- Playing the video to the end(about 30 seconds) always fails
The excute command is as follows:
gplay-1.0 video.mp4
Regards,
mizo
1) how many times did you test? I couldn't reproduce this on my board
2) I have finished playing this video without error
root@imx8mpevk:/mnt# gplay-1.0 video.mp4
FSL_GPLAY2_01.00_LINUX build on Jan 29 2021 08:22:32
====== AIUR: 4.6.0 build on Jan 29 2021 08:22:32. ======
Core: MPEG4PARSER_06.17.17 build on Nov 12 2020 05:13:57
file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm_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
------------------------
====== VPUDEC: 4.6.0 build on Jan 29 2021 08:22:32. ======
wrapper: 3.0.0 (VPUWRAPPER_ARM64_LINUX Build on Feb 18 2021 02:40:50)
vpulib: 1.1.1
firmware: 1.1.1.65535
------------------------
Track 01 [audio_0] Enabled
Duration: 0:00:30.021333000
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.6.0 build on Jan 29 2021 08:22:32. ======
Core: AAC decoder Wrapper build on Jul 28 2020 10:45:34
file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm_elinux.so.3
CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.09.00_ARMV8 build on Sep 20 2017 15:02:50.
===!!! Current pulsesink device is alsa_output.platform-sound-xcvr.iec958-stereo !!!===
[Stop (No Repeated)][Vol=1.0][00:00:00/00:00:00]=========== fsl_player_play() ==================
FSL_GPLAY2_01.00_LINUX build on Jan 29 2021 08:22:32
[h]display the operation Help
[p]Play
[s]Stop
[e]Seek
[a]Pause when playing, play when paused
[v]Volume
[m]Switch to mute or not
[>]Play next file
[<]Play previous file
[r]Switch to repeated mode or not
[u]Select the video track
[d]Select the audio track
[b]Select the subtitle track
[n]Select adaptive playback track
[f]Set full screen
[z]resize the width and height
[t]Rotate
[c]Setting play rate
[i]Display the metadata
[x]eXit
State changed: buffering
State changed: playing
[Playing (No Repeated)][Vol=1.0][00:00:29/00:00:30]EOS Found
getNextItem No next item!
No more media file, exit gplay!
State changed: stopped
FSL_PLAYER_UI_MSG_EXIT
Total showed frames (1798), playing for (0:00:30.039342000), fps (59.855).
Exit display thread
fsl_player_deinit
root@imx8mpevk:/mnt#
Hi, @joanxie
> 1) how many times did you test? I couldn't reproduce this on my board
When played to the end, it is as follows:
try: 10
fail: 10
success: 0
When stoped with Ctrl-c, it is as follows:
try: 50
fail: 45
success: 5
I tried not to use the waylandsink, but this also fails.
root@imx8mpevk:~# gst-launch-1.0 filesrc location=./video.mp4 ! decodebin ! queue ! filesink location=/dev/null
I want to make sure it's the same software.
root@imx8mpevk:~# cat /etc/issue
NXP i.MX Release Distro 5.10-gatesgarth \n \l
root@imx8mpevk:~# uname -a
Linux imx8mpevk 5.10.9-1.0.0+g32513c25d8c7 #1 SMP PREEMPT Tue Mar 9 02:17:18 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
The Build configurations are as follows:
DISTRO=fsl-imx-xwayland
MACHINE=imx8mpevk
Regards,
mizo
everything is OK on my board, did you use nxp lpddr4 evk board? or the third party company board?
> everything is OK on my board
Thank you for checking.
> did you use nxp lpddr4 evk board? or the third party company board?
I use nxp lpddr4 evk board.
The following stickers are affixed to the board:
SCH-46370 REV A1
TDA7608
700-46370 REV X1
I tried using the following pre-built image file, but an error occurred.
https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-...
> L5.10.9_1.0.0_MX8MP
> i.MX 8M Plus EVK Linux Binary Demo Files
> ZIP Rev LF_L5.10.9_1.0.0 Mar 29, 2021 4060659 KB L5.10.9_1.0.0_MX8MP
Regards,
mizo
my board is SCH-46370 REV A3, do you mind testing other bsp version?
> do you mind testing other bsp version?
An error occurs versions are:
- LF5.10.9_1.0.0
- L5.10.35_2.0.0
- L5.4.70_2.3.2
No error occurs versions are:
- L5.4.47_2.2.0
I tested each 5 times.
What is the difference revision?
- SCH-46370 REV A1
- SCH-46370 REV A3
Regards,
mizo
sorry I don't know the difference, we have released new bsp, maybe you can test again