summaryrefslogtreecommitdiff
path: root/chromium/media/gpu/vaapi/vp9_encoder.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/media/gpu/vaapi/vp9_encoder.h
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/media/gpu/vaapi/vp9_encoder.h')
-rw-r--r--chromium/media/gpu/vaapi/vp9_encoder.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/chromium/media/gpu/vaapi/vp9_encoder.h b/chromium/media/gpu/vaapi/vp9_encoder.h
index 2f3eda4b440..9c0ad1cb9f3 100644
--- a/chromium/media/gpu/vaapi/vp9_encoder.h
+++ b/chromium/media/gpu/vaapi/vp9_encoder.h
@@ -19,6 +19,7 @@
#include "media/gpu/vp9_reference_frame_vector.h"
namespace media {
+class VP9RateControl;
class VP9Encoder : public AcceleratedVideoEncoder {
public:
@@ -71,6 +72,12 @@ class VP9Encoder : public AcceleratedVideoEncoder {
const Vp9ReferenceFrameVector& ref_frames,
const std::array<bool, kVp9NumRefsPerFrame>& ref_frames_used) = 0;
+ void set_bitrate_control(BitrateControl bc) { bitrate_control_ = bc; }
+ BitrateControl bitrate_control() { return bitrate_control_; }
+
+ protected:
+ BitrateControl bitrate_control_ = BitrateControl::kConstantBitrate;
+
DISALLOW_COPY_AND_ASSIGN(Accelerator);
};
@@ -86,8 +93,13 @@ class VP9Encoder : public AcceleratedVideoEncoder {
size_t GetMaxNumOfRefFrames() const override;
ScalingSettings GetScalingSettings() const override;
bool PrepareEncodeJob(EncodeJob* encode_job) override;
+ void BitrateControlUpdate(uint64_t encoded_chunk_size_bytes) override;
private:
+ friend class VP9EncoderTest;
+
+ void set_rate_ctrl_for_testing(std::unique_ptr<VP9RateControl> rate_ctrl);
+
void InitializeFrameHeader();
void UpdateFrameHeader(bool keyframe);
void UpdateReferenceFrames(scoped_refptr<VP9Picture> picture);
@@ -105,6 +117,7 @@ class VP9Encoder : public AcceleratedVideoEncoder {
Vp9FrameHeader current_frame_hdr_;
Vp9ReferenceFrameVector reference_frames_;
+ std::unique_ptr<VP9RateControl> rate_ctrl_;
const std::unique_ptr<Accelerator> accelerator_;
SEQUENCE_CHECKER(sequence_checker_);