summaryrefslogtreecommitdiff
path: root/chromium/media/ffmpeg
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-05-20 09:47:09 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-06-07 11:15:42 +0000
commit189d4fd8fad9e3c776873be51938cd31a42b6177 (patch)
tree6497caeff5e383937996768766ab3bb2081a40b2 /chromium/media/ffmpeg
parent8bc75099d364490b22f43a7ce366b366c08f4164 (diff)
downloadqtwebengine-chromium-189d4fd8fad9e3c776873be51938cd31a42b6177.tar.gz
BASELINE: Update Chromium to 90.0.4430.221
Change-Id: Iff4d9d18d2fcf1a576f3b1f453010f744a232920 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/media/ffmpeg')
-rw-r--r--chromium/media/ffmpeg/ffmpeg_common.cc8
-rw-r--r--chromium/media/ffmpeg/ffmpeg_regression_tests.cc14
2 files changed, 15 insertions, 7 deletions
diff --git a/chromium/media/ffmpeg/ffmpeg_common.cc b/chromium/media/ffmpeg/ffmpeg_common.cc
index 336edbb492f..a67f5f3fff4 100644
--- a/chromium/media/ffmpeg/ffmpeg_common.cc
+++ b/chromium/media/ffmpeg/ffmpeg_common.cc
@@ -619,6 +619,14 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
color_space = (natural_size.height() < 720) ? VideoColorSpace::REC601()
: VideoColorSpace::REC709();
}
+ } else if (codec_context->codec_id == AV_CODEC_ID_H264 &&
+ codec_context->colorspace == AVCOL_SPC_RGB &&
+ AVPixelFormatToVideoPixelFormat(codec_context->pix_fmt) ==
+ PIXEL_FORMAT_I420) {
+ // Some H.264 videos contain a VUI that specifies a color matrix of GBR,
+ // when they are actually ordinary YUV. Only 4:2:0 formats are checked,
+ // because GBR is reasonable for 4:4:4 content. See crbug.com/1067377.
+ color_space = VideoColorSpace::REC709();
}
// AVCodecContext occasionally has invalid extra data. See
diff --git a/chromium/media/ffmpeg/ffmpeg_regression_tests.cc b/chromium/media/ffmpeg/ffmpeg_regression_tests.cc
index ebd1babb4d3..a450eb827f1 100644
--- a/chromium/media/ffmpeg/ffmpeg_regression_tests.cc
+++ b/chromium/media/ffmpeg/ffmpeg_regression_tests.cc
@@ -84,7 +84,10 @@ class FlakyFFmpegRegressionTest
FFMPEG_TEST_CASE(Cr47325, "security/47325.mp4", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr47761, "crbug47761.ogg", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr50045, "crbug50045.mp4", PIPELINE_OK, PIPELINE_OK);
-FFMPEG_TEST_CASE(Cr62127, "crbug62127.webm", PIPELINE_OK, PIPELINE_OK);
+FFMPEG_TEST_CASE(Cr62127,
+ "crbug62127.webm",
+ PIPELINE_ERROR_DECODE,
+ PIPELINE_ERROR_DECODE);
FFMPEG_TEST_CASE(Cr93620, "security/93620.ogg", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr100492,
"security/100492.webm",
@@ -195,10 +198,7 @@ FFMPEG_TEST_CASE(Cr635422,
"security/635422.ogg",
DEMUXER_ERROR_COULD_NOT_OPEN,
DEMUXER_ERROR_COULD_NOT_OPEN);
-FFMPEG_TEST_CASE(Cr637428,
- "security/637428.ogg",
- PIPELINE_ERROR_DECODE,
- PIPELINE_ERROR_DECODE);
+FFMPEG_TEST_CASE(Cr637428, "security/637428.ogg", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr639961,
"security/639961.flac",
PIPELINE_ERROR_INITIALIZATION_FAILED,
@@ -335,8 +335,8 @@ FFMPEG_TEST_CASE(OGV_16,
DECODER_ERROR_NOT_SUPPORTED);
FFMPEG_TEST_CASE(OGV_17,
"security/vorbis.482086.ogv",
- PIPELINE_OK,
- PIPELINE_OK);
+ DEMUXER_ERROR_COULD_NOT_OPEN,
+ DEMUXER_ERROR_COULD_NOT_OPEN);
FFMPEG_TEST_CASE(OGV_18,
"security/wav.711.ogv",
DECODER_ERROR_NOT_SUPPORTED,