Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Unified Diff: webrtc/modules/video_coding/main/source/generic_encoder.cc

Issue 1424843002: Make VCMEncodedFrameCallback const. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
{
« no previous file with comments | « webrtc/modules/video_coding/main/source/generic_encoder.h ('k') | webrtc/modules/video_coding/main/source/video_receiver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698