Ticket #483 (closed defect: fixed)

Opened 10 years ago

Last modified 10 years ago

Problems with using multiple sound devices (with splitcomb) with PJSUA-LIB

Reported by: bennylp Owned by: nanang
Priority: major Milestone: release-0.9.0
Component: pjmedia Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

There have been some problems with using the splitter/combiner port (splitcomb) with PJSUA-LIB. Splitcomb typically is used on these scenarios:

  1. when the application wants to support multiple sound devices connected to the conference bridge
  2. in one case, one user uses splitcomb even with one sound device to avoid the jitter in RTP transmission.

For case a) above, one user has reported that when three audio devices are used (one connected directly to port 0 of the bridge and the other two via splitcombs), then there won't be any audio coming/going through the third sound device. Checking the log revealed that there are many overflow/underflow messages printed on the log. This only happens when C-Media USB Audio driver is used; if the generic USB audio driver is used, audio seems to be working fine.

For case b), the user reported that audio was also broken, and there were lots of underflow/overflow messages printed to the log as well.

Change History

comment:1 Changed 10 years ago by bennylp

  • Priority changed from normal to major

comment:2 Changed 10 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to fixed

We couldn't exactly reproduce the problem, but one thing that we observed, sound devices with different brands may have different actual sampling rate which could cause audio drifts, hence the overflow/underflow message.

While we couldn't remove the underflow/overflow problem, there have been major efforts in pjmedia to fix the audio clicks noise caused by it:

  • ticket #497 adds WSOLA implementation to smoothen the audio samples upon underflow/overflow
  • ticket #438 implements WSOLA on splitcomb and conference bridge, which is prone to these underflow/overflow problem

So I think this problem should have been fixed by these tickets.

Note: See TracTickets for help on using tickets.