diff options
author | halliwell <halliwell@chromium.org> | 2015-08-07 10:24:11 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-07 17:24:41 +0000 |
commit | dad541d95f2df33f23d52dce79151291918a7a67 (patch) | |
tree | 9c968f46e9a1f35a53813cba211de1f57fc8476a /chromecast/media/cdm/browser_cdm_cast.h | |
parent | 43556713374f9ef0b5a5254f0a4116fe5b1c4eb3 (diff) | |
download | chromium_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.h | 4 |
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: |