summaryrefslogtreecommitdiffstats
path: root/chromecast/media/cdm/browser_cdm_cast.h
diff options
context:
space:
mode:
authorhalliwell <halliwell@chromium.org>2015-08-07 10:24:11 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-07 17:24:41 +0000
commitdad541d95f2df33f23d52dce79151291918a7a67 (patch)
tree9c968f46e9a1f35a53813cba211de1f57fc8476a /chromecast/media/cdm/browser_cdm_cast.h
parent43556713374f9ef0b5a5254f0a4116fe5b1c4eb3 (diff)
downloadchromium_src-dad541d95f2df33f23d52dce79151291918a7a67.zip
chromium_src-dad541d95f2df33f23d52dce79151291918a7a67.tar.gz
chromium_src-dad541d95f2df33f23d52dce79151291918a7a67.tar.bz2
Load CMA backend from shared library
* CMA backend interfaces moved into chromecast/public/media * CMA backend implementation loaded from libcast_media through CastMediaShlib * Backend API changes to remove dependency on Chromium types: * DecryptContext replaced with CastKeySystem * scoped_refptr replaced with raw pointers * In particular, DecoderBufferBase replaced in the backend API with non-refcounted DecoderBuffer. In order to allow us to keep using refcounting and in particular use DecoderBufferBase in the rest of our pipeline, it gets wrapped in a DecoderBufferImpl (implementation of DecoderBuffer) for passing to the backend. So backends must delete the buffer pointer they're given but this is actually just decrementing the refcount on the underlying buffer. * base::Callback replaced with abstract interfaces * base::TimeDelta replaced with chromecast::TimeDelta in backend interface, essentially a stripped-down copy * NonThreadSafe removed (implementations can use ThreadChecker) * TaskRunner interface provides PostTask/PostDelayedTask service to backend implementations * Backend ownership / factory model changed. Now, backend implementations return a MediaPipelineBackend which manages ownership and hookup of all the components. It returns access to them as raw pointers. The pipeline manages the lifetime of the MediaPipelineBackend instance. * GetIsCodecSupportedOnChromecast refactored to remove calls back into cast_shell from backends (implementation can just return 'default' to indicate default logic should apply, including HDMI capabilities. BUG=508534 Review URL: https://codereview.chromium.org/1257013003 Cr-Commit-Position: refs/heads/master@{#342370}
Diffstat (limited to 'chromecast/media/cdm/browser_cdm_cast.h')
-rw-r--r--chromecast/media/cdm/browser_cdm_cast.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/chromecast/media/cdm/browser_cdm_cast.h b/chromecast/media/cdm/browser_cdm_cast.h
index 0e24a51..a4c80fb 100644
--- a/chromecast/media/cdm/browser_cdm_cast.h
+++ b/chromecast/media/cdm/browser_cdm_cast.h
@@ -28,7 +28,7 @@ class PlayerTrackerImpl;
namespace chromecast {
namespace media {
-class DecryptContext;
+class DecryptContextImpl;
// BrowserCdmCast is an extension of BrowserCdm that provides common
// functionality across CDM implementations.
@@ -60,7 +60,7 @@ class BrowserCdmCast : public ::media::BrowserCdm {
// Returns the decryption context needed to decrypt frames encrypted with
// |key_id|.
// Returns null if |key_id| is not available.
- virtual scoped_refptr<DecryptContext> GetDecryptContext(
+ virtual scoped_ptr<DecryptContextImpl> GetDecryptContext(
const std::string& key_id) const = 0;
protected: