Add ability to specify if rate controller of video encoder is trusted.
If rate controller is trusted, we disable the frame dropper in the media optimization module. Bug: webrtc:9722 Change-Id: I821f21fd74a400ee9d5aa3f6b42d4e569033acbe Reviewed-on: https://webrtc-review.googlesource.com/c/105020 Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Per Kjellander <perkj@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25107}
This commit is contained in:
@ -202,6 +202,21 @@ class VideoEncoder {
|
||||
|
||||
virtual bool SupportsNativeHandle() const;
|
||||
virtual const char* ImplementationName() const;
|
||||
|
||||
// If this method returns true, the encoder rate controller must perform well
|
||||
// even in difficult situations, and produce close to the specified target
|
||||
// bitrate seen over a reasonable time window, drop frames if necessary in
|
||||
// order to keep the rate correct, and react quickly to changing bitrate
|
||||
// targets.
|
||||
// If this method returns true, we disable the frame dropper in the media
|
||||
// optimization module and rely entirely on the encoder to produce media at a
|
||||
// bitrate that closely matches the target. Any overshooting may result in
|
||||
// delay buildup.
|
||||
// If this method returns false (default behavior), the media opt frame
|
||||
// dropper will drop input frames if it suspect encoder misbehavior.
|
||||
// Misbehavior is common, especially in hardware codecs. Disable media opt at
|
||||
// your own risk.
|
||||
virtual bool HasTrustedRateController() const;
|
||||
};
|
||||
} // namespace webrtc
|
||||
#endif // API_VIDEO_CODECS_VIDEO_ENCODER_H_
|
||||
|
||||
Reference in New Issue
Block a user