Changes between Initial Version and Version 1 of Ticket #438


Ignore:
Timestamp:
Jan 4, 2008 6:20:48 PM (11 years ago)
Author:
bennylp
Comment:

In r1664:

  • Added delay buffer implementation in pjmedia. It's disabled by default for now.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #438 – Description

    initial v1  
    1 Most audio devices will call record and playback callbacks in burst, rather than in perfect interleave (for example, burst of record callbacks, followed by burst of playback callbacks, and so on). Because of this, audio buffering is needed by few pjmedia components (conference bridge, splitcomb, etc.), and the maximum buffering is controlled by {{{PJMEDIA_SOUND_BUFFER_COUNT}}} macro. 
     1Most audio devices will call record and playback callbacks in burst, rather than in perfect interleave (for example, burst of record callbacks, followed by burst of playback callbacks, and so on). Because of this, audio buffering needs to be implemented in few pjmedia components (conference bridge, splitcomb, echo canceller, etc.), and the maximum buffering is controlled by {{{PJMEDIA_SOUND_BUFFER_COUNT}}} macro. 
    22 
    33This is not ideal, because: 
     
    66 1. pjmedia components need to handle the burst, while this problem should have been localized and fixed in sound device. 
    77 
    8 This ticket attempts to fix this problem by fixing the burst in sound device port. The idea is sound device port will buffer the burst and will call the get_frame() and put_frame() callback in a perfect interleave, thus removing the need for {{{PJMEDIA_SOUND_BUFFER_COUNT}}} 
     8This ticket attempts to fix this problem by fixing the burst in sound device port. The idea is sound device port will apply a fixed delay to buffer the burst, like a fixed jitter buffer (and the delay will be detected at run-time) and will call the get_frame() and put_frame() callback in a perfect interleave. Then we could remove the {{{PJMEDIA_SOUND_BUFFER_COUNT}}} macro. 
    99