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

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

Issue 1426953003: Remove redudant encoder rate calls. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: remove redundant function 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.h
diff --git a/webrtc/modules/video_coding/main/source/generic_encoder.h b/webrtc/modules/video_coding/main/source/generic_encoder.h
index 25235b6b4677ad2565a9d6583bc2cf565727cd40..5482e507d749b870b4ad3d92c8f3a4bd69ad0f7b 100644
--- a/webrtc/modules/video_coding/main/source/generic_encoder.h
+++ b/webrtc/modules/video_coding/main/source/generic_encoder.h
@@ -26,6 +26,13 @@ namespace media_optimization {
class MediaOptimization;
} // namespace media_optimization
+struct EncoderParameters {
+ uint32_t target_bitrate;
+ uint8_t loss_rate;
+ int64_t rtt;
+ uint32_t input_frame_rate;
+};
+
/*************************************/
/* VCMEncodeFrameCallback class */
/***********************************/
@@ -102,33 +109,16 @@ public:
int32_t Encode(const VideoFrame& inputFrame,
const CodecSpecificInfo* codecSpecificInfo,
const std::vector<FrameType>& frameTypes);
- /**
- * Set new target bitrate (bits/s) and framerate.
- * Return Value: new bit rate if OK, otherwise <0s.
- */
- // TODO(tommi): We could replace BitRate and FrameRate below with a GetRates
- // method that matches SetRates. For fetching current rates, we'd then only
- // grab the lock once instead of twice.
- int32_t SetRates(uint32_t target_bitrate, uint32_t frameRate);
- /**
- * Set a new packet loss rate and a new round-trip time in milliseconds.
- */
- int32_t SetChannelParameters(int32_t packetLoss, int64_t rtt);
- int32_t CodecConfigParameters(uint8_t* buffer, int32_t size);
+
+ void SetEncoderParameters(const EncoderParameters& params);
/**
* Register a transport callback which will be called to deliver the encoded
* buffers
*/
int32_t RegisterEncodeCallback(
VCMEncodedFrameCallback* VCMencodedFrameCallback);
- /**
- * Get encoder bit rate
- */
- uint32_t BitRate() const;
- /**
- * Get encoder frame rate
- */
- uint32_t FrameRate() const;
+
+ EncoderParameters GetEncoderParameters() const;
int32_t SetPeriodicKeyFrames(bool enable);
@@ -146,10 +136,9 @@ private:
VideoEncoder* const encoder_;
VideoEncoderRateObserver* const rate_observer_;
VCMEncodedFrameCallback* vcm_encoded_frame_callback_;
- uint32_t bit_rate_;
- uint32_t frame_rate_;
+ EncoderParameters encoder_params_ GUARDED_BY(params_lock_);
const bool internal_source_;
- mutable rtc::CriticalSection rates_lock_;
+ mutable rtc::CriticalSection params_lock_;
VideoRotation rotation_;
bool is_screenshare_;
}; // end of VCMGenericEncoder class
« no previous file with comments | « webrtc/modules/video_coding/main/interface/video_coding.h ('k') | webrtc/modules/video_coding/main/source/generic_encoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698