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

Unified Diff: webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc

Issue 3010953002: Revert of Prepare for injectable SW decoders (Closed)
Patch Set: Created 3 years, 3 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 | « webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc ('k') | webrtc/media/engine/webrtcvideoengine.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc
diff --git a/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc b/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc
index 84a6a597316f5b7ebb4f3ea60a246f3827adc43e..b4fc7caf83643e3e0e7556a7cf9db722afc1a667 100644
--- a/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc
+++ b/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc
@@ -19,9 +19,7 @@
class VideoDecoderSoftwareFallbackWrapperTest : public ::testing::Test {
protected:
VideoDecoderSoftwareFallbackWrapperTest()
- : fake_decoder_(new CountingFakeDecoder()),
- fallback_wrapper_(kVideoCodecVP8,
- std::unique_ptr<VideoDecoder>(fake_decoder_)) {}
+ : fallback_wrapper_(kVideoCodecVP8, &fake_decoder_) {}
class CountingFakeDecoder : public VideoDecoder {
public:
@@ -63,41 +61,39 @@
int release_count_ = 0;
int reset_count_ = 0;
};
- // |fake_decoder_| is owned and released by |fallback_wrapper_|.
- CountingFakeDecoder* fake_decoder_;
+ CountingFakeDecoder fake_decoder_;
VideoDecoderSoftwareFallbackWrapper fallback_wrapper_;
};
TEST_F(VideoDecoderSoftwareFallbackWrapperTest, InitializesDecoder) {
VideoCodec codec = {};
fallback_wrapper_.InitDecode(&codec, 2);
- EXPECT_EQ(1, fake_decoder_->init_decode_count_);
+ EXPECT_EQ(1, fake_decoder_.init_decode_count_);
EncodedImage encoded_image;
encoded_image._frameType = kVideoFrameKey;
fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(1, fake_decoder_->init_decode_count_)
+ EXPECT_EQ(1, fake_decoder_.init_decode_count_)
<< "Initialized decoder should not be reinitialized.";
- EXPECT_EQ(1, fake_decoder_->decode_count_);
+ EXPECT_EQ(1, fake_decoder_.decode_count_);
}
TEST_F(VideoDecoderSoftwareFallbackWrapperTest,
UsesFallbackDecoderAfterOnInitDecodeFailure) {
VideoCodec codec = {};
- fake_decoder_->init_decode_return_code_ =
- WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
- fallback_wrapper_.InitDecode(&codec, 2);
- EXPECT_EQ(1, fake_decoder_->init_decode_count_);
+ fake_decoder_.init_decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
+ fallback_wrapper_.InitDecode(&codec, 2);
+ EXPECT_EQ(1, fake_decoder_.init_decode_count_);
EncodedImage encoded_image;
encoded_image._frameType = kVideoFrameKey;
fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(2, fake_decoder_->init_decode_count_)
+ EXPECT_EQ(2, fake_decoder_.init_decode_count_)
<< "Should have attempted reinitializing the fallback decoder on "
"keyframe.";
// Unfortunately faking a VP8 frame is hard. Rely on no Decode -> using SW
// decoder.
- EXPECT_EQ(0, fake_decoder_->decode_count_)
+ EXPECT_EQ(0, fake_decoder_.decode_count_)
<< "Decoder used even though no InitDecode had succeeded.";
}
@@ -107,41 +103,41 @@
fallback_wrapper_.InitDecode(&codec, 2);
// Unfortunately faking a VP8 frame is hard. Rely on no Decode -> using SW
// decoder.
- fake_decoder_->decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
- EncodedImage encoded_image;
- fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(1, fake_decoder_->decode_count_);
+ fake_decoder_.decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
+ EncodedImage encoded_image;
+ fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
+ EXPECT_EQ(1, fake_decoder_.decode_count_);
// Fail -> fake_decoder shouldn't be used anymore.
fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(1, fake_decoder_->decode_count_)
+ EXPECT_EQ(1, fake_decoder_.decode_count_)
<< "Decoder used even though fallback should be active.";
// Should be able to recover on a keyframe.
encoded_image._frameType = kVideoFrameKey;
- fake_decoder_->decode_return_code_ = WEBRTC_VIDEO_CODEC_OK;
- fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(2, fake_decoder_->decode_count_)
+ fake_decoder_.decode_return_code_ = WEBRTC_VIDEO_CODEC_OK;
+ fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
+ EXPECT_EQ(2, fake_decoder_.decode_count_)
<< "Wrapper did not try to decode a keyframe using registered decoder.";
encoded_image._frameType = kVideoFrameDelta;
fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(3, fake_decoder_->decode_count_)
+ EXPECT_EQ(3, fake_decoder_.decode_count_)
<< "Decoder not used on future delta frames.";
}
TEST_F(VideoDecoderSoftwareFallbackWrapperTest, DoesNotFallbackOnEveryError) {
VideoCodec codec = {};
fallback_wrapper_.InitDecode(&codec, 2);
- fake_decoder_->decode_return_code_ = WEBRTC_VIDEO_CODEC_ERROR;
+ fake_decoder_.decode_return_code_ = WEBRTC_VIDEO_CODEC_ERROR;
EncodedImage encoded_image;
EXPECT_EQ(
- fake_decoder_->decode_return_code_,
+ fake_decoder_.decode_return_code_,
fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1));
- EXPECT_EQ(1, fake_decoder_->decode_count_);
-
- fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(2, fake_decoder_->decode_count_)
+ EXPECT_EQ(1, fake_decoder_.decode_count_);
+
+ fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
+ EXPECT_EQ(2, fake_decoder_.decode_count_)
<< "Decoder should be active even though previous decode failed.";
}
@@ -149,15 +145,15 @@
VideoCodec codec = {};
fallback_wrapper_.InitDecode(&codec, 2);
fallback_wrapper_.Release();
- EXPECT_EQ(1, fake_decoder_->release_count_);
-
- fake_decoder_->decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
- EncodedImage encoded_image;
- fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
- EXPECT_EQ(1, fake_decoder_->release_count_)
+ EXPECT_EQ(1, fake_decoder_.release_count_);
+
+ fake_decoder_.decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
+ EncodedImage encoded_image;
+ fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
+ EXPECT_EQ(1, fake_decoder_.release_count_)
<< "Decoder should not be released during fallback.";
fallback_wrapper_.Release();
- EXPECT_EQ(2, fake_decoder_->release_count_);
+ EXPECT_EQ(2, fake_decoder_.release_count_);
}
// TODO(pbos): Fake a VP8 frame well enough to actually receive a callback from
@@ -181,13 +177,13 @@
VideoCodec codec = {};
fallback_wrapper_.InitDecode(&codec, 2);
fallback_wrapper_.RegisterDecodeCompleteCallback(&callback);
- EXPECT_EQ(&callback, fake_decoder_->decode_complete_callback_);
-
- fake_decoder_->decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
+ EXPECT_EQ(&callback, fake_decoder_.decode_complete_callback_);
+
+ fake_decoder_.decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
EncodedImage encoded_image;
fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
fallback_wrapper_.RegisterDecodeCompleteCallback(&callback2);
- EXPECT_EQ(&callback2, fake_decoder_->decode_complete_callback_);
+ EXPECT_EQ(&callback2, fake_decoder_.decode_complete_callback_);
}
TEST_F(VideoDecoderSoftwareFallbackWrapperTest,
@@ -195,7 +191,7 @@
VideoCodec codec = {};
fallback_wrapper_.InitDecode(&codec, 2);
- fake_decoder_->decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
+ fake_decoder_.decode_return_code_ = WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
EncodedImage encoded_image;
fallback_wrapper_.Decode(encoded_image, false, nullptr, nullptr, -1);
// Hard coded expected value since libvpx is the software implementation name
« no previous file with comments | « webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc ('k') | webrtc/media/engine/webrtcvideoengine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698