Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Unified Diff: media/filters/ffmpeg_video_decoder_unittest.cc

Issue 10830110: Remove VideoDecoderConfig::aspect_ratio_xxx methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments & rebased Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/filters/ffmpeg_demuxer_unittest.cc ('k') | media/filters/pipeline_integration_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/ffmpeg_video_decoder_unittest.cc
diff --git a/media/filters/ffmpeg_video_decoder_unittest.cc b/media/filters/ffmpeg_video_decoder_unittest.cc
index 3c0af396c95a12130c23930937a09242f5f57f6b..1e5f4683ec9ecb60a361639b3853e385e99f6256 100644
--- a/media/filters/ffmpeg_video_decoder_unittest.cc
+++ b/media/filters/ffmpeg_video_decoder_unittest.cc
@@ -18,6 +18,7 @@
#include "media/base/test_data_util.h"
#include "media/base/video_decoder.h"
#include "media/base/video_frame.h"
+#include "media/base/video_util.h"
#include "media/ffmpeg/ffmpeg_common.h"
#include "media/filters/ffmpeg_decoder_unittest.h"
#include "media/filters/ffmpeg_glue.h"
@@ -36,7 +37,7 @@ namespace media {
static const VideoFrame::Format kVideoFormat = VideoFrame::YV12;
static const gfx::Size kCodedSize(320, 240);
static const gfx::Rect kVisibleRect(320, 240);
-static const AVRational kAspectRatio = { 1, 1 };
+static const gfx::Size kNaturalSize(320, 240);
static const uint8 kFakeKeyId[] = { 0x4b, 0x65, 0x79, 0x20, 0x49, 0x44 };
static const uint8 kFakeIv[DecryptConfig::kDecryptionKeySize] = { 0 };
static const uint8 kFakeCheckSum[] = { 0, 0 };
@@ -87,8 +88,7 @@ class FFmpegVideoDecoderTest : public testing::Test {
encrypted_i_frame_buffer_ = CreateFakeEncryptedBuffer();
config_.Initialize(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN,
- kVideoFormat, kCodedSize, kVisibleRect,
- kAspectRatio.num, kAspectRatio.den,
+ kVideoFormat, kCodedSize, kVisibleRect, kNaturalSize,
NULL, 0, true);
}
@@ -246,8 +246,7 @@ TEST_F(FFmpegVideoDecoderTest, Initialize_UnsupportedDecoder) {
// Test avcodec_find_decoder() returning NULL.
VideoDecoderConfig config(kUnknownVideoCodec, VIDEO_CODEC_PROFILE_UNKNOWN,
kVideoFormat,
- kCodedSize, kVisibleRect,
- kAspectRatio.num, kAspectRatio.den,
+ kCodedSize, kVisibleRect, kNaturalSize,
NULL, 0);
InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
}
@@ -256,8 +255,7 @@ TEST_F(FFmpegVideoDecoderTest, Initialize_UnsupportedPixelFormat) {
// Ensure decoder handles unsupport pixel formats without crashing.
VideoDecoderConfig config(kCodecVP8, VIDEO_CODEC_PROFILE_UNKNOWN,
VideoFrame::INVALID,
- kCodedSize, kVisibleRect,
- kAspectRatio.num, kAspectRatio.den,
+ kCodedSize, kVisibleRect, kNaturalSize,
NULL, 0);
InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
}
@@ -266,8 +264,64 @@ TEST_F(FFmpegVideoDecoderTest, Initialize_OpenDecoderFails) {
// Specify Theora w/o extra data so that avcodec_open2() fails.
VideoDecoderConfig config(kCodecTheora, VIDEO_CODEC_PROFILE_UNKNOWN,
kVideoFormat,
- kCodedSize, kVisibleRect,
- kAspectRatio.num, kAspectRatio.den,
+ kCodedSize, kVisibleRect, kNaturalSize,
+ NULL, 0);
+ InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
+}
+
+TEST_F(FFmpegVideoDecoderTest, Initialize_AspectRatioNumeratorZero) {
+ gfx::Size natural_size = GetNaturalSize(kVisibleRect.size(), 0, 1);
+ VideoDecoderConfig config(kCodecVP8, VP8PROFILE_MAIN,
+ kVideoFormat,
+ kCodedSize, kVisibleRect, natural_size,
+ NULL, 0);
+ InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
+}
+
+TEST_F(FFmpegVideoDecoderTest, Initialize_AspectRatioDenominatorZero) {
+ gfx::Size natural_size = GetNaturalSize(kVisibleRect.size(), 1, 0);
+ VideoDecoderConfig config(kCodecVP8, VP8PROFILE_MAIN,
+ kVideoFormat,
+ kCodedSize, kVisibleRect, natural_size,
+ NULL, 0);
+ InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
+}
+
+TEST_F(FFmpegVideoDecoderTest, Initialize_AspectRatioNumeratorNegative) {
+ gfx::Size natural_size = GetNaturalSize(kVisibleRect.size(), -1, 1);
+ VideoDecoderConfig config(kCodecVP8, VP8PROFILE_MAIN,
+ kVideoFormat,
+ kCodedSize, kVisibleRect, natural_size,
+ NULL, 0);
+ InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
+}
+
+TEST_F(FFmpegVideoDecoderTest, Initialize_AspectRatioDenominatorNegative) {
+ gfx::Size natural_size = GetNaturalSize(kVisibleRect.size(), 1, -1);
+ VideoDecoderConfig config(kCodecVP8, VP8PROFILE_MAIN,
+ kVideoFormat,
+ kCodedSize, kVisibleRect, natural_size,
+ NULL, 0);
+ InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
+}
+
+TEST_F(FFmpegVideoDecoderTest, Initialize_AspectRatioNumeratorTooLarge) {
+ int width = kVisibleRect.size().width();
+ int num = ceil(static_cast<double>(limits::kMaxDimension + 1) / width);
+ gfx::Size natural_size = GetNaturalSize(kVisibleRect.size(), num, 1);
+ VideoDecoderConfig config(kCodecVP8, VP8PROFILE_MAIN,
+ kVideoFormat,
+ kCodedSize, kVisibleRect, natural_size,
+ NULL, 0);
+ InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
+}
+
+TEST_F(FFmpegVideoDecoderTest, Initialize_AspectRatioDenominatorTooLarge) {
+ int den = kVisibleRect.size().width() + 1;
+ gfx::Size natural_size = GetNaturalSize(kVisibleRect.size(), 1, den);
+ VideoDecoderConfig config(kCodecVP8, VP8PROFILE_MAIN,
+ kVideoFormat,
+ kCodedSize, kVisibleRect, natural_size,
NULL, 0);
InitializeWithConfigAndStatus(config, PIPELINE_ERROR_DECODE);
}
« no previous file with comments | « media/filters/ffmpeg_demuxer_unittest.cc ('k') | media/filters/pipeline_integration_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698