stack overflow assertion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Witam!

If I update the sound devices list by that function:

void Pjsua::UpdateSndDevList() {
    int capture, playback;
    pjsua_get_snd_dev(&capture, &playback);
    pjsua_set_null_snd_dev();
    pjmedia_snd_deinit();
    pjmedia_snd_init( pjsua_get_pool_factory() );
    pjsua_set_snd_dev(capture, playback);
}

and conference is active I'll receive "STACK OVERFLOW!!" assertion:

Program: E:\MyApp\bin\debug\MyApp.exe
File: e:\dev\pjproject-0.9.0\pjlib\src\pj\os_core_win32.c
Line: 600

Expression: "STACK OVERFLOW!! " && (usage <= thread->stk_size - 128)

I don't know why.
If I change device without updating devs list (re-init pjmedia)
when conference is active all works.

Call stack:
    MyApp.exe!_wassert(const wchar_t * expr=0x00cb3148, const wchar_t * filename=0x00cb2d38, unsigned int lineno=600)  Line 384 C
    MyApp.exe!pj_thread_check_stack(const char * file=0x00cb2cac, int line=940)  Line 600 + 0x32 bytes  C
    MyApp.exe!pj_mutex_unlock(pj_mutex_t * mutex=0x018e0118)  Line 940 + 0x13 bytes C
    MyApp.exe!pj_lock_release(pj_lock_t * lock=0x018e0104)  Line 189 + 0x10 bytes   C
>   MyApp.exe!speex_aec_capture(void * state=0x018e00d4, short * rec_frm=0x00174018, unsigned int options=0)  Line 519 + 0xc bytes  C
    MyApp.exe!pjmedia_echo_capture(pjmedia_echo_state * echo=0x018e00cc, short * rec_frm=0x00174018, unsigned int options=0)  Line 161 + 0x1b bytes C
    MyApp.exe!rec_cb(void * user_data=0x018e008c, unsigned int timestamp=8640, void * input=0x00174018, unsigned int size=640)  Line 219 + 0x12 bytes   C
    MyApp.exe!PaRecorderCallback(const void * input=0x00174018, void * output=0x00000000, unsigned long frameCount=320, const PaStreamCallbackTimeInfo * timeInfo=0x022cfd2c, unsigned long statusFlags=0, void * userData=0x018e52cc)  Line 168 + 0x2a bytes   C
    MyApp.exe!AdaptingInputOnlyProcess(PaUtilBufferProcessor * bp=0x00184d00, int * streamCallbackResult=0x022cfdc8, PaUtilChannelDescriptor * hostInputChannels=0x00182ff8, unsigned long framesToProcess=480)  Line 998 + 0x33 bytes  C
    MyApp.exe!PaUtil_EndBufferProcessing(PaUtilBufferProcessor * bp=0x00184d00, int * streamCallbackResult=0x022cfdc8)  Line 1567 + 0x18 bytes  C
    MyApp.exe!Pa_TimeSlice(PaWinDsStream * stream=0x00184cb0)  Line 2106 + 0x10 bytes   C
    MyApp.exe!Pa_TimerCallback(unsigned int uID=65, unsigned int uMsg=0, unsigned long dwUser=1592496, unsigned long dw1=0, unsigned long dw2=0)  Line 2209 + 0x9 bytes C
    winmm.dll!76b254f3()
    [Frames below may be incorrect and/or missing, no symbols loaded for winmm.dll]
    winmm.dll!76b3ae36()
    winmm.dll!76b3af21()
    winmm.dll!76b3af3a()
    kernel32.dll!7c80b683()

I using pjsip 0.9.0 build to uses only iLBC codec, so what is doing
speex_aec_capture function on call stack?

-- 
Pozdrowienia,
 Marcin 'Malcom' Malich
 me at malcom.pl
 http://malcom.pl




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux