Index: content/renderer/media/rtc_video_decoder_unittest.cc |
diff --git a/content/renderer/media/rtc_video_decoder_unittest.cc b/content/renderer/media/rtc_video_decoder_unittest.cc |
index e6dfe3eeaa18aef03bc6260434eb07f0e701ac61..5b44f83044b0be91e4ccf5fbd45ec95057f61ea7 100644 |
--- a/content/renderer/media/rtc_video_decoder_unittest.cc |
+++ b/content/renderer/media/rtc_video_decoder_unittest.cc |
@@ -45,8 +45,6 @@ class RTCVideoDecoderTest : public ::testing::Test, |
.Times(1) |
.WillRepeatedly(Return(true)); |
EXPECT_CALL(*mock_vda_, Destroy()).Times(1); |
- rtc_decoder_ = |
- RTCVideoDecoder::Create(webrtc::kVideoCodecVP8, mock_gpu_factories_); |
} |
virtual void TearDown() OVERRIDE { |
@@ -65,9 +63,15 @@ class RTCVideoDecoderTest : public ::testing::Test, |
return WEBRTC_VIDEO_CODEC_OK; |
} |
+ void CreateDecoder(webrtc::VideoCodecType codec_type) { |
+ VLOG(2) << "CreateDecoder"; |
+ codec_.codecType = codec_type; |
+ rtc_decoder_ = |
+ RTCVideoDecoder::Create(codec_type, mock_gpu_factories_); |
+ } |
+ |
void Initialize() { |
VLOG(2) << "Initialize"; |
- codec_.codecType = webrtc::kVideoCodecVP8; |
EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, rtc_decoder_->InitDecode(&codec_, 1)); |
EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, |
rtc_decoder_->RegisterDecodeCompleteCallback(this)); |
@@ -104,24 +108,33 @@ class RTCVideoDecoderTest : public ::testing::Test, |
}; |
TEST_F(RTCVideoDecoderTest, CreateReturnsNullOnUnsupportedCodec) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
scoped_ptr<RTCVideoDecoder> null_rtc_decoder( |
RTCVideoDecoder::Create(webrtc::kVideoCodecI420, mock_gpu_factories_)); |
EXPECT_EQ(NULL, null_rtc_decoder.get()); |
} |
+TEST_F(RTCVideoDecoderTest, CreateAndInitSucceedsForH264Codec) { |
+ CreateDecoder(webrtc::kVideoCodecH264); |
+ EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, rtc_decoder_->InitDecode(&codec_, 1)); |
+} |
+ |
TEST_F(RTCVideoDecoderTest, InitDecodeReturnsErrorOnFeedbackMode) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
codec_.codecType = webrtc::kVideoCodecVP8; |
codec_.codecSpecific.VP8.feedbackModeOn = true; |
EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, rtc_decoder_->InitDecode(&codec_, 1)); |
} |
TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorWithoutInitDecode) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
webrtc::EncodedImage input_image; |
EXPECT_EQ(WEBRTC_VIDEO_CODEC_UNINITIALIZED, |
rtc_decoder_->Decode(input_image, false, NULL, NULL, 0)); |
} |
TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnIncompleteFrame) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
Initialize(); |
webrtc::EncodedImage input_image; |
input_image._completeFrame = false; |
@@ -130,6 +143,7 @@ TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnIncompleteFrame) { |
} |
TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnMissingFrames) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
Initialize(); |
webrtc::EncodedImage input_image; |
input_image._completeFrame = true; |
@@ -139,6 +153,7 @@ TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnMissingFrames) { |
} |
TEST_F(RTCVideoDecoderTest, ResetReturnsOk) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
Initialize(); |
EXPECT_CALL(*mock_vda_, Reset()) |
.WillOnce(Invoke(this, &RTCVideoDecoderTest::NotifyResetDone)); |
@@ -146,6 +161,7 @@ TEST_F(RTCVideoDecoderTest, ResetReturnsOk) { |
} |
TEST_F(RTCVideoDecoderTest, ReleaseReturnsOk) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
Initialize(); |
EXPECT_CALL(*mock_vda_, Reset()) |
.WillOnce(Invoke(this, &RTCVideoDecoderTest::NotifyResetDone)); |
@@ -153,6 +169,7 @@ TEST_F(RTCVideoDecoderTest, ReleaseReturnsOk) { |
} |
TEST_F(RTCVideoDecoderTest, InitDecodeAfterRelease) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
EXPECT_CALL(*mock_vda_, Reset()) |
.WillRepeatedly(Invoke(this, &RTCVideoDecoderTest::NotifyResetDone)); |
Initialize(); |
@@ -162,6 +179,7 @@ TEST_F(RTCVideoDecoderTest, InitDecodeAfterRelease) { |
} |
TEST_F(RTCVideoDecoderTest, IsBufferAfterReset) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
EXPECT_TRUE(rtc_decoder_->IsBufferAfterReset(0, RTCVideoDecoder::ID_INVALID)); |
EXPECT_TRUE(rtc_decoder_->IsBufferAfterReset(RTCVideoDecoder::ID_LAST, |
RTCVideoDecoder::ID_INVALID)); |
@@ -187,6 +205,7 @@ TEST_F(RTCVideoDecoderTest, IsBufferAfterReset) { |
} |
TEST_F(RTCVideoDecoderTest, IsFirstBufferAfterReset) { |
+ CreateDecoder(webrtc::kVideoCodecVP8); |
EXPECT_TRUE( |
rtc_decoder_->IsFirstBufferAfterReset(0, RTCVideoDecoder::ID_INVALID)); |
EXPECT_FALSE( |