Chromium Code Reviews| Index: media/filters/chunk_demuxer.cc |
| diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
| index 8d7cabae993bb95e5e820775f5ec400d53c0892f..7b9a3ccb2fea816df4476000a672f4b75f54efa5 100644 |
| --- a/media/filters/chunk_demuxer.cc |
| +++ b/media/filters/chunk_demuxer.cc |
| @@ -98,7 +98,8 @@ class SourceState { |
| SourceState( |
| scoped_ptr<StreamParser> stream_parser, |
| scoped_ptr<FrameProcessor> frame_processor, const LogCB& log_cb, |
| - const CreateDemuxerStreamCB& create_demuxer_stream_cb); |
| + const CreateDemuxerStreamCB& create_demuxer_stream_cb, |
| + const scoped_refptr<MediaLog>& media_log); |
| ~SourceState(); |
| @@ -235,6 +236,7 @@ class SourceState { |
| scoped_ptr<FrameProcessor> frame_processor_; |
| LogCB log_cb_; |
| + scoped_refptr<MediaLog> media_log_; |
| StreamParser::InitCB init_cb_; |
| // During Append(), OnNewConfigs() will trigger the initialization segment |
| @@ -256,7 +258,8 @@ class SourceState { |
| SourceState::SourceState(scoped_ptr<StreamParser> stream_parser, |
| scoped_ptr<FrameProcessor> frame_processor, |
| const LogCB& log_cb, |
| - const CreateDemuxerStreamCB& create_demuxer_stream_cb) |
| + const CreateDemuxerStreamCB& create_demuxer_stream_cb, |
| + const scoped_refptr<MediaLog>& media_log) |
| : create_demuxer_stream_cb_(create_demuxer_stream_cb), |
| timestamp_offset_during_append_(NULL), |
| new_media_segment_(false), |
| @@ -266,6 +269,7 @@ SourceState::SourceState(scoped_ptr<StreamParser> stream_parser, |
| video_(NULL), |
| frame_processor_(frame_processor.release()), |
| log_cb_(log_cb), |
| + media_log_(media_log), |
| auto_update_timestamp_offset_(false) { |
| DCHECK(!create_demuxer_stream_cb_.is_null()); |
| DCHECK(frame_processor_); |
| @@ -592,6 +596,10 @@ bool SourceState::OnNewConfigs( |
| bool success = true; |
| if (audio_config.IsValidConfig()) { |
| if (!audio_) { |
| + media_log_->SetBooleanProperty("found_audio_stream", true); |
| + media_log_->SetStringProperty( |
|
DaleCurtis
2014/11/19 00:03:57
This works today since we don't allow codec switch
watk
2014/11/19 19:18:09
Good point. I did talk to wolenetz@ about this, an
|
| + "audio_codec_name", |
| + AudioCodecName(audio_config.codec(), audio_config.sample_format())); |
| audio_ = create_demuxer_stream_cb_.Run(DemuxerStream::AUDIO); |
| if (!audio_) { |
| @@ -611,6 +619,9 @@ bool SourceState::OnNewConfigs( |
| if (video_config.IsValidConfig()) { |
| if (!video_) { |
| + media_log_->SetBooleanProperty("found_video_stream", true); |
| + media_log_->SetStringProperty("video_codec_name", |
| + VideoCodecName(video_config.codec())); |
| video_ = create_demuxer_stream_cb_.Run(DemuxerStream::VIDEO); |
| if (!video_) { |
| @@ -623,7 +634,6 @@ bool SourceState::OnNewConfigs( |
| return false; |
| } |
| } |
| - |
| success &= video_->UpdateVideoConfig(video_config, log_cb_); |
| } |
| @@ -1065,6 +1075,7 @@ void ChunkDemuxerStream::CompletePendingReadIfPossible_Locked() { |
| ChunkDemuxer::ChunkDemuxer(const base::Closure& open_cb, |
| const NeedKeyCB& need_key_cb, |
| const LogCB& log_cb, |
| + const scoped_refptr<MediaLog>& media_log, |
| bool splice_frames_enabled) |
| : state_(WAITING_FOR_INIT), |
| cancel_next_seek_(false), |
| @@ -1073,6 +1084,7 @@ ChunkDemuxer::ChunkDemuxer(const base::Closure& open_cb, |
| need_key_cb_(need_key_cb), |
| enable_text_(false), |
| log_cb_(log_cb), |
| + media_log_(media_log), |
| duration_(kNoTimestamp()), |
| user_specified_duration_(-1), |
| liveness_(DemuxerStream::LIVENESS_UNKNOWN), |
| @@ -1231,7 +1243,8 @@ ChunkDemuxer::Status ChunkDemuxer::AddId(const std::string& id, |
| new SourceState(stream_parser.Pass(), |
| frame_processor.Pass(), log_cb_, |
| base::Bind(&ChunkDemuxer::CreateDemuxerStream, |
| - base::Unretained(this)))); |
| + base::Unretained(this)), |
| + media_log_)); |
| SourceState::NewTextTrackCB new_text_track_cb; |