Chromium Code Reviews| Index: media/capture/webm_muxer.cc |
| diff --git a/media/capture/webm_muxer.cc b/media/capture/webm_muxer.cc |
| index b3f8e749546b9ef0776474727459407d15ebdf93..cb744f120d2d93109b7bf0556f19becd877e8db4 100644 |
| --- a/media/capture/webm_muxer.cc |
| +++ b/media/capture/webm_muxer.cc |
| @@ -28,19 +28,14 @@ WebmMuxer::WebmMuxer(const WriteDataCB& write_data_callback) |
| : track_index_(0), |
| write_data_callback_(write_data_callback), |
| position_(0) { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| DCHECK(!write_data_callback_.is_null()); |
| - segment_.Init(this); |
| - segment_.set_mode(mkvmuxer::Segment::kLive); |
| - segment_.OutputCues(false); |
| - |
| - mkvmuxer::SegmentInfo* const info = segment_.GetSegmentInfo(); |
| - info->set_writing_app("Chrome"); |
| - info->set_muxing_app("Chrome"); |
| + // Creation is done on a different thread than main activities. |
| + thread_checker_.DetachFromThread(); |
| } |
| WebmMuxer::~WebmMuxer() { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| + // No need to segment_.Finalize() since is not Seekable(), i.e. a live stream, |
| + // but is good practice. |
| segment_.Finalize(); |
| } |
| @@ -48,6 +43,7 @@ void WebmMuxer::OnEncodedVideo(const scoped_refptr<VideoFrame>& video_frame, |
| const base::StringPiece& encoded_data, |
| base::TimeTicks timestamp, |
| bool is_key_frame) { |
| + DVLOG(1) << __FUNCTION__ << " - " << encoded_data.size() << "B"; |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| if (!track_index_) { |
| // |track_index_|, cannot be zero (!), initialize WebmMuxer in that case. |
| @@ -66,6 +62,15 @@ void WebmMuxer::OnEncodedVideo(const scoped_refptr<VideoFrame>& video_frame, |
| void WebmMuxer::AddVideoTrack(const gfx::Size& frame_size, double frame_rate) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| + |
|
DaleCurtis
2015/09/09 00:04:26
DCHECK segment isn't already initialized? Or is re
mcasas
2015/09/09 00:22:15
Hmm mkvmuxer::Segment doesn't offer any method to
DaleCurtis
2015/09/09 20:05:27
Seems you should DCHECK that at the top of this fu
|
| + segment_.Init(this); |
| + segment_.set_mode(mkvmuxer::Segment::kLive); |
| + segment_.OutputCues(false); |
| + |
| + mkvmuxer::SegmentInfo* const info = segment_.GetSegmentInfo(); |
| + info->set_writing_app("Chrome"); |
| + info->set_muxing_app("Chrome"); |
| + |
| DCHECK_EQ(track_index_, 0u); |
| track_index_ = |
| segment_.AddVideoTrack(frame_size.width(), frame_size.height(), 0); |