Fix the chain that propagates the audio frame's rtp and ntp timestamp including:
* In AudioCodingModuleImpl::PlayoutData10Ms, don't reset the timestamp got from GetAudio. * When there're more than one participant, set AudioFrame's RTP timestamp to 0. * Copy ntp_time_ms_ in AudioFrame::CopyFrom method. * In RemixAndResample, pass src frame's timestamp_ and ntp_time_ms_ to the dst frame. * Fix how |elapsed_time_ms| is computed in channel.cc by adding GetPlayoutFrequency. Tweaks on ntp_time_ms_: * Init ntp_time_ms_ to -1 in AudioFrame ctor. * When there're more than one participant, set AudioFrame's ntp_time_ms_ to an invalid value. I.e. we don't support ntp_time_ms_ in multiple participants case before the mixing is moved to chrome. Added elapsed_time_ms to AudioFrame and pass it to chrome, where we don't have the information about the rtp timestmp's sample rate, i.e. can't convert rtp timestamp to ms. BUG=3111 R=henrik.lundin@webrtc.org, turaj@webrtc.org, xians@webrtc.org TBR=andrew andrew to take another look on audio_conference_mixer_impl.cc Review URL: https://webrtc-codereview.appspot.com/14559004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6346 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -548,15 +548,15 @@ int32_t AudioDeviceBuffer::RequestPlayoutData(uint32_t nSamples)
|
||||
if (_ptrCbAudioTransport)
|
||||
{
|
||||
uint32_t res(0);
|
||||
uint32_t rtp_timestamp = 0;
|
||||
int64_t ntp_time_ms = 0;
|
||||
int64_t elapsed_time_ms = -1;
|
||||
int64_t ntp_time_ms = -1;
|
||||
res = _ptrCbAudioTransport->NeedMorePlayData(_playSamples,
|
||||
playBytesPerSample,
|
||||
playChannels,
|
||||
playSampleRate,
|
||||
&_playBuffer[0],
|
||||
nSamplesOut,
|
||||
&rtp_timestamp,
|
||||
&elapsed_time_ms,
|
||||
&ntp_time_ms);
|
||||
if (res != 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user