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

Unified Diff: content/renderer/media/rtc_video_decoder_unittest.cc

Issue 457733002: Support for H264 HW offload for webRTC. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased at 291440. Created 6 years, 4 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 | « content/renderer/media/rtc_video_decoder.cc ('k') | content/renderer/media/rtc_video_encoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..a1e6341f09335e4700db8f182f184a927cf7f483 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,32 @@ 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) {
- codec_.codecType = webrtc::kVideoCodecVP8;
+ CreateDecoder(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 +142,7 @@ TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnIncompleteFrame) {
}
TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnMissingFrames) {
+ CreateDecoder(webrtc::kVideoCodecVP8);
Initialize();
webrtc::EncodedImage input_image;
input_image._completeFrame = true;
@@ -139,6 +152,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 +160,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 +168,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 +178,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 +204,7 @@ TEST_F(RTCVideoDecoderTest, IsBufferAfterReset) {
}
TEST_F(RTCVideoDecoderTest, IsFirstBufferAfterReset) {
+ CreateDecoder(webrtc::kVideoCodecVP8);
EXPECT_TRUE(
rtc_decoder_->IsFirstBufferAfterReset(0, RTCVideoDecoder::ID_INVALID));
EXPECT_FALSE(
« no previous file with comments | « content/renderer/media/rtc_video_decoder.cc ('k') | content/renderer/media/rtc_video_encoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698