在Raspberry Pi 3上运行的PJSUA在停止视频流时遇到分段故障



我一直在用操作系统Raspbian Stretch Lite在Raspberry Pi 3 Model B上构建PJSIP 2.7.1。需要视频,因此V4L2、SDL2和OpenH264都已构建并安装。当我在RPi上运行PJSUA时,打另一部启用视频的软电话,一切都很顺利,音频和视频都能工作。不过,每次挂断时都会出现Segmentation故障。

RPi是在没有UI的情况下使用的,我在所有的构建/运行中都使用它。相机是树莓派相机模块v2。

以下是一段来自"gdb"回溯的信息片段,当停止视频呼叫并出现segfault时。我还尝试了样本"vid_streamtil",在退出时它也给出了segfault。Raspian Jessie Lite上的相同设置没有任何区别。

有人知道可能是什么问题吗?这可能是SDL的问题吗,因为在停止SDL视频流时发生了segfault?经过几天的努力,任何评论都将不胜感激。

21:53:22.897 pjsua_app.c。。。。。。呼叫0已断开[原因=200(正常呼叫清除)]

21:53:22.998 pjsua_app_comm。。。。。。

[DDISCONCTD]收件人:sip:100@10.0.1.16;tag=nSgBRrGkco4MC2Y00HkhCS0M1xWbDNpH

Call time: 00h:00m:08s, 1st res in 1349 ms, conn in 2083ms
#0 audio PCMU @8kHz, sendrecv, peer=10.0.1.16:16438
SRTP status: Not active Crypto-suite: 
RX pt=0, last update:00h:00m:04.400s ago
total 201pkt 32.1KB (40.2KB +IP hdr) @avg=27.6Kbps/34.5Kbps
pkt loss=0 (0.0%), discrd=0 (0.0%), dup=0 (0.0%), reord=0 (0.0%)
(msec)    min     avg     max     last    dev
loss period:   0.000   0.000   0.000   0.000   0.000
jitter     :   0.500  14.151  20.000  14.750   4.127
TX pt=0, ptime=20, last update:00h:00m:04.301s ago
total 33pkt 5.2KB (6.6KB +IP hdr) @avg=4.5Kbps/5.6Kbps
pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
(msec)    min     avg     max     last    dev 
loss period:   0.000   0.000   0.000   0.000   0.000
jitter     :   8.875   8.875   8.875   8.875   0.000
RTT msec      :   3.143   3.143   3.143   3.143   0.000
#1 video H264, sendrecv, peer=10.0.1.16:11078
SRTP status: Not active Crypto-suite: 
RX pt=97, size=352x288, fps=15.00, last update:00h:00m:03.933s ago
total 151pkt 126.7KB (132.7KB +IP hdr) @avg=109.2Kbps/114.4Kbps
pkt loss=0 (0.0%), discrd=0 (0.0%), dup=0 (0.0%), reord=0 (0.0%)
(msec)    min     avg     max     last    dev
loss period:   0.000   0.000   0.000   0.000   0.000
jitter     :   0.800  18.716  25.311  21.577   4.489
TX pt=97, size=720x480, fps=15.00, last update:00h:00m:04.235s ago
total 323pkt 279.3KB (292.2KB +IP hdr) @avg=240.7Kbps/251.8Kbps
pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
(msec)    min     avg     max     last    dev 
loss period:   0.000   0.000   0.000   0.000   0.000
jitter     :   0.000   0.000   0.000   0.000   0.000
RTT msec      :   0.000   0.000   0.000   0.000   0.000

21:53:22.998 pjsua_media.c。。。。。。调用0:正在取消初始化媒体。。

21:53:22.998 pjsua_media.c。。。。。。。。媒体流call00:0是销毁

21:53:22.998 pjsua_vid.c。。。。。。。。正在停止视频流。。

21:53:22.903 v4l2_dev.c。。。。。。。。。正在停止v4l2视频流mmal服务16.1

[线程0x6f2a2450(LWP 2187)退出]

21:53:24.006 pjsua_vid.c。。。。。。。。。窗口1:正在销毁。。

21:53:24.006 v4l2_dev.c。。。。。。。。。。正在停止v4l2视频流mmal服务16.1

21:53:24.006视频端口。。。。。。。。。。关闭mmal服务16.1..

21:53:24.006 v4l2_dev.c。。。。。。。。。。正在停止v4l2视频流mmal服务16.1

21:53:24.006 v4l2_dev.c。。。。。。。。。。破坏v4l2视频流mmal服务16.1

21:53:24.007 sdl_dev.c。。。。。。。。。。正在停止sdl视频流

21:53:24.007视频端口。。。。。。。。。。正在关闭SDL渲染器。。

21:53:24.007 sdl_dev.c。。。。。。。。。。正在停止sdl视频流

21:53:24.068 sdl_dev.c!。。。。。。。。。正在停止sdl视频流

21:53:24.068 pjsua_vid.c。。。。。。。。。窗口0:正在销毁。。

21:53:24.068 sdl_dev.c。。。。。。。。。。正在停止sdl视频流

21:53:24.069视频端口。。。。。。。。。。正在关闭SDL渲染器。。

21:53:24.069 sdl_dev.c。。。。。。。。。。正在停止sdl视频流

[线程0x6fecf450(LWP 2186)退出]

线程4"pjsua-armv7l-un"接收信号SIGSEGV,分段过错

[切换到线程0x757c9450(LWP 2164)]

0x7004bb28英寸??()

(gdb)bt

#0 0x7004bb28英寸??()

#GLES2_DestroyTexture中的1 0x76f2c4e0(渲染器=,纹理=0x74e04098)

在/home/pi/sdl2/sdl2-2.0.7/src/render/opengles2/SDL_render_gles2.c:931

#在/home/pi/sdl2/sdl2-2.0.7/src/render/SDL_render.c:2064 的SDL_DestoryTexture_REAL中的2 0x76f23f3c(纹理=0x74e04098)

#sdl_destroy()中的3 0x000b3778

#sdl_destroy_all()中的4 0x000b37ac

#job_thread()中的5 0x000b3a30

#thread_main()中的6 0x0011fa84

#pthread_create.c:335 的start_thread(arg=0x757c9450)中的7 0x76bd7fc4

#8 0x76a49c68英寸??()在/sysdeps/unix/sysv/linux/arm/clone.S:76来自/lib/arm-linux-gneabihf/libc.so.6

回溯已停止:上一帧与此帧相同(已损坏堆栈?)

(gdb)

终于找到了解决方案!只需将SDL_VIDEODRIVER和SDL_RENDER_DRIVER设置为匹配的设备!

例如,我将SDL_VIDEODRIVER设置为虚拟SDL_RENDER_DRIVER=软件

欢迎光临!

相关内容

  • 没有找到相关文章

最新更新