| Index: media/capture/webm_muxer.cc
|
| diff --git a/media/capture/webm_muxer.cc b/media/capture/webm_muxer.cc
|
| index 8f6704101308e3f6e9e1fb6476e4090cfbab5100..a04901b9d1b7aee8705d11aeb4661b7c76d0b215 100644
|
| --- a/media/capture/webm_muxer.cc
|
| +++ b/media/capture/webm_muxer.cc
|
| @@ -6,11 +6,14 @@
|
|
|
| #include <limits>
|
|
|
| +#include "base/bind.h"
|
| +
|
| namespace media {
|
|
|
| WebmMuxer::WebmMuxer(const WriteDataCB& write_data_callback)
|
| : write_data_callback_(write_data_callback),
|
| - position_(0) {
|
| + position_(0),
|
| + weak_factory_(this) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| segment_.Init(this);
|
| segment_.set_mode(mkvmuxer::Segment::kLive);
|
| @@ -26,8 +29,8 @@ WebmMuxer::~WebmMuxer() {
|
| segment_.Finalize();
|
| }
|
|
|
| -uint64_t WebmMuxer::AddVideoTrack(const gfx::Size& frame_size,
|
| - double frame_rate) {
|
| +WebmMuxer::OnEncodedVideoCB
|
| +WebmMuxer::AddVideoTrack(const gfx::Size& frame_size, double frame_rate) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| const uint64_t track_index =
|
| @@ -50,7 +53,8 @@ uint64_t WebmMuxer::AddVideoTrack(const gfx::Size& frame_size,
|
| // http://www.webmproject.org/docs/container/#muxer-guidelines
|
| DCHECK_EQ(segment_.GetSegmentInfo()->timecode_scale(), 1000000ull);
|
|
|
| - return track_index;
|
| + return base::Bind(&WebmMuxer::OnEncodedVideo, weak_factory_.GetWeakPtr(),
|
| + track_index);
|
| }
|
|
|
| void WebmMuxer::OnEncodedVideo(uint64_t track_number,
|
|
|