qt 播放器循环播放视频随机崩溃
本帖最后由 tmccmt 于 2023-3-2 16:24 编辑SDK版本:
/home/a/workspace/firefly_rk3568_v1.3.0b/rk356x_linux_release_v1.3.0b_20221213/.repo/manifests/rk356x/rk356x_linux_release_20230129_v1.3.2a.xml
复现问题的代码:
链接:https://pan.baidu.com/s/1xZvtzQPJgGSoyl00t3gEMw
提取码:1234
实现的功能非常简单,基于Qt5.15.2和gstreamer的一个播放器,循环播放指定目录的视频,我限定了只播放mp4格式,运行方式:
qtdemovideo_files_dir
界面上目前不会显示视频画面,我删除了这部分代码,相当于在不断的解码视频,会随机出现在切换视频的那一刻崩溃的现象
从dump出来的core文件来看,调用栈为:
(gdb) bt
#00x0000007f93e0684c in gst_memory_unmap (mem=0x7f7006f410, info=0x7f89446f30) at gstmemory.c:347
#10x0000007f93dd8098 in gst_buffer_unmap (buffer=<optimized out>, info=0x7f89446f30) at gstbuffer.c:1796
#20x0000007f93fb0890 in default_unmap (meta=<optimized out>, plane=<optimized out>, info=<optimized out>) at gstvideometa.c:248
#30x0000007f93fab204 in gst_video_frame_unmap (frame=0x7f89446e58) at video-frame.c:264
#40x0000007f93fae5a4 in gst_video_filter_transform (trans=<optimized out>, inbuf=<optimized out>, outbuf=0x7f780a58c0) at gstvideofilter.c:274
#50x0000007f93f41cc0 in default_generate_output (trans=0x7f840358e0, outbuf=0x7f894471a8) at gstbasetransform.c:2132
#60x0000007f93f4151c in gst_base_transform_chain (pad=<optimized out>, parent=0x7f840358e0, buffer=<optimized out>) at gstbasetransform.c:2285
#70x0000007f93e0a4d4 in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f8402b220, type=type@entry=4112, data=data@entry=0x7f70041830) at gstpad.c:4322
#80x0000007f93e0bea8 in gst_pad_push_data (pad=pad@entry=0x2b439100, type=type@entry=4112, data=data@entry=0x7f70041830) at gstpad.c:4578
#90x0000007f93e126d4 in gst_pad_push (pad=pad@entry=0x2b439100, buffer=buffer@entry=0x7f70041830) at gstpad.c:4697
#10 0x0000007f93dfb128 in gst_proxy_pad_chain_default (pad=0x7f6c009ca0, parent=<optimized out>, buffer=0x7f70041830) at gstghostpad.c:127
#11 0x0000007f93e0a4d4 in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f6c009ca0, type=type@entry=4112, data=data@entry=0x7f70041830) at gstpad.c:4322
#12 0x0000007f93e0bea8 in gst_pad_push_data (pad=pad@entry=0x2b43f8c0, type=type@entry=4112, data=data@entry=0x7f70041830) at gstpad.c:4578
#13 0x0000007f93e126d4 in gst_pad_push (pad=0x2b43f8c0, buffer=buffer@entry=0x7f70041830) at gstpad.c:4697
#14 0x0000007f93b1ba34 in gst_queue_push_one (queue=0x7f84030190) at gstqueue.c:1384
#15 gst_queue_loop (pad=<optimized out>) at gstqueue.c:1537
#16 0x0000007f93e39b70 in gst_task_func (task=0x7f6c0163b0) at gsttask.c:332
#17 0x0000007f98c443d0 in g_thread_pool_thread_proxy () from staging/usr/lib/libglib-2.0.so.0
#18 0x0000007f98c43ba4 in g_thread_proxy () from staging/usr/lib/libglib-2.0.so.0
#19 0x0000007f9baad6d0 in start_thread () from staging/lib/libpthread.so.0
#20 0x0000007f9bbf86cc in thread_start () from staging/lib/libc.so.6
问题出现具有随机性,可能几个小时都出不来,也可能几分钟就出来了,因为问题出现在切换的那一刻,所以弄几个只有几秒的视频可以加快复现速度
页:
[1]