Bug 1267637: P2. Ignore outright audio track considered invalid. r=gerald

MozReview-Commit-ID: 6rMz8cjgLiY

--HG--
extra : rebase_source : 9e006f0125d9d3c786d64aae5f521f8239bbae8b
This commit is contained in:
Jean-Yves Avenard 2016-04-27 17:35:58 +10:00
Родитель 25410f2b25
Коммит f15a29610d
1 изменённых файлов: 14 добавлений и 7 удалений

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

@ -303,14 +303,21 @@ MediaFormatReader::OnDemuxerInitDone(nsresult)
mMetadataPromise.Reject(ReadMetadataFailureReason::METADATA_ERROR, __func__);
return;
}
mInfo.mAudio = *mAudio.mTrackDemuxer->GetInfo()->GetAsAudioInfo();
UniquePtr<TrackInfo> info(mAudio.mTrackDemuxer->GetInfo());
for (const MetadataTag& tag : info->mTags) {
UniquePtr<TrackInfo> audioInfo = mAudio.mTrackDemuxer->GetInfo();
// We actively ignore audio tracks that we know we can't play.
audioActive = audioInfo && audioInfo->IsValid();
if (audioActive) {
mInfo.mAudio = *audioInfo->GetAsAudioInfo();
for (const MetadataTag& tag : audioInfo->mTags) {
tags->Put(tag.mKey, tag.mValue);
}
mAudio.mCallback = new DecoderCallback(this, TrackInfo::kAudioTrack);
mAudio.mTimeRanges = mAudio.mTrackDemuxer->GetBuffered();
mTrackDemuxersMayBlock |= mAudio.mTrackDemuxer->GetSamplesMayBlock();
} else {
mAudio.mTrackDemuxer->BreakCycles();
mAudio.mTrackDemuxer = nullptr;
}
}
UniquePtr<EncryptionInfo> crypto = mDemuxer->GetCrypto();