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 |