| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/cast/sender/size_adaptable_video_encoder_base.h" | 5 #include "media/cast/sender/size_adaptable_video_encoder_base.h" |
| 6 | 6 |
| 7 #include <utility> |
| 8 |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 8 #include "base/location.h" | 10 #include "base/location.h" |
| 9 #include "media/base/video_frame.h" | 11 #include "media/base/video_frame.h" |
| 10 | 12 |
| 11 namespace media { | 13 namespace media { |
| 12 namespace cast { | 14 namespace cast { |
| 13 | 15 |
| 14 SizeAdaptableVideoEncoderBase::SizeAdaptableVideoEncoderBase( | 16 SizeAdaptableVideoEncoderBase::SizeAdaptableVideoEncoderBase( |
| 15 const scoped_refptr<CastEnvironment>& cast_environment, | 17 const scoped_refptr<CastEnvironment>& cast_environment, |
| 16 const VideoSenderConfig& video_config, | 18 const VideoSenderConfig& video_config, |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 if (frames_in_encoder_ == kEncoderIsInitializing) | 127 if (frames_in_encoder_ == kEncoderIsInitializing) |
| 126 return; // Already spawned. | 128 return; // Already spawned. |
| 127 | 129 |
| 128 DestroyEncoder(); | 130 DestroyEncoder(); |
| 129 frames_in_encoder_ = kEncoderIsInitializing; | 131 frames_in_encoder_ = kEncoderIsInitializing; |
| 130 OnEncoderStatusChange(STATUS_CODEC_REINIT_PENDING); | 132 OnEncoderStatusChange(STATUS_CODEC_REINIT_PENDING); |
| 131 VLOG(1) << "Creating replacement video encoder (for frame size change from " | 133 VLOG(1) << "Creating replacement video encoder (for frame size change from " |
| 132 << frame_size_.ToString() << " to " | 134 << frame_size_.ToString() << " to " |
| 133 << size_needed.ToString() << ")."; | 135 << size_needed.ToString() << ")."; |
| 134 frame_size_ = size_needed; | 136 frame_size_ = size_needed; |
| 135 encoder_ = CreateEncoder().Pass(); | 137 encoder_ = CreateEncoder(); |
| 136 DCHECK(encoder_); | 138 DCHECK(encoder_); |
| 137 } | 139 } |
| 138 | 140 |
| 139 void SizeAdaptableVideoEncoderBase::OnEncoderStatusChange( | 141 void SizeAdaptableVideoEncoderBase::OnEncoderStatusChange( |
| 140 OperationalStatus status) { | 142 OperationalStatus status) { |
| 141 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); | 143 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); |
| 142 if (frames_in_encoder_ == kEncoderIsInitializing && | 144 if (frames_in_encoder_ == kEncoderIsInitializing && |
| 143 status == STATUS_INITIALIZED) { | 145 status == STATUS_INITIALIZED) { |
| 144 // Begin using the replacement encoder. | 146 // Begin using the replacement encoder. |
| 145 frames_in_encoder_ = 0; | 147 frames_in_encoder_ = 0; |
| 146 OnEncoderReplaced(encoder_.get()); | 148 OnEncoderReplaced(encoder_.get()); |
| 147 } | 149 } |
| 148 status_change_cb_.Run(status); | 150 status_change_cb_.Run(status); |
| 149 } | 151 } |
| 150 | 152 |
| 151 void SizeAdaptableVideoEncoderBase::OnEncodedVideoFrame( | 153 void SizeAdaptableVideoEncoderBase::OnEncodedVideoFrame( |
| 152 const FrameEncodedCallback& frame_encoded_callback, | 154 const FrameEncodedCallback& frame_encoded_callback, |
| 153 scoped_ptr<SenderEncodedFrame> encoded_frame) { | 155 scoped_ptr<SenderEncodedFrame> encoded_frame) { |
| 154 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); | 156 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); |
| 155 --frames_in_encoder_; | 157 --frames_in_encoder_; |
| 156 DCHECK_GE(frames_in_encoder_, 0); | 158 DCHECK_GE(frames_in_encoder_, 0); |
| 157 last_frame_id_ = encoded_frame->frame_id; | 159 last_frame_id_ = encoded_frame->frame_id; |
| 158 frame_encoded_callback.Run(encoded_frame.Pass()); | 160 frame_encoded_callback.Run(std::move(encoded_frame)); |
| 159 } | 161 } |
| 160 | 162 |
| 161 } // namespace cast | 163 } // namespace cast |
| 162 } // namespace media | 164 } // namespace media |
| OLD | NEW |