Bug 1267637: [ffmpeg] P7. Reject audio data with unsupported channel configuration. r?gerald draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Wed, 27 Apr 2016 17:54:15 +1000
changeset 356837 3d3b9d9fff2837a82a9fcb3098ff64560b627085
parent 356836 3c3915ab9afbcf41a3bf90fa76b86dffe55bc4b4
child 356838 504397ea04849284d1fa3889557c7666a64c7326
push id16612
push userbmo:jyavenard@mozilla.com
push dateWed, 27 Apr 2016 08:16:14 +0000
reviewersgerald
bugs1267637
milestone49.0a1
Bug 1267637: [ffmpeg] P7. Reject audio data with unsupported channel configuration. r?gerald MozReview-Commit-ID: AoEjMjYfUzn
dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp
--- a/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp
+++ b/dom/media/platforms/ffmpeg/FFmpegAudioDecoder.cpp
@@ -123,16 +123,22 @@ FFmpegAudioDecoder<LIBAV_VER>::DecodePac
     if (bytesConsumed < 0) {
       NS_WARNING("FFmpeg audio decoder error.");
       mCallback->Error();
       return;
     }
 
     if (decoded) {
       uint32_t numChannels = mCodecContext->channels;
+      AudioConfig::ChannelLayout layout(numChannels);
+      if (!layout.IsValid()) {
+        mCallback->Error();
+        return;
+      }
+
       uint32_t samplingRate = mCodecContext->sample_rate;
 
       AlignedAudioBuffer audio =
         CopyAndPackAudio(mFrame, numChannels, mFrame->nb_samples);
 
       media::TimeUnit duration =
         FramesToTimeUnit(mFrame->nb_samples, samplingRate);
       if (!audio || !duration.IsValid()) {