Bug 1322070: P4. Correctly fill FLAC metadata if present. r?gerald
Metadata were incorrectly overwritten.
MozReview-Commit-ID: 2GHpQ6vUcEE
--- a/dom/media/ogg/OggDemuxer.cpp
+++ b/dom/media/ogg/OggDemuxer.cpp
@@ -573,21 +573,22 @@ OggDemuxer::SetupMediaTracksInfo(const n
mInfo.mAudio.mChannels = opusState->mChannels;
FillTags(&mInfo.mAudio, opusState->GetTags());
} else if (codecState->GetType() == OggCodecState::TYPE_FLAC) {
FlacState* flacState = static_cast<FlacState*>(codecState);
if (!(mFlacState && mFlacState->mSerial == flacState->mSerial)) {
continue;
}
+ mInfo.mAudio = *flacState->GetInfo()->GetAsAudioInfo();
+
if (msgInfo) {
InitTrack(msgInfo, &mInfo.mAudio, mFlacState == flacState);
}
- mInfo.mAudio = *flacState->GetInfo()->GetAsAudioInfo();
FillTags(&mInfo.mAudio, flacState->GetTags());
}
}
}
void
OggDemuxer::FillTags(TrackInfo* aInfo, MetadataTags* aTags)
{
@@ -870,17 +871,16 @@ OggDemuxer::ReadOggChain(const media::Ti
SetupTargetFlac(newFlacState, flacHeaders);
LOG(LogLevel::Debug, ("New flac ogg link, serial=%d\n", mFlacSerial));
if (msgInfo) {
InitTrack(msgInfo, &mInfo.mAudio, true);
}
- mInfo.mAudio = *newFlacState->GetInfo()->GetAsAudioInfo();
chained = true;
tags = newFlacState->GetTags();
}
if (chained) {
SetChained();
mInfo.mMediaSeekable = false;
mDecodedAudioDuration += aLastEndTime;