Index: webrtc/modules/video_coding/main/source/generic_encoder.cc |
diff --git a/webrtc/modules/video_coding/main/source/generic_encoder.cc b/webrtc/modules/video_coding/main/source/generic_encoder.cc |
index fe3d5cb9915cb44a2e4b9b932b4a9f04d518a08f..25a10b56ac458f99b9add5aef04d32a14932c00b 100644 |
--- a/webrtc/modules/video_coding/main/source/generic_encoder.cc |
+++ b/webrtc/modules/video_coding/main/source/generic_encoder.cc |
@@ -88,53 +88,52 @@ void CopyCodecSpecific(const CodecSpecificInfo* info, RTPVideoHeader* rtp) { |
//#define DEBUG_ENCODER_BIT_STREAM |
-VCMGenericEncoder::VCMGenericEncoder(VideoEncoder* encoder, |
- VideoEncoderRateObserver* rate_observer, |
- bool internalSource) |
+VCMGenericEncoder::VCMGenericEncoder( |
+ VideoEncoder* encoder, |
+ VideoEncoderRateObserver* rate_observer, |
+ VCMEncodedFrameCallback* encoded_frame_callback, |
+ bool internalSource) |
: encoder_(encoder), |
rate_observer_(rate_observer), |
- vcm_encoded_frame_callback_(nullptr), |
+ vcm_encoded_frame_callback_(encoded_frame_callback), |
bit_rate_(0), |
frame_rate_(0), |
internal_source_(internalSource), |
rotation_(kVideoRotation_0), |
- is_screenshare_(false) { |
-} |
+ is_screenshare_(false) {} |
VCMGenericEncoder::~VCMGenericEncoder() |
{ |
} |
-int32_t VCMGenericEncoder::Release() |
-{ |
- { |
- rtc::CritScope lock(&rates_lock_); |
- bit_rate_ = 0; |
- frame_rate_ = 0; |
- vcm_encoded_frame_callback_ = nullptr; |
- } |
+int32_t VCMGenericEncoder::Release() { |
+ { |
+ rtc::CritScope lock(&rates_lock_); |
+ bit_rate_ = 0; |
+ frame_rate_ = 0; |
+ } |
stefan-webrtc
2015/10/29 07:28:06
Do we have to set these in Release(), given that w
pbos-webrtc
2015/10/29 15:51:10
Executive decision says no.
|
- return encoder_->Release(); |
+ return encoder_->Release(); |
} |
-int32_t |
-VCMGenericEncoder::InitEncode(const VideoCodec* settings, |
- int32_t numberOfCores, |
- size_t maxPayloadSize) |
-{ |
- { |
- rtc::CritScope lock(&rates_lock_); |
- bit_rate_ = settings->startBitrate * 1000; |
- frame_rate_ = settings->maxFramerate; |
- } |
+int32_t VCMGenericEncoder::InitEncode(const VideoCodec* settings, |
+ int32_t numberOfCores, |
+ size_t maxPayloadSize) { |
+ { |
+ rtc::CritScope lock(&rates_lock_); |
+ bit_rate_ = settings->startBitrate * 1000; |
+ frame_rate_ = settings->maxFramerate; |
+ } |
- is_screenshare_ = settings->mode == VideoCodecMode::kScreensharing; |
- if (encoder_->InitEncode(settings, numberOfCores, maxPayloadSize) != 0) { |
- LOG(LS_ERROR) << "Failed to initialize the encoder associated with " |
- "payload name: " << settings->plName; |
- return -1; |
- } |
- return 0; |
+ is_screenshare_ = settings->mode == VideoCodecMode::kScreensharing; |
+ if (encoder_->InitEncode(settings, numberOfCores, maxPayloadSize) != 0) { |
+ LOG(LS_ERROR) << "Failed to initialize the encoder associated with " |
+ "payload name: " |
+ << settings->plName; |
+ return -1; |
+ } |
+ encoder_->RegisterEncodeCompleteCallback(vcm_encoded_frame_callback_); |
+ return 0; |
} |
int32_t VCMGenericEncoder::Encode(const VideoFrame& inputFrame, |
@@ -145,12 +144,10 @@ int32_t VCMGenericEncoder::Encode(const VideoFrame& inputFrame, |
rotation_ = inputFrame.rotation(); |
- if (vcm_encoded_frame_callback_) { |
- // Keep track of the current frame rotation and apply to the output of the |
- // encoder. There might not be exact as the encoder could have one frame |
- // delay but it should be close enough. |
- vcm_encoded_frame_callback_->SetRotation(rotation_); |
- } |
+ // Keep track of the current frame rotation and apply to the output of the |
+ // encoder. There might not be exact as the encoder could have one frame delay |
+ // but it should be close enough. |
+ vcm_encoded_frame_callback_->SetRotation(rotation_); |
stefan-webrtc
2015/10/29 07:28:06
I don't like this... I think we should use a map f
pbos-webrtc
2015/10/29 15:51:10
Agreed, eew. Done.
|
int32_t result = encoder_->Encode(inputFrame, codecSpecificInfo, &frameTypes); |
if (is_screenshare_ && |
@@ -224,14 +221,6 @@ int32_t VCMGenericEncoder::RequestFrame( |
return encoder_->Encode(image, NULL, &frame_types); |
} |
-int32_t |
-VCMGenericEncoder::RegisterEncodeCallback(VCMEncodedFrameCallback* VCMencodedFrameCallback) |
-{ |
- VCMencodedFrameCallback->SetInternalSource(internal_source_); |
- vcm_encoded_frame_callback_ = VCMencodedFrameCallback; |
- return encoder_->RegisterEncodeCompleteCallback(VCMencodedFrameCallback); |
-} |
- |
bool |
VCMGenericEncoder::InternalSource() const |
{ |