QT && Pjsip

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

 



Hi;
I create QThread from main thread of QT like below... I know the problems
from previous pjsip entries.. But still have a crash after i close the
call..

 void PjsipPollThread::run()
    {
    pj_thread_desc initdec;
    pj_thread_t* thread = 0;

    if (!pj_thread_is_registered() &&
pj_thread_register("PjsipPollThread_run", initdec, &thread )!=PJ_SUCCESS)
        return;

      while(isStackInit()) {
        pjsua_handle_events(10);
    }
    }


On Fri, Feb 19, 2010 at 3:15 PM, Peter Lukac <p.lukac at emtest.sk> wrote:

> 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
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100219/d7990c1e/attachment.html>


[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