Opened 5 years ago

Last modified 5 years ago

#1794 closed defect

Assertion or garbled audio in call using G.722.1 — at Initial Version

Reported by: nanang Owned by: nanang
Priority: normal Milestone: release-2.4
Component: pjmedia Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported: no

Description

Scenario:

  1. make call using pjsua with G.722.1 multiple bitrates in SDP offer, e.g:
    a=rtpmap:118 G7221/16000
    a=fmtp:118 bitrate=24000
    a=rtpmap:119 G7221/16000
    a=fmtp:119 bitrate=32000
    
  2. receive call answer, but the SDP answer specifies the second format/bitrate (from the offer), e.g:
    a=rtpmap:119 G7221/16000
    a=fmtp:119 bitrate=32000
    

The SDP negotiator seems to handle this already, i.e: it negotiates the bitrate in SDP fmtp too (instead of only matching the encoding name and the clock rate). But there are two problems:

  1. as stream only matches encoding name, clock rate, and channel count, it may get wrong remote payload type so the remote will complain with wrong payload type in its received RTP packets.
  2. as codec manager cannot differentiate G.722.1 based on the bitrate, the stream gets wrong G.722.1 codec parameters and open the codec using that wrong param, this leads to assertion or garbled audio.

Thanks to Brian Walker for the report.

Change History (0)

Note: See TracTickets for help on using tickets.