Index: webrtc/config.h |
diff --git a/webrtc/config.h b/webrtc/config.h |
index 9303f548e7299d857447970f0208d2e476665a76..3758fc2ef3cfb7624ddef2e86b4cff0bf21d0815 100644 |
--- a/webrtc/config.h |
+++ b/webrtc/config.h |
@@ -17,6 +17,8 @@ |
#include <vector> |
#include "webrtc/base/optional.h" |
+#include "webrtc/base/refcount.h" |
+#include "webrtc/base/scoped_ref_ptr.h" |
#include "webrtc/common_types.h" |
#include "webrtc/typedefs.h" |
@@ -130,6 +132,21 @@ struct VideoEncoderConfig { |
kScreen, |
}; |
+ class VideoStreamFactoryInterface : public rtc::RefCountInterface { |
+ public: |
+ // An implementation should return a std::vector<VideoStream> with the |
+ // wanted VideoStream settings for the given video resolution. |
+ // The size of the vector may not be larger than |
+ // |encoder_config.number_of_streams|. |
+ virtual std::vector<VideoStream> CreateEncoderStreams( |
+ int width, |
+ int height, |
+ const VideoEncoderConfig& encoder_config) = 0; |
+ |
+ protected: |
+ virtual ~VideoStreamFactoryInterface() {} |
+ }; |
+ |
VideoEncoderConfig& operator=(VideoEncoderConfig&&) = default; |
VideoEncoderConfig& operator=(const VideoEncoderConfig&) = delete; |
@@ -141,7 +158,7 @@ struct VideoEncoderConfig { |
~VideoEncoderConfig(); |
std::string ToString() const; |
- std::vector<VideoStream> streams; |
+ rtc::scoped_refptr<VideoStreamFactoryInterface> encoder_stream_factory; |
perkj_webrtc
2016/09/27 13:45:17
renamed video_stream_factory.
|
std::vector<SpatialLayer> spatial_layers; |
ContentType content_type; |
void* encoder_specific_settings; |
@@ -151,7 +168,10 @@ struct VideoEncoderConfig { |
// maintaining a higher bitrate estimate. Padding will however not be sent |
// unless the estimated bandwidth indicates that the link can handle it. |
int min_transmit_bitrate_bps; |
- bool expect_encode_from_texture; |
+ int max_bitrate_bps; |
+ |
+ // Max number of encoded VideoStreams to produce. |
+ size_t number_of_streams; |
private: |
// Access to the copy constructor is private to force use of the Copy() |