linphone-developers
[Top][All Lists]
Advanced

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

Re: [Linphone-developers] Small Bug fixes for oRTP


From: Simon Morlat
Subject: Re: [Linphone-developers] Small Bug fixes for oRTP
Date: Mon, 30 Nov 2009 17:16:35 +0100

Ok, I caught it. Thanks for the explanations.
I committed to my source tree, will be available on git/svn tonight.

Simon

Le lundi 23 novembre 2009 à 16:20 +0100, Vadim Lebedev a écrit :
> Ok,
> I've attached  the diff file,
> Basicall in original 
> rtp_session_update_payload_type
> the line:
> session->hw_recv_pt=paytype;
> 
> was before the "if (pt ....)"  so it was modified even when payload was 
> unknown
> 
> 
> and in payload_type_changed_notify  did not check at all for payload code 
> validity.
> 
> This was causing problems when working against Xlite when doing Video
> calls.
> Upon call establishement Xlite does not send real video payload but
> sum kind of dummy rtp packet
> with invalid payoad code.  Later when user push "Send Video" button
> Xlite start sending real payload...
> Before my modifiction the video stream in linphone was configured upon
> call establishement
> then suspended upon detection of incoming invalid payload code then
> re-configured upon detection of
> valid payload....
> 
> Thanks
> Vadim
> 
> 
> Simon Morlat wrote: 
> > Hi Vadim,
> > 
> > Sorry I can't see what you changed in these functions. Maybe a diff
> > would be more appropriate ?
> > 
> > Simon
> > 
> > Le vendredi 20 novembre 2009 à 19:49 +0100, Vadim Lebedev a écrit :
> >   
> > > The RTP specs explains that conforming implementation should ignore
> > > incoming packets with unrecognized payloads:
> > > 
> > > So 'ive fixed two function is rtpsession.c to behave correctly:
> > > 
> > > void rtp_session_update_payload_type(RtpSession *session, int paytype){
> > >     /* check if we support this payload type */
> > >     PayloadType *pt=rtp_profile_get_payload(session->rcv.profile,paytype);
> > >     if (pt!=0){
> > >         session->hw_recv_pt=paytype;
> > >         ortp_message ("payload type changed to %i(%s) !",
> > >                  paytype,pt->mime_type);
> > >         payload_type_changed(session,pt);
> > >     }else{
> > >         ortp_warning("Receiving packet with unknown payload type
> > > %i.",paytype);
> > >     }
> > > }
> > > 
> > > static void payload_type_changed_notify(RtpSession *session, int paytype){
> > >            PayloadType *pt =
> > > rtp_profile_get_payload(session->rcv.profile,paytype);
> > > 
> > >     if (pt) {
> > >       session->rcv.pt = paytype;
> > >       rtp_signal_table_emit (&session->on_payload_type_changed);
> > >     }
> > > }
> > > 
> > > 
> > > Thanks
> > > Vadim
> > > 
> > > 
> > > _______________________________________________
> > > Linphone-developers mailing list
> > > address@hidden
> > > http://lists.nongnu.org/mailman/listinfo/linphone-developers
> > >     
> > 
> > 
> > 
> >   
> 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]