本帖最后由 kispr 于 2022-7-19 17:07 编辑
关于mpp解码4路崩溃的问题 *平台: RK3399Pro
*环境: 系统内核:Linux debian10.toybrick 4.4.194-bRK3399Pro-Linux4-EMB-3532-V3.0-SHYM-g90d6dee mpp版本: toybrick@debian10:~$ dpkg -l | grep mpp ii rockchip-mpp 1.4.0-5 arm64 Rockchip mpp Libraries ii rockchip-mpp-dev 1.4.0-5 arm64 Development package for Rockchip mpp Libraries toybrick@debian10:~$
解码分辨率:4路1920*1080视频流
复现步骤和问题: 1. gdb启动程序,解码4路rtsp流并显示。 2. 一段时间(约2小时)后程序崩溃,程序堆栈显示mpp错误。
堆栈日志: mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame mpp[30014]: mpp_log: MppDecoderDequeueFrame Get errror frame or discard frame [Detaching after fork from child process 31296] [Detaching after fork from child process 31297] [Detaching after fork from child process 31298] [Detaching after fork from child process 31299] [Detaching after fork from child process 31303] [Detaching after fork from child process 31304] [Detaching after fork from child process 31305] [Detaching after fork from child process 31306] [Detaching after fork from child process 31307] [Detaching after fork from child process 31308] [Detaching after fork from child process 31309] [Detaching after fork from child process 31310] [Detaching after fork from child process 31312] [Detaching after fork from child process 31313] [Detaching after fork from child process 31314] [Detaching after fork from child process 31315] [Detaching after fork from child process 31316] [Detaching after fork from child process 31317] [Detaching after fork from child process 31318] [Detaching after fork from child process 31319] [Detaching after fork from child process 31322] [Detaching after fork from child process 31323] [Detaching after fork from child process 31324] [Detaching after fork from child process 31325] [Detaching after fork from child process 31326] [Detaching after fork from child process 31327] [Detaching after fork from child process 31328] [Detaching after fork from child process 31329]
[Switching to Thread 0x7eacfe8f70 (LWP 30165)] 0x0000007fb5ed4070 in parse_prepare () from lib/librockchip_mpp.so.1 (gdb) (gdb) bt #0 0x0000007fb5ed4070 in parse_prepare () from lib/librockchip_mpp.so.1 #1 0x0000007fb5ed286c in h264d_prepare () from lib/librockchip_mpp.so.1 #2 0x0000007fb5ea2ae4 in mpp_dec_parser_thread(void*) () from lib/librockchip_mpp.so.1 #3 0x0000007fb3d287e4 in start_thread (arg=0x7fa1959a1f) at pthread_create.c:486 #4 0x0000007fb3a12adc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
(gdb) 程序mpp调用代码片段如下: m_pMppDecoder->ops->enqueue(lpModule->m_pMppDecoder, (uchar*)lpBuffer, dwBufferSize);
|