Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3736)

Unified Diff: media/blink/webmediaplayer_impl.h

Issue 2402563002: Keep reference to CDM to avoid it's premature destruction (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/blink/webmediaplayer_impl.h
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
index 16f3bbdbec91f6973d68da6e9dcb52e15f4c662f..aa00db9c56145ae860c7c70ceeef6c49a1460fd4 100644
--- a/media/blink/webmediaplayer_impl.h
+++ b/media/blink/webmediaplayer_impl.h
@@ -67,6 +67,7 @@ class GLES2Interface;
}
namespace media {
+class CdmSessionAdapter;
class ChunkDemuxer;
class GpuVideoAcceleratorFactories;
class MediaLog;
@@ -74,6 +75,7 @@ class UrlIndex;
class VideoFrameCompositor;
class WatchTimeReporter;
class WebAudioSourceProviderImpl;
+class WebContentDecryptionModuleImpl;
class WebMediaPlayerDelegate;
class WebTextTrackImpl;
@@ -306,9 +308,10 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
// tracks separately in WebSourceBufferImpl.
void OnFFmpegMediaTracksUpdated(std::unique_ptr<MediaTracks> tracks);
- // Sets |cdm_context| on the pipeline and fires |cdm_attached_cb| when done.
- // Parameter order is reversed for easy binding.
- void SetCdm(const CdmAttachedCB& cdm_attached_cb, CdmContext* cdm_context);
+ // Sets CdmContext from |cdm| on the pipeline and fires |cdm_attached_cb|
+ // when done.
+ void SetCdm(WebContentDecryptionModuleImpl* cdm,
+ const CdmAttachedCB& cdm_attached_cb);
// Called when a CDM has been attached to the |pipeline_|.
void OnCdmAttached(bool success);
@@ -489,6 +492,10 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
// Whether a CDM has been successfully attached.
bool is_cdm_attached_;
+ // If a CDM is attached keep a reference to it, so that it is not destroyed
+ // until after the pipeline is done with it.
+ scoped_refptr<CdmSessionAdapter> cdm_adapter_;
xhwang 2016/10/07 05:02:14 We have two cdm_adapter already, this variable nam
jrummell 2016/10/07 20:15:30 Changed.
+
#if defined(OS_ANDROID) // WMPI_CAST
WebMediaPlayerCast cast_impl_;
#endif

Powered by Google App Engine
This is Rietveld 408576698