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