Bug 1309079 - support mp3-in-mp4 in rust mp4 parser. r?kinetik draft
authorAlfredo.Yang <ayang@mozilla.com>
Thu, 13 Oct 2016 10:12:28 +0800
changeset 430068 fcff162d4f9215d77ee6718ca0ffe30b9d8ac6a5
parent 430042 3f4c3a3cabaf94958834d3a8935adfb4a887942d
child 535115 81dbae71f13a7b28c0cbeecd668cac4b3e57256c
push id33727
push userbmo:ayang@mozilla.com
push dateThu, 27 Oct 2016 03:49:28 +0000
reviewerskinetik
bugs1309079
milestone52.0a1
Bug 1309079 - support mp3-in-mp4 in rust mp4 parser. r?kinetik MozReview-Commit-ID: LieZ5O222LT
media/libstagefright/binding/MP4Metadata.cpp
--- a/media/libstagefright/binding/MP4Metadata.cpp
+++ b/media/libstagefright/binding/MP4Metadata.cpp
@@ -740,16 +740,17 @@ MP4MetadataRust::GetTrackInfo(mozilla::T
   const char* codec_string = "unrecognized";
   switch (info.codec) {
     case MP4PARSE_CODEC_UNKNOWN: codec_string = "unknown"; break;
     case MP4PARSE_CODEC_AAC: codec_string = "aac"; break;
     case MP4PARSE_CODEC_OPUS: codec_string = "opus"; break;
     case MP4PARSE_CODEC_FLAC: codec_string = "flac"; break;
     case MP4PARSE_CODEC_AVC: codec_string = "h.264"; break;
     case MP4PARSE_CODEC_VP9: codec_string = "vp9"; break;
+    case MP4PARSE_CODEC_MP3: codec_string = "mp3"; break;
   }
   MOZ_LOG(sLog, LogLevel::Debug, ("track codec %s (%u)\n",
         codec_string, info.codec));
 #endif
 
   // This specialization interface is crazy.
   UniquePtr<mozilla::TrackInfo> e;
   switch (aType) {
@@ -773,16 +774,18 @@ MP4MetadataRust::GetTrackInfo(mozilla::T
         MOZ_LOG(sLog, LogLevel::Debug,
             ("Copying opus pre-skip value of %d as CodecDelay.",(int)preskip));
         OpusDataDecoder::AppendCodecDelay(track->mCodecSpecificConfig,
             mozilla::FramesToUsecs(preskip, 48000).value());
       } else if (info.codec == MP4PARSE_CODEC_AAC) {
         track->mMimeType = MEDIA_MIMETYPE_AUDIO_AAC;
       } else if (info.codec == MP4PARSE_CODEC_FLAC) {
         track->mMimeType = MEDIA_MIMETYPE_AUDIO_FLAC;
+      } else if (info.codec == MP4PARSE_CODEC_MP3) {
+        track->mMimeType = MEDIA_MIMETYPE_AUDIO_MPEG;
       }
       track->mCodecSpecificConfig->AppendElements(
           audio.codec_specific_config.data,
           audio.codec_specific_config.length);
       track->mRate = audio.sample_rate;
       track->mChannels = audio.channels;
       track->mBitDepth = audio.bit_depth;
       track->mDuration = info.duration;