Chromium Code Reviews| Index: webkit/media/crypto/ppapi/cdm_video_decoder_initializer.cc |
| diff --git a/webkit/media/crypto/ppapi/cdm_video_decoder_initializer.cc b/webkit/media/crypto/ppapi/cdm_video_decoder_initializer.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..894f8a39d1e1cb200b7d40e4f6ff8de3d63774eb |
| --- /dev/null |
| +++ b/webkit/media/crypto/ppapi/cdm_video_decoder_initializer.cc |
| @@ -0,0 +1,59 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
|
ddorwin
2012/11/17 02:56:22
It's odd to have a .cc without a matching header.
Tom Finegan
2012/11/17 04:35:06
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/basictypes.h" |
| +#include "base/compiler_specific.h" |
|
ddorwin
2012/11/17 02:56:22
Why is this needed?
Tom Finegan
2012/11/17 04:35:06
Done.
|
| +#include "base/memory/scoped_ptr.h" |
| +#include "webkit/media/crypto/ppapi/cdm_video_decoder.h" |
| +#include "webkit/media/crypto/ppapi/content_decryption_module.h" |
| + |
| +#if defined(CLEAR_KEY_CDM_USE_FAKE_VIDEO_DECODER) |
| +#include "webkit/media/crypto/ppapi/fake_cdm_video_decoder.h" |
| +#endif |
| + |
| +#if defined(CLEAR_KEY_CDM_USE_FFMPEG_DECODER) |
| +#include "webkit/media/crypto/ppapi/ffmpeg_cdm_video_decoder.h" |
| +#endif |
| + |
| +#if defined(CLEAR_KEY_CDM_USE_LIBVPX_DECODER) |
| +#include "webkit/media/crypto/ppapi/libvpx_cdm_video_decoder.h" |
| +#endif |
| + |
| +namespace webkit_media { |
| + |
| +scoped_ptr<CdmVideoDecoder> InitializeVideoDecoder( |
| + cdm::Allocator* allocator, |
| + const cdm::VideoDecoderConfig& config) { |
| + scoped_ptr<CdmVideoDecoder> video_decoder; |
| +#if defined(CLEAR_KEY_CDM_USE_FAKE_VIDEO_DECODER) |
| + video_decoder.reset(new FakeCdmVideoDecoder(allocator)); |
| + |
| + if (!video_decoder->Initialize(config)) |
| + video_decoder.reset(); |
| +#else |
| + |
| +#if defined(CLEAR_KEY_CDM_USE_LIBVPX_DECODER) |
| + if (config.codec == cdm::VideoDecoderConfig::kCodecVp8) { |
| + video_decoder.reset(new LibvpxCdmVideoDecoder(allocator)); |
| + |
| + if (!video_decoder->Initialize(config)) |
| + video_decoder.reset(); |
| + |
| + return video_decoder.Pass(); |
| + } |
| +#endif |
| + |
| +#if defined(CLEAR_KEY_CDM_USE_FFMPEG_DECODER) |
| + video_decoder.reset(new FFmpegCdmVideoDecoder(allocator)); |
| + |
| + if (!video_decoder->Initialize(config)) |
| + video_decoder.reset(); |
| +#endif |
| + |
| +#endif // CLEAR_KEY_CDM_USE_FAKE_VIDEO_DECODER |
| + |
| + return video_decoder.Pass(); |
| +} |
| + |
| +} // namespace webkit_media |