| 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();
|
|
|
|
|