| Index: webrtc/video/video_encoder_unittest.cc
|
| diff --git a/webrtc/video/video_encoder_unittest.cc b/webrtc/video/video_encoder_unittest.cc
|
| index ac006bb872a0515e77b9788c47bebf0292057781..84ac4fd46699366eaa01ca03825efb5efd29c6a5 100644
|
| --- a/webrtc/video/video_encoder_unittest.cc
|
| +++ b/webrtc/video/video_encoder_unittest.cc
|
| @@ -11,6 +11,7 @@
|
| #include "webrtc/video_encoder.h"
|
|
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +#include "webrtc/modules/video_coding/include/video_codec_interface.h"
|
| #include "webrtc/modules/video_coding/include/video_error_codes.h"
|
|
|
| namespace webrtc {
|
| @@ -36,6 +37,13 @@ class VideoEncoderSoftwareFallbackWrapperTest : public ::testing::Test {
|
| const CodecSpecificInfo* codec_specific_info,
|
| const std::vector<FrameType>* frame_types) override {
|
| ++encode_count_;
|
| + if (encode_complete_callback_ &&
|
| + encode_return_code_ == WEBRTC_VIDEO_CODEC_OK) {
|
| + CodecSpecificInfo info;
|
| + info.codec_name = ImplementationName();
|
| + encode_complete_callback_->OnEncodedImage(EncodedImage(), &info,
|
| + nullptr);
|
| + }
|
| return encode_return_code_;
|
| }
|
|
|
| @@ -90,14 +98,19 @@ class VideoEncoderSoftwareFallbackWrapperTest : public ::testing::Test {
|
| const CodecSpecificInfo* codec_specific_info,
|
| const RTPFragmentationHeader* fragmentation) override {
|
| ++callback_count_;
|
| + last_codec_name_ = codec_specific_info->codec_name;
|
| return Result(Result::OK, callback_count_);
|
| }
|
| int callback_count_ = 0;
|
| + std::string last_codec_name_;
|
| };
|
|
|
| void UtilizeFallbackEncoder();
|
| void FallbackFromEncodeRequest();
|
| void EncodeFrame();
|
| + void CheckLastEncoderName(const char* expected_name) {
|
| + EXPECT_STREQ(expected_name, callback_.last_codec_name_.c_str());
|
| + }
|
|
|
| FakeEncodedImageCallback callback_;
|
| CountingFakeEncoder fake_encoder_;
|
| @@ -265,13 +278,20 @@ TEST_F(VideoEncoderSoftwareFallbackWrapperTest,
|
| EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, fallback_wrapper_.Release());
|
| }
|
|
|
| +TEST_F(VideoEncoderSoftwareFallbackWrapperTest, ReportsImplementationName) {
|
| + VideoCodec codec = {};
|
| + fallback_wrapper_.RegisterEncodeCompleteCallback(&callback_);
|
| + fallback_wrapper_.InitEncode(&codec, 2, kMaxPayloadSize);
|
| + EncodeFrame();
|
| + CheckLastEncoderName("fake-encoder");
|
| +}
|
| +
|
| TEST_F(VideoEncoderSoftwareFallbackWrapperTest,
|
| ReportsFallbackImplementationName) {
|
| UtilizeFallbackEncoder();
|
| // Hard coded expected value since libvpx is the software implementation name
|
| // for VP8. Change accordingly if the underlying implementation does.
|
| - EXPECT_STREQ("libvpx (fallback from: fake-encoder)",
|
| - fallback_wrapper_.ImplementationName());
|
| + CheckLastEncoderName("libvpx");
|
| }
|
|
|
| } // namespace webrtc
|
|
|