QT && Pjsip

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

 



Hi
If i understand you want change ui from other thread ?
You can't do this  Only  from main Qt thread you can do it.
If you want change widgets from other threads you have to create own Event 
like MyEvent and post it with method QApplication::postEvent from you thread 
and then handle this event in main Qt thread with method 
bool eventFilter ( QObject * watched, QEvent * event ) and do what you want.

look at Qt documentation for more info...


On Friday 19 February 2010 01:26:58 pm P.Muge Ersoy wrote:
> Hi Benny;
>
> I am trying to integrate Qt and pjsip .. I created QT thread to poll the
> pjsua handle events... When i catch the call back on_call_state
> PJSIP_INV_STATE_DISCONNECTED, i am changing the Qt gui .. But unfortunately
> after a while like 2 or 3 seconds.. pjsip gives error
> (*inv_state_handler[inv->state])(inv, e); Below is the call stack
>
>      2d646f6d()
>
> >    Qtpjsip.exe!mod_inv_on_tsx_state(pjsip_transaction * tsx=0x02b055d4,
>
> pjsip_event * e=0x0342fd54)  Line 562 + 0x17 bytes    C
>      Qtpjsip.exe!pjsip_dlg_on_tsx_state(pjsip_dialog * dlg=0x02cbb32c,
> pjsip_transaction * tsx=0x02b055d4, pjsip_event * e=0x0342fd54)  Line 1907
> + 0x1a bytes    C++
>      Qtpjsip.exe!mod_ua_on_tsx_state(pjsip_transaction * tsx=0x02b055d4,
> pjsip_event * e=0x0342fd54)  Line 179 + 0x11 bytes    C
>      Qtpjsip.exe!tsx_set_state(pjsip_transaction * tsx=0x02b055d4,
> pjsip_tsx_state_e state=PJSIP_TSX_STATE_TERMINATED, pjsip_event_id_e
> event_src_type=PJSIP_EVENT_TIMER, void * event_src=0x02b056d8)  Line 1109 +
> 0x13 bytes    C
>      Qtpjsip.exe!tsx_on_state_completed_uac(pjsip_transaction *
> tsx=0x02b055d4, pjsip_event * event=0x0342fdac)  Line 2936 + 0x14 bytes   
> C Qtpjsip.exe!tsx_timer_callback(pj_timer_heap_t * theap=0x02aafe20,
> pj_timer_entry * entry=0x02b056d8)  Line 1056 + 0x10 bytes    C
>      Qtpjsip.exe!pj_timer_heap_poll(pj_timer_heap_t * ht=0x02aafe20,
> pj_time_val * next_delay=0x0342fe0c)  Line 518 + 0x10 bytes    C
>      Qtpjsip.exe!pjsip_endpt_handle_events2(pjsip_endpoint *
> endpt=0x02aafc7c, const pj_time_val * max_timeout=0x0342fe38, unsigned int
> * p_count=0x0342fe40)  Line 690 + 0x10 bytes    C++
>      Qtpjsip.exe!pjsua_handle_events(unsigned int msec_timeout=10)  Line
> 1417 + 0x14 bytes    C
>      Qtpjsip.exe!PjsipPollThread::run()  Line 29 + 0x7 bytes    C++
>      QtCored4.dll!QThreadPrivate::start(void * arg=0x01689c4c)  Line 235
> C++
>
>
> It always gives the address 2d646f6d ...
>
> Do you have any idea why this happens? ... Is it QT Pjsip integration
> issue.. ?
>
> Regards
> Muge




[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