17f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org/* 27f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 37f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org * 47f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org * Use of this source code is governed by a BSD-style license 57f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org * that can be found in the LICENSE file in the root of the source 67f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org * tree. An additional intellectual property rights grant can be found 77f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org * in the file PATENTS. All contributing project authors may 87f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org * be found in the AUTHORS file in the root of the source tree. 97f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org */ 107f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org 119115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org#include "webrtc/modules/video_coding/codecs/vp8/vp8_factory.h" 129115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org 139115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org#include "webrtc/modules/video_coding/codecs/vp8/simulcast_encoder_adapter.h" 147f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org#include "webrtc/modules/video_coding/codecs/vp8/vp8_impl.h" 157f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org 167f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.orgnamespace webrtc { 177f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org 189115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.orgbool VP8EncoderFactoryConfig::use_simulcast_adapter_ = false; 199115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org 209115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.orgclass VP8EncoderImplFactory : public VideoEncoderFactory { 219115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org public: 2214665ff7d4024d07e58622f498b23fd980001871kjellander@webrtc.org VideoEncoder* Create() override { return new VP8EncoderImpl(); } 239115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org 2414665ff7d4024d07e58622f498b23fd980001871kjellander@webrtc.org void Destroy(VideoEncoder* encoder) override { delete encoder; } 259115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org 269115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org virtual ~VP8EncoderImplFactory() {} 279115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org}; 289115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org 297f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.orgVP8Encoder* VP8Encoder::Create() { 309115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org if (VP8EncoderFactoryConfig::use_simulcast_adapter()) { 31f18fba2f7b3d1fad7b7b38a9a5dc281bef06c50epbos@webrtc.org return new SimulcastEncoderAdapter(new VP8EncoderImplFactory()); 329115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org } else { 339115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org return new VP8EncoderImpl(); 349115cde6c9c8f5d749b349d7d10a570e4cb32803pbos@webrtc.org } 357f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org} 367f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org 377f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.orgVP8Decoder* VP8Decoder::Create() { 387f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org return new VP8DecoderImpl(); 397f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org} 407f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org 417f52a6ef2b5579f05e6d66a77f4dba8c1c0e8985wu@webrtc.org} // namespace webrtc 42