Bug 1597935 - Don't buffer audio inside `SourceMediaTrack`. r=pehrsons

Differential Revision: https://phabricator.services.mozilla.com/D54853

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jon Bauman 2019-12-03 19:18:04 +00:00
Родитель 320c507752
Коммит 176e3cb761
1 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -2415,8 +2415,14 @@ static void MoveToSegment(SourceMediaTrack* aTrack, MediaSegment* aIn,
TrackTime aDesiredUpToTime) {
MOZ_ASSERT(aIn->GetType() == aOut->GetType());
MOZ_ASSERT(aOut->GetDuration() >= aCurrentTime);
MOZ_ASSERT(aDesiredUpToTime >= aCurrentTime);
if (aIn->GetType() == MediaSegment::AUDIO) {
aOut->AppendFrom(aIn);
AudioSegment* in = static_cast<AudioSegment*>(aIn);
TrackTime desiredDurationToMove = aDesiredUpToTime - aCurrentTime;
TrackTime end = std::min(in->GetDuration(), desiredDurationToMove);
aOut->AppendSlice(*in, 0, end);
in->RemoveLeading(end);
} else {
VideoSegment* in = static_cast<VideoSegment*>(aIn);
VideoSegment* out = static_cast<VideoSegment*>(aOut);
@ -2458,8 +2464,8 @@ static void MoveToSegment(SourceMediaTrack* aTrack, MediaSegment* aIn,
out->ExtendLastFrameBy(aDesiredUpToTime - out->GetDuration());
}
in->Clear();
MOZ_ASSERT(aIn->GetDuration() == 0, "aIn must be consumed");
}
MOZ_ASSERT(aIn->GetDuration() == 0, "aIn must be consumed");
}
void SourceMediaTrack::ExtractPendingInput(GraphTime aCurrentTime,