1 /* 2 * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "media/engine/fake_video_codec_factory.h" 12 13 #include <memory> 14 15 #include "api/video_codecs/sdp_video_format.h" 16 #include "api/video_codecs/video_decoder.h" 17 #include "api/video_codecs/video_encoder.h" 18 #include "modules/include/module_common_types.h" 19 #include "modules/video_coding/include/video_codec_interface.h" 20 #include "modules/video_coding/include/video_error_codes.h" 21 #include "rtc_base/checks.h" 22 #include "rtc_base/logging.h" 23 #include "test/fake_decoder.h" 24 #include "test/fake_encoder.h" 25 26 namespace { 27 28 static const char kFakeCodecFactoryCodecName[] = "FakeCodec"; 29 30 } // anonymous namespace 31 32 namespace webrtc { 33 34 FakeVideoEncoderFactory::FakeVideoEncoderFactory() = default; 35 36 // static CreateVideoEncoder()37std::unique_ptr<VideoEncoder> FakeVideoEncoderFactory::CreateVideoEncoder() { 38 return std::make_unique<test::FakeEncoder>(Clock::GetRealTimeClock()); 39 } 40 GetSupportedFormats() const41std::vector<SdpVideoFormat> FakeVideoEncoderFactory::GetSupportedFormats() 42 const { 43 return std::vector<SdpVideoFormat>( 44 1, SdpVideoFormat(kFakeCodecFactoryCodecName)); 45 } 46 QueryVideoEncoder(const SdpVideoFormat & format) const47VideoEncoderFactory::CodecInfo FakeVideoEncoderFactory::QueryVideoEncoder( 48 const SdpVideoFormat& format) const { 49 return VideoEncoderFactory::CodecInfo{false, false}; 50 } 51 CreateVideoEncoder(const SdpVideoFormat & format)52std::unique_ptr<VideoEncoder> FakeVideoEncoderFactory::CreateVideoEncoder( 53 const SdpVideoFormat& format) { 54 return std::make_unique<test::FakeEncoder>(Clock::GetRealTimeClock()); 55 } 56 57 FakeVideoDecoderFactory::FakeVideoDecoderFactory() = default; 58 59 // static CreateVideoDecoder()60std::unique_ptr<VideoDecoder> FakeVideoDecoderFactory::CreateVideoDecoder() { 61 return std::make_unique<test::FakeDecoder>(); 62 } 63 GetSupportedFormats() const64std::vector<SdpVideoFormat> FakeVideoDecoderFactory::GetSupportedFormats() 65 const { 66 return std::vector<SdpVideoFormat>( 67 1, SdpVideoFormat(kFakeCodecFactoryCodecName)); 68 } 69 CreateVideoDecoder(const SdpVideoFormat & format)70std::unique_ptr<VideoDecoder> FakeVideoDecoderFactory::CreateVideoDecoder( 71 const SdpVideoFormat& format) { 72 return std::make_unique<test::FakeDecoder>(); 73 } 74 75 } // namespace webrtc 76