Re: [Opalvoip-devel] SDL_DisplayYUVOverlay segv when processing anotherrecv video stream
Brought to you by:
csoutheren,
rjongbloed
From: Robert J. <ro...@vo...> - 2010-05-06 16:56:00
|
I do not believe you can have more than one SDL window at a time, though I am not 100% sure. Not sure how to help you, other than to say I have had multiple video stream under Windows using the "MSWIN" device rather than SDL. Robert Jongbloed OPAL/OpenH323/PTLib Architect and Co-founder. _____ From: Hong Tran Duc [mailto:hon...@gm...] Sent: Thursday, May 06, 2010 8:05 PM To: opa...@li... Subject: [Opalvoip-devel] SDL_DisplayYUVOverlay segv when processing anotherrecv video stream Hi all, I want to advertise & send out 02 video streams to answer through RTP. But the answer got a SIGSEGV on answer side Here is backtrack from gdb > In call with sip:xxx192.168.1.39 using sip:nm@192.168.1.59 <mailto:sip%3Anm@192.168.1.59> > Command ? Started receiving RFC4175_YCbCr-4:2:0 from sip > Started playing YUV420P > *** glibc detected *** /home/tdhong/simpleopal: double free or corruption (fasttop): 0x081c5d68 *** > ======= Backtrace: ========= > /lib/tls/i686/cmov/libc.so.6[0xfe4ff1] > /lib/tls/i686/cmov/libc.so.6[0xfe66f2] > /lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0xfe97cd] > /usr/lib/libX11.so.6[0x1874eef] > /usr/lib/libX11.so.6(_XReply+0x106)[0x1875526] > /usr/lib/libX11.so.6(XSync+0x67)[0x18691a7] > /usr/lib/libSDL-1.2.so.0[0x12caeb5] > /usr/lib/libSDL-1.2.so.0[0x12d01ef] > /usr/lib/libSDL-1.2.so.0(SDL_UpdateRects+0x1de)[0x12c20be] > /usr/lib/libSDL-1.2.so.0[0x12c5e34] > /usr/lib/libSDL-1.2.so.0(SDL_DisplayYUVOverlay+0x190)[0x12c3f60] > /lib/libpt_d.so.2.8.0(_ZN22PVideoOutputDevice_SDL13SDLThreadMainER7PThreadi+ 0x3f5)[0xcd9a05] > /lib/libpt_d.so.2.8.0(_ZNK22PVideoOutputDevice_SDL23SDLThreadMain_PNotifier4 CallER7PObjecti+0x2f)[0xcda4c7] > /lib/libopal_d.so.3.8.0(_ZNK17PNotifierTemplateIiEclER7PObjecti+0x84)[0x5b0b 50] > /lib/libpt_d.so.2.8.0(_ZN13PSimpleThread4MainEv+0x40)[0xde6b78] > /lib/libpt_d.so.2.8.0(_ZN7PThread14PX_ThreadStartEPv+0x18a)[0xd9fad2] > /lib/tls/i686/cmov/libpthread.so.0[0x10c480e] > /lib/tls/i686/cmov/libc.so.6(clone+0x5e)[0x10468de] > ======= Memory map: ======== My scenario is: I use simpleopal on Opal 3.8 Stable for testing. Caller (C) start with command >./obj_linux_x86_d/simpleopal -H -tttt -o call.log -X sip:xxx@192.168.1.39 <mailto:sip%3Axxx@192.168.1.39> --grabber "Fake/BouncingBoxes" --tx-video Answer (A) start with command >./obj_linux_x86_d/simpleopal -X -l -tx-video -tttt --grabber "Fake/BouncingBoxes" -o wait.log 1. After a call has been established, at Caller side I offer a new video stream using OpalConnection:OpenSourceMediaStreams function. > PSafePtr<OpalCall> call = NULL; > PSafePtr<SIPConnection> sipconn = NULL; > PSafePtr<OpalConnection> pcconn= NULL; > call = FindCallWithLock(currentCallToken); > sipconn = call->GetConnectionAs<SIPConnection>(0); > pcconn = sipconn->GetOtherPartyConnection(); > if (call == NULL) { > cout << "Current call disappeared!\n"; > return; > } > PTRACE(2," [nm] Add new media stream sipconn=" << *sipconn << " pcconn=" << *pcconn); > call ->OpenSourceMediaStreams(*pcconn, > OpalMediaType::Video(), > 0, // Allocate session automatically > OpalMediaFormat("RFC4175_YCbCr-4:2:0"), > OpalVideoFormat::eNoRole); 2. After a negotiations done (SIP re-INVITE, SDP 200OK, ACK), Answer side started a new media session with its patch thread. I check with wireshark to confirmed the new video stream has been sent out from Caller. But Answer suddenly crashed when processing SDLThreadMain. So, my question are: 1. Can I initialize multiple PVideoOuput(SDL)? 2. Would you guys point me any clue to fix it? Thanks, -- nm. |