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

Unified Diff: media/webm/webm_stream_parser.cc

Issue 13419002: Media Source dispatches inband text tracks (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 9 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/webm/webm_stream_parser.cc
diff --git a/media/webm/webm_stream_parser.cc b/media/webm/webm_stream_parser.cc
index 514a6d0bfaee80e8133a10c84d6bfd62a73b4e78..3e790538fb26e7b981051431cdc0c086c5c414a8 100644
--- a/media/webm/webm_stream_parser.cc
+++ b/media/webm/webm_stream_parser.cc
@@ -29,6 +29,8 @@ void WebMStreamParser::Init(const InitCB& init_cb,
const NewBuffersCB& audio_cb,
const NewBuffersCB& video_cb,
const NeedKeyCB& need_key_cb,
+ const TextTrackCB& text_track_cb,
+ const NewBuffersCB& text_cb,
const NewMediaSegmentCB& new_segment_cb,
const base::Closure& end_of_segment_cb,
const LogCB& log_cb) {
@@ -47,6 +49,8 @@ void WebMStreamParser::Init(const InitCB& init_cb,
audio_cb_ = audio_cb;
video_cb_ = video_cb;
need_key_cb_ = need_key_cb;
+ text_track_cb_ = text_track_cb;
+ text_cb_ = text_cb;
new_segment_cb_ = new_segment_cb;
end_of_segment_cb_ = end_of_segment_cb;
log_cb_ = log_cb;
@@ -198,6 +202,13 @@ int WebMStreamParser::ParseInfoAndTracks(const uint8* data, int size) {
return -1;
}
+ const std::set<int>& text_tracks = tracks_parser.text_tracks();
+
+ if (!text_tracks.empty()) {
+ // TODO(matthewjheaney): resolve cardinality, and track kind, name, lang
+ text_track_cb_.Run(kTextSubtitles, "", "");
+ }
+
cluster_parser_.reset(new WebMClusterParser(
info_parser.timecode_scale(),
tracks_parser.audio_track_num(),
@@ -268,6 +279,18 @@ int WebMStreamParser::ParseCluster(const uint8* data, int size) {
if (!video_buffers.empty() && !video_cb_.Run(video_buffers))
return -1;
+ WebMClusterParser::TextTrackIterator tt_iter =
+ cluster_parser_->CreateTextTrackIterator();
+
+ int tt_num;
+ const BufferQueue* tt_buffers;
+
+ // TODO(matthewjheaney): resolve cardinality
+ if (tt_iter(&tt_num, &tt_buffers)) {
+ if (!text_cb_.Run(*tt_buffers))
+ return -1;
+ }
+
if (cluster_ended)
end_of_segment_cb_.Run();

Powered by Google App Engine
This is Rietveld 408576698