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

Unified Diff: webrtc/modules/video_coding/codecs/vp8/temporal_layers.h

Issue 2489843002: Revert of Extract bitrate allocation of spatial/temporal layers out of codec impl. (Closed)
Patch Set: Created 4 years, 1 month 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/codecs/vp8/temporal_layers.h
diff --git a/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h b/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h
index e1f1e0abae75f10b5134198983af7c5507e1cf44..0d09839a8c4e822aae4135c2bf1751a139a2844e 100644
--- a/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h
+++ b/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h
@@ -12,13 +12,10 @@
#ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_TEMPORAL_LAYERS_H_
#define WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_TEMPORAL_LAYERS_H_
-#include <vector>
+#include "vpx/vpx_encoder.h"
#include "webrtc/common_video/include/video_image.h"
#include "webrtc/typedefs.h"
-
-struct vpx_codec_enc_cfg;
-typedef struct vpx_codec_enc_cfg vpx_codec_enc_cfg_t;
namespace webrtc {
@@ -26,7 +23,7 @@
class TemporalLayers {
public:
- // Factory for TemporalLayer strategy. Default behavior is a fixed pattern
+ // Factory for TemporalLayer strategy. Default behaviour is a fixed pattern
// of temporal layers. See default_temporal_layers.cc
virtual ~TemporalLayers() {}
@@ -34,15 +31,10 @@
// and/or update the reference buffers.
virtual int EncodeFlags(uint32_t timestamp) = 0;
- // Update state based on new bitrate target and incoming framerate.
- // Returns the bitrate allocation for the active temporal layers.
- virtual std::vector<uint32_t> OnRatesUpdated(int bitrate_kbps,
- int max_bitrate_kbps,
- int framerate) = 0;
-
- // Update the encoder configuration with target bitrates or other parameters.
- // Returns true iff the configuration was actually modified.
- virtual bool UpdateConfiguration(vpx_codec_enc_cfg_t* cfg) = 0;
+ virtual bool ConfigureBitrates(int bitrate_kbit,
+ int max_bitrate_kbit,
+ int framerate,
+ vpx_codec_enc_cfg_t* cfg) = 0;
virtual void PopulateCodecSpecific(bool base_layer_sync,
CodecSpecificInfoVP8* vp8_info,
@@ -51,41 +43,25 @@
virtual void FrameEncoded(unsigned int size, uint32_t timestamp, int qp) = 0;
virtual int CurrentLayerId() const = 0;
+
+ virtual bool UpdateConfiguration(vpx_codec_enc_cfg_t* cfg) = 0;
};
-class TemporalLayersListener;
class TemporalLayersFactory {
public:
- TemporalLayersFactory() : listener_(nullptr) {}
virtual ~TemporalLayersFactory() {}
- virtual TemporalLayers* Create(int simulcast_id,
- int temporal_layers,
+ virtual TemporalLayers* Create(int temporal_layers,
uint8_t initial_tl0_pic_idx) const;
- void SetListener(TemporalLayersListener* listener);
-
- protected:
- TemporalLayersListener* listener_;
};
// Factory for a temporal layers strategy that adaptively changes the number of
-// layers based on input frame rate so that the base layer has an acceptable
-// frame rate. See realtime_temporal_layers.cc
+// layers based on input framerate so that the base layer has an acceptable
+// framerate. See realtime_temporal_layers.cc
class RealTimeTemporalLayersFactory : public TemporalLayersFactory {
public:
- RealTimeTemporalLayersFactory() {}
~RealTimeTemporalLayersFactory() override {}
- TemporalLayers* Create(int simulcast_id,
- int num_temporal_layers,
+ TemporalLayers* Create(int num_temporal_layers,
uint8_t initial_tl0_pic_idx) const override;
-};
-
-class TemporalLayersListener {
- public:
- TemporalLayersListener() {}
- virtual ~TemporalLayersListener() {}
-
- virtual void OnTemporalLayersCreated(int simulcast_id,
- TemporalLayers* layers) = 0;
};
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698