| Index: media/formats/webm/webm_cluster_parser.cc
|
| diff --git a/media/formats/webm/webm_cluster_parser.cc b/media/formats/webm/webm_cluster_parser.cc
|
| index 67e6d82576c9755e1b4a995da25645f8f8e7cc37..9a921f37e7bb523df6d6f548fec75dcac380d28a 100644
|
| --- a/media/formats/webm/webm_cluster_parser.cc
|
| +++ b/media/formats/webm/webm_cluster_parser.cc
|
| @@ -292,7 +292,7 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
|
| }
|
|
|
| Track* track = NULL;
|
| - bool is_text = false;
|
| + StreamParserBuffer::Type buffer_type = StreamParserBuffer::kAudio;
|
| std::string encryption_key_id;
|
| if (track_num == audio_.track_num()) {
|
| track = &audio_;
|
| @@ -300,6 +300,7 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
|
| } else if (track_num == video_.track_num()) {
|
| track = &video_;
|
| encryption_key_id = video_encryption_key_id_;
|
| + buffer_type = StreamParserBuffer::kVideo;
|
| } else if (ignored_tracks_.find(track_num) != ignored_tracks_.end()) {
|
| return true;
|
| } else if (Track* const text_track = FindTextTrack(track_num)) {
|
| @@ -308,7 +309,7 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
|
| if (block_duration < 0) // not specified
|
| return false;
|
| track = text_track;
|
| - is_text = true;
|
| + buffer_type = StreamParserBuffer::kText;
|
| } else {
|
| MEDIA_LOG(log_cb_) << "Unexpected track number " << track_num;
|
| return false;
|
| @@ -320,7 +321,7 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
|
| (cluster_timecode_ + timecode) * timecode_multiplier_);
|
|
|
| scoped_refptr<StreamParserBuffer> buffer;
|
| - if (!is_text) {
|
| + if (buffer_type != StreamParserBuffer::kText) {
|
| // The first bit of the flags is set when a SimpleBlock contains only
|
| // keyframes. If this is a Block, then inspection of the payload is
|
| // necessary to determine whether it contains a keyframe or not.
|
| @@ -345,7 +346,8 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
|
| buffer = StreamParserBuffer::CopyFrom(
|
| data + data_offset, size - data_offset,
|
| additional, additional_size,
|
| - is_keyframe);
|
| + is_keyframe, buffer_type);
|
| + buffer->set_text_track_number(track_num);
|
|
|
| if (decrypt_config)
|
| buffer->set_decrypt_config(decrypt_config.Pass());
|
| @@ -363,7 +365,8 @@ bool WebMClusterParser::OnBlock(bool is_simple_block, int track_num,
|
| content.length(),
|
| &side_data[0],
|
| side_data.size(),
|
| - true);
|
| + true, StreamParserBuffer::kText);
|
| + buffer->set_text_track_number(track_num);
|
| }
|
|
|
| buffer->set_timestamp(timestamp);
|
|
|