123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #ifndef API_VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_
- #define API_VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_
- #include <vector>
- #include "api/adaptation/resource.h"
- #include "api/fec_controller_override.h"
- #include "api/rtp_parameters.h"
- #include "api/scoped_refptr.h"
- #include "api/units/data_rate.h"
- #include "api/video/video_bitrate_allocator.h"
- #include "api/video/video_sink_interface.h"
- #include "api/video/video_source_interface.h"
- #include "api/video_codecs/video_encoder.h"
- #include "api/video_codecs/video_encoder_config.h"
- namespace webrtc {
- class VideoStreamEncoderInterface : public rtc::VideoSinkInterface<VideoFrame> {
- public:
-
-
- class EncoderSink : public EncodedImageCallback {
- public:
- virtual void OnEncoderConfigurationChanged(
- std::vector<VideoStream> streams,
- bool is_svc,
- VideoEncoderConfig::ContentType content_type,
- int min_transmit_bitrate_bps) = 0;
- };
-
-
-
-
-
- virtual void AddAdaptationResource(rtc::scoped_refptr<Resource> resource) = 0;
- virtual std::vector<rtc::scoped_refptr<Resource>>
- GetAdaptationResources() = 0;
-
-
-
-
-
-
-
- virtual void SetSource(
- rtc::VideoSourceInterface<VideoFrame>* source,
- const DegradationPreference& degradation_preference) = 0;
-
-
-
- virtual void SetSink(EncoderSink* sink, bool rotation_applied) = 0;
-
-
-
-
-
-
-
-
-
-
- virtual void SetStartBitrate(int start_bitrate_bps) = 0;
-
- virtual void SendKeyFrame() = 0;
-
- virtual void OnLossNotification(
- const VideoEncoder::LossNotification& loss_notification) = 0;
-
-
-
-
-
-
-
-
- virtual void OnBitrateUpdated(DataRate target_bitrate,
- DataRate stable_target_bitrate,
- DataRate link_allocation,
- uint8_t fraction_lost,
- int64_t round_trip_time_ms,
- double cwnd_reduce_ratio) = 0;
-
-
- virtual void SetBitrateAllocationObserver(
- VideoBitrateAllocationObserver* bitrate_observer) = 0;
-
-
- virtual void SetFecControllerOverride(
- FecControllerOverride* fec_controller_override) = 0;
-
-
-
- virtual void ConfigureEncoder(VideoEncoderConfig config,
- size_t max_data_payload_length) = 0;
-
-
- virtual void Stop() = 0;
- };
- }
- #endif
|