Index: webkit/media/crypto/ppapi/cdm_video_decoder.cc |
diff --git a/webkit/media/crypto/ppapi/cdm_video_decoder.cc b/webkit/media/crypto/ppapi/cdm_video_decoder.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..eb7fe16472cfc147dae72dc0d789d5636e119f99 |
--- /dev/null |
+++ b/webkit/media/crypto/ppapi/cdm_video_decoder.cc |
@@ -0,0 +1,58 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// 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/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> CreateVideoDecoder( |
+ cdm::Allocator* allocator, |
+ const cdm::VideoDecoderConfig& config) { |
+ scoped_ptr<CdmVideoDecoder> video_decoder; |
+#if defined(CLEAR_KEY_CDM_USE_FAKE_VIDEO_DECODER) |
xhwang
2012/11/20 06:46:20
I wonder if we can use getenv() to make this a run
Tom Finegan
2012/12/03 23:48:55
The only problem I see with doing it the way you s
xhwang
2012/12/04 01:31:03
I don't think it an issue to linkin all decoders f
ddorwin
2012/12/04 04:22:37
Right, we're not worried about size since we never
|
+ 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 |