Decode Target Information for VP8 libvpx encoder.
In this CL: - Created static helper function GenericFrameInfo::DecodeTargetInfo to convert DTI symbols to a list of GenericFrameInfo::OperatingPointIndication. - Added per frame DTI information for the different stream structures. Bug: webrtc:10342 Change-Id: I62ff2e9fc9b380fe1d0447ff071e86b6b35ab249 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129923 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Philip Eliasson <philipel@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27350}
This commit is contained in:
@ -11,6 +11,7 @@
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include "api/video_codecs/vp8_frame_config.h"
|
||||
@ -67,6 +68,19 @@ class ScreenshareLayers final : public Vp8FrameBufferController {
|
||||
private:
|
||||
enum class TemporalLayerState : int { kDrop, kTl0, kTl1, kTl1Sync };
|
||||
|
||||
struct DependencyInfo {
|
||||
DependencyInfo() = default;
|
||||
DependencyInfo(absl::string_view indication_symbols,
|
||||
Vp8FrameConfig frame_config)
|
||||
: decode_target_indications(
|
||||
GenericFrameInfo::DecodeTargetInfo(indication_symbols)),
|
||||
frame_config(frame_config) {}
|
||||
|
||||
absl::InlinedVector<GenericFrameInfo::DecodeTargetIndication, 10>
|
||||
decode_target_indications;
|
||||
Vp8FrameConfig frame_config;
|
||||
};
|
||||
|
||||
bool TimeToSync(int64_t timestamp) const;
|
||||
uint32_t GetCodecTargetBitrateKbps() const;
|
||||
|
||||
@ -81,7 +95,7 @@ class ScreenshareLayers final : public Vp8FrameBufferController {
|
||||
int max_qp_;
|
||||
uint32_t max_debt_bytes_;
|
||||
|
||||
std::map<uint32_t, Vp8FrameConfig> pending_frame_configs_;
|
||||
std::map<uint32_t, DependencyInfo> pending_frame_configs_;
|
||||
|
||||
// Configured max framerate.
|
||||
absl::optional<uint32_t> target_framerate_;
|
||||
|
||||
Reference in New Issue
Block a user