Bug 1322070: P4. Correctly fill FLAC metadata if present. r?gerald draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Mon, 05 Dec 2016 19:20:58 +1100
changeset 448644 3d131025ccc0e707d4fd1d0b32c8f85a24fe3efc
parent 448643 516fd71adf18a3ac9c6bca6a12fa84fff1379ae3
child 448645 6b025c61ff5956428a63dfe1597a6da2fb8527fa
push id38389
push userbmo:jyavenard@mozilla.com
push dateMon, 12 Dec 2016 05:01:11 +0000
reviewersgerald
bugs1322070
milestone53.0a1
Bug 1322070: P4. Correctly fill FLAC metadata if present. r?gerald Metadata were incorrectly overwritten. MozReview-Commit-ID: 2GHpQ6vUcEE
dom/media/ogg/OggDemuxer.cpp
--- 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;