diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/media/gpu/vaapi/vp9_encoder.h | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-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.h | 13 |
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_); |