| Index: media/webm/webm_stream_parser.cc
|
| diff --git a/media/webm/webm_stream_parser.cc b/media/webm/webm_stream_parser.cc
|
| index 828d3181ac9724c1ffc8a2c0762b8702ff349f85..796a1b3b0950bff38b6ebb7bfad2ca4cca918d72 100644
|
| --- a/media/webm/webm_stream_parser.cc
|
| +++ b/media/webm/webm_stream_parser.cc
|
| @@ -29,8 +29,7 @@ WebMStreamParser::~WebMStreamParser() {
|
|
|
| void WebMStreamParser::Init(const InitCB& init_cb,
|
| const NewConfigCB& config_cb,
|
| - const NewBuffersCB& audio_cb,
|
| - const NewBuffersCB& video_cb,
|
| + const NewBuffersCB& new_buffers_cb,
|
| const NewTextBuffersCB& text_cb,
|
| const NeedKeyCB& need_key_cb,
|
| const AddTextTrackCB& add_text_track_cb,
|
| @@ -41,7 +40,7 @@ void WebMStreamParser::Init(const InitCB& init_cb,
|
| DCHECK(init_cb_.is_null());
|
| DCHECK(!init_cb.is_null());
|
| DCHECK(!config_cb.is_null());
|
| - DCHECK(!audio_cb.is_null() || !video_cb.is_null());
|
| + DCHECK(!new_buffers_cb.is_null());
|
| DCHECK(!text_cb.is_null());
|
| DCHECK(!need_key_cb.is_null());
|
| DCHECK(!new_segment_cb.is_null());
|
| @@ -50,8 +49,7 @@ void WebMStreamParser::Init(const InitCB& init_cb,
|
| ChangeState(kParsingHeaders);
|
| init_cb_ = init_cb;
|
| config_cb_ = config_cb;
|
| - audio_cb_ = audio_cb;
|
| - video_cb_ = video_cb;
|
| + new_buffers_cb_ = new_buffers_cb;
|
| text_cb_ = text_cb;
|
| need_key_cb_ = need_key_cb;
|
| add_text_track_cb_ = add_text_track_cb;
|
| @@ -283,19 +281,18 @@ int WebMStreamParser::ParseCluster(const uint8* data, int size) {
|
|
|
| const BufferQueue& audio_buffers = cluster_parser_->audio_buffers();
|
| const BufferQueue& video_buffers = cluster_parser_->video_buffers();
|
| - base::TimeDelta cluster_start_time = cluster_parser_->cluster_start_time();
|
| bool cluster_ended = cluster_parser_->cluster_ended();
|
|
|
| - if (waiting_for_buffers_ && cluster_start_time != kNoTimestamp()) {
|
| - new_segment_cb_.Run(cluster_start_time);
|
| + if (waiting_for_buffers_ &&
|
| + cluster_parser_->cluster_start_time() != kNoTimestamp()) {
|
| + new_segment_cb_.Run();
|
| waiting_for_buffers_ = false;
|
| }
|
|
|
| - if (!audio_buffers.empty() && !audio_cb_.Run(audio_buffers))
|
| - return -1;
|
| -
|
| - if (!video_buffers.empty() && !video_cb_.Run(video_buffers))
|
| + if ((!audio_buffers.empty() || !video_buffers.empty()) &&
|
| + !new_buffers_cb_.Run(audio_buffers, video_buffers)) {
|
| return -1;
|
| + }
|
|
|
| WebMClusterParser::TextTrackIterator text_track_iter =
|
| cluster_parser_->CreateTextTrackIterator();
|
|
|