WebRtcVideoChannel encoder fallback.
In this CL: - Added WEBRTC_VIDEO_CODEC_ENCODER_FAILURE return code that can be returned by the encoder wrapper in case of a broken encoder. - Added EncoderFailureCallback interface that can be called to request encoder fallback to be performed. Implemented by WebRtcVideoChannel and called from the VideoStreamEncoder. - Updated SelectSendVideoCodec to select all compatible codecs instead of just one. Bug: webrtc:10795 Change-Id: I87a83fd02e48c40493c930471c06c3d0941031ab Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140888 Commit-Queue: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28462}
This commit is contained in:
@ -17,6 +17,12 @@
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
class EncoderFailureCallback {
|
||||
public:
|
||||
virtual ~EncoderFailureCallback() {}
|
||||
virtual void OnEncoderFailure() = 0;
|
||||
};
|
||||
|
||||
struct VideoStreamEncoderSettings {
|
||||
explicit VideoStreamEncoderSettings(
|
||||
const VideoEncoder::Capabilities& capabilities)
|
||||
@ -29,6 +35,9 @@ struct VideoStreamEncoderSettings {
|
||||
// Ownership stays with WebrtcVideoEngine (delegated from PeerConnection).
|
||||
VideoEncoderFactory* encoder_factory = nullptr;
|
||||
|
||||
// Notifies the WebRtcVideoChannel that the currently used encoder is broken.
|
||||
EncoderFailureCallback* encoder_failure_callback = nullptr;
|
||||
|
||||
// Ownership stays with WebrtcVideoEngine (delegated from PeerConnection).
|
||||
VideoBitrateAllocatorFactory* bitrate_allocator_factory = nullptr;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user