| Index: webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
|
| diff --git a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
|
| index 7dc75ed9e301d2c0e521b6e2ceb67145bf2f1b1b..ed6541c3a838a0ec7c048889b34e87e0945996f0 100644
|
| --- a/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
|
| +++ b/webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc
|
| @@ -110,33 +110,38 @@ class MockVideoEncoder : public VideoEncoder {
|
| public:
|
| int32_t InitEncode(const VideoCodec* codecSettings,
|
| int32_t numberOfCores,
|
| - size_t maxPayloadSize) {
|
| + size_t maxPayloadSize) override {
|
| codec_ = *codecSettings;
|
| return 0;
|
| }
|
|
|
| int32_t Encode(const VideoFrame& inputImage,
|
| const CodecSpecificInfo* codecSpecificInfo,
|
| - const std::vector<VideoFrameType>* frame_types) {
|
| + const std::vector<VideoFrameType>* frame_types) override {
|
| return 0;
|
| }
|
|
|
| - int32_t RegisterEncodeCompleteCallback(EncodedImageCallback* callback) {
|
| + int32_t RegisterEncodeCompleteCallback(
|
| + EncodedImageCallback* callback) override {
|
| callback_ = callback;
|
| return 0;
|
| }
|
|
|
| - int32_t Release() {
|
| + int32_t Release() override {
|
| return 0;
|
| }
|
|
|
| - int32_t SetRates(uint32_t newBitRate, uint32_t frameRate) {
|
| + int32_t SetRates(uint32_t newBitRate, uint32_t frameRate) override {
|
| return 0;
|
| }
|
|
|
| MOCK_METHOD2(SetChannelParameters,
|
| int32_t(uint32_t packetLoss, int64_t rtt));
|
|
|
| + bool SupportsNativeHandle() const override {
|
| + return supports_native_handle_;
|
| + }
|
| +
|
| virtual ~MockVideoEncoder() {
|
| }
|
|
|
| @@ -152,7 +157,12 @@ class MockVideoEncoder : public VideoEncoder {
|
| callback_->Encoded(image, &codecSpecificInfo, NULL);
|
| }
|
|
|
| + void set_supports_native_handle(bool enabled) {
|
| + supports_native_handle_ = enabled;
|
| + }
|
| +
|
| private:
|
| + bool supports_native_handle_ = false;
|
| VideoCodec codec_;
|
| EncodedImageCallback* callback_;
|
| };
|
| @@ -382,5 +392,33 @@ TEST_F(TestSimulcastEncoderAdapterFake, EncodedCallbackForDifferentEncoders) {
|
| EXPECT_EQ(2, simulcast_index);
|
| }
|
|
|
| +TEST_F(TestSimulcastEncoderAdapterFake, SupportsNativeHandleForSingleStreams) {
|
| + TestVp8Simulcast::DefaultSettings(
|
| + &codec_, static_cast<const int*>(kTestTemporalLayerProfile));
|
| + codec_.numberOfSimulcastStreams = 1;
|
| + EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
| + adapter_->RegisterEncodeCompleteCallback(this);
|
| + ASSERT_EQ(1u, helper_->factory()->encoders().size());
|
| + helper_->factory()->encoders()[0]->set_supports_native_handle(true);
|
| + EXPECT_TRUE(adapter_->SupportsNativeHandle());
|
| + helper_->factory()->encoders()[0]->set_supports_native_handle(false);
|
| + EXPECT_FALSE(adapter_->SupportsNativeHandle());
|
| +}
|
| +
|
| +TEST_F(TestSimulcastEncoderAdapterFake,
|
| + SupportsNativeHandleDisabledForMultipleStreams) {
|
| + // TODO(pbos): Implement actual test (verify that it works) when implemented
|
| + // for multiple streams.
|
| + TestVp8Simulcast::DefaultSettings(
|
| + &codec_, static_cast<const int*>(kTestTemporalLayerProfile));
|
| + codec_.numberOfSimulcastStreams = 3;
|
| + EXPECT_EQ(0, adapter_->InitEncode(&codec_, 1, 1200));
|
| + adapter_->RegisterEncodeCompleteCallback(this);
|
| + ASSERT_EQ(3u, helper_->factory()->encoders().size());
|
| + for (MockVideoEncoder* encoder : helper_->factory()->encoders())
|
| + encoder->set_supports_native_handle(true);
|
| + EXPECT_FALSE(adapter_->SupportsNativeHandle());
|
| +}
|
| +
|
| } // namespace testing
|
| } // namespace webrtc
|
|
|