// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_VIDEO_VIDEO_ENCODER_FALLBACK_H_ #define MEDIA_VIDEO_VIDEO_ENCODER_FALLBACK_H_ #include <memory> #include <vector> #include "base/memory/weak_ptr.h" #include "media/base/media_export.h" #include "media/base/video_encoder.h" namespace media { // A proxy video encoder that delegates all work to the main encoder until it // fails. If the main encoder fails during initialization or encoding, // VideoEncoderFallback creates a fallback encoder (by calling // create_fallback_cb()) and starts delegating all the work to it. // // It is used for switching from accelerated platform encoder to softare encoder // which are more reliable but less efficient. class MEDIA_EXPORT VideoEncoderFallback : public VideoEncoder { … }; } // namespace media #endif // MEDIA_VIDEO_VIDEO_ENCODER_FALLBACK_H_