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

Unified Diff: content/renderer/media/android/media_source_delegate.cc

Issue 23545029: EME: Handle NO_KEY and resume playback after key is added. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase only Created 7 years, 3 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: content/renderer/media/android/media_source_delegate.cc
diff --git a/content/renderer/media/android/media_source_delegate.cc b/content/renderer/media/android/media_source_delegate.cc
index 6271b71373c8c31252168768cb2593cbcf109a77..f4299e43da1b5d6462d9529f26f16cd8f4b93618 100644
--- a/content/renderer/media/android/media_source_delegate.cc
+++ b/content/renderer/media/android/media_source_delegate.cc
@@ -4,6 +4,10 @@
#include "content/renderer/media/android/media_source_delegate.h"
+#include <limits>
+#include <string>
+#include <vector>
+
#include "base/message_loop/message_loop_proxy.h"
#include "base/strings/string_number_conversions.h"
#include "content/renderer/media/android/webmediaplayer_proxy_android.h"
@@ -83,7 +87,9 @@ MediaSourceDelegate::MediaSourceDelegate(
video_stream_(NULL),
seeking_(false),
last_seek_request_id_(0),
+#if defined(GOOGLE_TV)
key_added_(false),
+#endif
access_unit_size_(0) {
}
@@ -632,19 +638,17 @@ void MediaSourceDelegate::OnMediaConfigRequest() {
NotifyDemuxerReady();
}
-void MediaSourceDelegate::NotifyKeyAdded(const std::string& key_system) {
#if defined(GOOGLE_TV)
+// TODO(kjyoun): Enhance logic to detect when to call NotifyDemuxerReady()
+// For now, we call it when the first key is added. See http://crbug.com/255781
+void MediaSourceDelegate::NotifyKeyAdded(const std::string& key_system) {
if (!media_loop_->BelongsToCurrentThread()) {
media_loop_->PostTask(FROM_HERE,
base::Bind(&MediaSourceDelegate::NotifyKeyAdded,
base::Unretained(this), key_system));
return;
}
-#endif
DVLOG(1) << "NotifyKeyAdded() : " << player_id_;
- // TODO(kjyoun): Enhance logic to detect when to call NotifyDemuxerReady()
- // For now, we calls it when the first key is added. See
- // http://crbug.com/255781
if (key_added_)
return;
key_added_ = true;
@@ -654,6 +658,7 @@ void MediaSourceDelegate::NotifyKeyAdded(const std::string& key_system) {
if (HasEncryptedStream())
NotifyDemuxerReady();
}
+#endif // defined(GOOGLE_TV)
bool MediaSourceDelegate::CanNotifyDemuxerReady() {
DCHECK_BELONG_TO_MEDIA_LOOP();
@@ -664,8 +669,10 @@ bool MediaSourceDelegate::CanNotifyDemuxerReady() {
// See http://crbug.com/255781
if (!is_demuxer_ready_)
return false;
+#if defined(GOOGLE_TV)
if (HasEncryptedStream() && !key_added_)
return false;
+#endif // defined(GOOGLE_TV)
return true;
}
@@ -694,9 +701,9 @@ void MediaSourceDelegate::NotifyDemuxerReady() {
config.extra_data(), config.extra_data() + config.extra_data_size());
}
configs->duration_ms = GetDurationMs();
- configs->key_system = HasEncryptedStream() ? key_system_ : "";
#if defined(GOOGLE_TV)
+ configs->key_system = HasEncryptedStream() ? key_system_ : "";
send_demuxer_ready_cb_.Run(configs.Pass());
#else
SendDemuxerReady(configs.Pass());
« no previous file with comments | « content/renderer/media/android/media_source_delegate.h ('k') | content/renderer/media/android/webmediaplayer_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698