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

Unified Diff: webkit/media/android/media_source_delegate.h

Issue 14247018: Implement WebRTC in Chrome for TV (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Dongwon and Yuncheol's comments Created 7 years, 7 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: webkit/media/android/media_source_delegate.h
diff --git a/webkit/media/android/media_source_delegate.h b/webkit/media/android/media_source_delegate.h
index 482f110465d6857a82fac0e185c598cf0f1fb5b8..08f55129764678d8a27b4f7aa75ce0c47929440f 100644
--- a/webkit/media/android/media_source_delegate.h
+++ b/webkit/media/android/media_source_delegate.h
@@ -31,6 +31,7 @@ class WebMediaSource;
namespace webkit_media {
+class KeyHandlingDemuxer;
class ProxyDecryptor;
class WebMediaPlayerProxyAndroid;
@@ -38,16 +39,19 @@ class MediaSourceDelegate : public media::DemuxerHost {
public:
typedef base::Callback<void(WebKit::WebMediaPlayer::NetworkState)>
UpdateNetworkStateCB;
+ typedef base::Callback<void(const media::Demuxer*)> DestroyDemuxerCB;
- MediaSourceDelegate(WebKit::WebFrame* frame,
- WebKit::WebMediaPlayerClient* client,
- WebMediaPlayerProxyAndroid* proxy,
+ MediaSourceDelegate(WebMediaPlayerProxyAndroid* proxy,
int player_id,
- media::MediaLog* media_log);
+ const UpdateNetworkStateCB& update_network_state_cb);
virtual ~MediaSourceDelegate();
- void Initialize(scoped_ptr<WebKit::WebMediaSource> media_source,
- const UpdateNetworkStateCB& update_network_state_cb);
+ void InitializeMediaSource(WebKit::WebFrame* frame,
+ WebKit::WebMediaPlayerClient* client,
+ WebKit::WebMediaSource* media_source,
+ media::MediaLog* media_log);
+
+ void InitializeMediaStream(media::Demuxer* demuxer);
const WebKit::WebTimeRanges& Buffered();
size_t DecodedFrameCount() const;
@@ -85,24 +89,8 @@ class MediaSourceDelegate : public media::DemuxerHost {
virtual void SetDuration(base::TimeDelta duration) OVERRIDE;
virtual void OnDemuxerError(media::PipelineStatus status) OVERRIDE;
- // Callbacks for ChunkDemuxer & Decryptor.
+ // Callbacks for Demuxer
void OnDemuxerInitDone(media::PipelineStatus status);
- void OnDemuxerOpened();
- void OnKeyAdded(const std::string& key_system, const std::string& session_id);
- void OnKeyError(const std::string& key_system,
- const std::string& session_id,
- media::Decryptor::KeyError error_code,
- int system_code);
- void OnKeyMessage(const std::string& key_system,
- const std::string& session_id,
- const std::string& message,
- const std::string& default_url);
- void OnNeedKey(const std::string& key_system,
- const std::string& type,
- const std::string& session_id,
- scoped_ptr<uint8[]> init_data,
- int init_data_size);
- void OnDecryptorReady(media::Decryptor*);
// Reads an access unit from the demuxer stream |stream| and stores it in
// the |index|th access unit in |params|.
@@ -121,36 +109,24 @@ class MediaSourceDelegate : public media::DemuxerHost {
base::WeakPtrFactory<MediaSourceDelegate> weak_this_;
- WebKit::WebMediaPlayerClient* const client_;
WebMediaPlayerProxyAndroid* proxy_;
int player_id_;
- scoped_refptr<media::MediaLog> media_log_;
UpdateNetworkStateCB update_network_state_cb_;
+ DestroyDemuxerCB destroy_demuxer_cb_;
- scoped_ptr<media::ChunkDemuxer> chunk_demuxer_;
- scoped_ptr<WebKit::WebMediaSource> media_source_;
+ scoped_ptr<KeyHandlingDemuxer> demuxer_;
media::PipelineStatistics statistics_;
media::Ranges<base::TimeDelta> buffered_time_ranges_;
// Keep a list of buffered time ranges.
WebKit::WebTimeRanges buffered_web_time_ranges_;
- // The decryptor that manages decryption keys and decrypts encrypted frames.
- scoped_ptr<ProxyDecryptor> decryptor_;
-
- // The currently selected key system. Empty string means that no key system
- // has been selected.
- WebKit::WebString current_key_system_;
-
- // Temporary for EME v0.1. In the future the init data type should be passed
- // through GenerateKeyRequest() directly from WebKit.
- std::string init_data_type_;
-
scoped_ptr<media::MediaPlayerHostMsg_ReadFromDemuxerAck_Params> audio_params_;
scoped_ptr<media::MediaPlayerHostMsg_ReadFromDemuxerAck_Params> video_params_;
bool seeking_;
+ size_t access_unit_size_;
DISALLOW_COPY_AND_ASSIGN(MediaSourceDelegate);
};

Powered by Google App Engine
This is Rietveld 408576698