diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-16 15:28:57 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-16 14:48:04 +0000 |
commit | 929be7c02f99726d2c887d291ad914a91e005402 (patch) | |
tree | a1e56d59d444548322406b6eb8c66778ab8bd9a0 | |
parent | 83cd7dc2c3ec4af44564c2c9860f8b3122d7ec74 (diff) |
[Backport] [M55] Use FFmpeg default padding when allocating audio buffers.
Previously, we would pad to the alignment size when allocating an
audio buffer. However, this did not always provide enough padding
to avoid overruns.
Instead, we now let FFmpeg determine the correct padding for us.
BUG=658440
Review-Url: https://codereview.chromium.org/2464963003
Cr-Commit-Position: refs/heads/master@{#429014}
(cherry picked from commit b8733772baf52a693ab6a887373feaa6b91c7cdd)
Review URL: https://codereview.chromium.org/2481913002 .
Cr-Commit-Position: refs/branch-heads/2883@{#480}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}
(CVE-2016-669928)
Change-Id: I1bf5bedcbf3a4a71e04343d4cd624a39c69230be
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r-- | chromium/media/filters/ffmpeg_audio_decoder.cc | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/chromium/media/filters/ffmpeg_audio_decoder.cc b/chromium/media/filters/ffmpeg_audio_decoder.cc index 61f63d1ad57..dec26cbd9f1 100644 --- a/chromium/media/filters/ffmpeg_audio_decoder.cc +++ b/chromium/media/filters/ffmpeg_audio_decoder.cc @@ -81,12 +81,9 @@ static int GetAudioBuffer(struct AVCodecContext* s, AVFrame* frame, int flags) { // Determine how big the buffer should be and allocate it. FFmpeg may adjust // how big each channel data is in order to meet the alignment policy, so // we need to take this into consideration. - int buffer_size_in_bytes = - av_samples_get_buffer_size(&frame->linesize[0], - channels, - frame->nb_samples, - format, - AudioBuffer::kChannelAlignment); + int buffer_size_in_bytes = av_samples_get_buffer_size( + &frame->linesize[0], channels, frame->nb_samples, format, + 0 /* align, use ffmpeg default */); // Check for errors from av_samples_get_buffer_size(). if (buffer_size_in_bytes < 0) return buffer_size_in_bytes; |