| Index: media/cast/receiver/frame_receiver.cc
|
| diff --git a/media/cast/receiver/frame_receiver.cc b/media/cast/receiver/frame_receiver.cc
|
| index 0e794cdb27562096834a3f728f55ed6851c4ffa6..6b5ef86a4c3c4e00598af30da09b4b5b0e5a87eb 100644
|
| --- a/media/cast/receiver/frame_receiver.cc
|
| +++ b/media/cast/receiver/frame_receiver.cc
|
| @@ -256,7 +256,9 @@ void FrameReceiver::EmitAvailableEncodedFrames() {
|
| }
|
| cast_environment_->PostTask(CastEnvironment::MAIN,
|
| FROM_HERE,
|
| - base::Bind(frame_request_queue_.front(),
|
| + base::Bind(&FrameReceiver::EmitOneFrame,
|
| + weak_factory_.GetWeakPtr(),
|
| + frame_request_queue_.front(),
|
| base::Passed(&encoded_frame)));
|
| frame_request_queue_.pop_front();
|
| }
|
| @@ -269,6 +271,13 @@ void FrameReceiver::EmitAvailableEncodedFramesAfterWaiting() {
|
| EmitAvailableEncodedFrames();
|
| }
|
|
|
| +void FrameReceiver::EmitOneFrame(const ReceiveEncodedFrameCallback& callback,
|
| + scoped_ptr<EncodedFrame> encoded_frame) const {
|
| + DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
|
| + if (!callback.is_null())
|
| + callback.Run(encoded_frame.Pass());
|
| +}
|
| +
|
| base::TimeTicks FrameReceiver::GetPlayoutTime(const EncodedFrame& frame) const {
|
| base::TimeDelta target_playout_delay = target_playout_delay_;
|
| if (frame.new_playout_delay_ms) {
|
|
|