summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrav90 <travawine@protonmail.ch>2018-04-26 16:51:50 -0500
committertrav90 <travawine@protonmail.ch>2018-04-26 16:51:50 -0500
commit543f54970d2af3a1d9a75a5978f33c43f8df5113 (patch)
tree927175b39ab582b2b3f01ca5af6af95421536739
parentebada16bbd6c7d482ded20053586d424ecb4424e (diff)
downloadaura-central-543f54970d2af3a1d9a75a5978f33c43f8df5113.tar.gz
[FFmpeg] Work around a bug with corrupted data
According to FFmpeg documentation, the out parameter is "set to size of parsed buffer or zero if not yet finished." however this is only the case if no error occurred; otherwise it is left untouched. We want the invalid content to generate a decoding error, so we set size to inputSize to ensure decoding failed later.
-rw-r--r--dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
index 5c1b6c97b..aec1e9136 100644
--- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
@@ -181,8 +181,8 @@ FFmpegVideoDecoder<LIBAV_VER>::DoDecode(MediaRawData* aSample, bool* aGotFrame)
#endif
)) {
while (inputSize) {
- uint8_t* data;
- int size;
+ uint8_t* data = inputData;
+ int size = inputSize;
int len = mLib->av_parser_parse2(mCodecParser, mCodecContext, &data, &size,
inputData, inputSize,
aSample->mTime, aSample->mTimecode,