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

Unified Diff: webkit/media/webmediaplayer_impl.cc

Issue 13419002: Media Source dispatches inband text tracks (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase 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
« no previous file with comments | « webkit/media/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/webmediaplayer_impl.cc
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index 7401fb585a41b49039c76c17a6669c26055dfa21..140a1e9695c842481cfb232ccde7e0320429653d 100644
--- a/webkit/media/webmediaplayer_impl.cc
+++ b/webkit/media/webmediaplayer_impl.cc
@@ -44,7 +44,9 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
#include "v8/include/v8.h"
#include "webkit/media/buffered_data_source.h"
+#include "webkit/media/texttrack_impl.h"
#include "webkit/media/webaudiosourceprovider_impl.h"
+#include "webkit/media/webinbandtexttrack_impl.h"
#include "webkit/media/webmediaplayer_delegate.h"
#include "webkit/media/webmediaplayer_params.h"
#include "webkit/media/webmediaplayer_util.h"
@@ -146,7 +148,8 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
chunk_demuxer_(NULL),
pending_repaint_(false),
pending_size_change_(false),
- video_frame_provider_client_(NULL) {
+ video_frame_provider_client_(NULL),
+ text_track_index_(0) {
media_log_->AddEvent(
media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED));
@@ -989,6 +992,23 @@ void WebMediaPlayerImpl::OnNeedKey(const std::string& key_system,
init_data_size);
}
+scoped_ptr<media::TextTrack>
+WebMediaPlayerImpl::OnTextTrack(media::TextKind kind,
+ const std::string& label,
+ const std::string& language) {
+ typedef WebInbandTextTrackImpl::Kind webkind_t;
+ const webkind_t webkind = static_cast<webkind_t>(kind);
+ const WebKit::WebString weblabel = WebKit::WebString::fromUTF8(label);
+ const WebKit::WebString weblanguage = WebKit::WebString::fromUTF8(language);
+
+ WebInbandTextTrackImpl* const text_track =
+ new WebInbandTextTrackImpl(webkind, weblabel, weblanguage,
+ text_track_index_++);
+ GetClient()->addTextTrack(text_track);
+
+ return scoped_ptr<media::TextTrack>(new TextTrackImpl(text_track));
+}
+
#define COMPILE_ASSERT_MATCHING_ENUM(name) \
COMPILE_ASSERT(static_cast<int>(WebKit::WebMediaPlayerClient::name) == \
static_cast<int>(media::Decryptor::k ## name), \
@@ -1084,6 +1104,7 @@ void WebMediaPlayerImpl::StartPipeline(WebKit::WebMediaSource* media_source) {
BIND_TO_RENDER_LOOP_1(&WebMediaPlayerImpl::OnDemuxerOpened,
base::Passed(&ms)),
BIND_TO_RENDER_LOOP_2(&WebMediaPlayerImpl::OnNeedKey, "", ""),
+ base::Bind(&WebMediaPlayerImpl::OnTextTrack, base::Unretained(this)),
base::Bind(&LogMediaSourceError, media_log_));
demuxer_.reset(chunk_demuxer_);
« no previous file with comments | « webkit/media/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698