/* * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_ #define VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_ #include <vector> #include "api/adaptation/resource.h" #include "api/fec_controller_override.h" #include "api/rtc_error.h" #include "api/rtp_parameters.h" // For DegradationPreference. #include "api/rtp_sender_interface.h" #include "api/scoped_refptr.h" #include "api/units/data_rate.h" #include "api/video/video_bitrate_allocator.h" #include "api/video/video_layers_allocation.h" #include "api/video/video_sink_interface.h" #include "api/video/video_source_interface.h" #include "api/video_codecs/video_encoder.h" #include "video/config/video_encoder_config.h" namespace webrtc { // This interface represents a class responsible for creating and driving the // encoder(s) for a single video stream. It is also responsible for adaptation // decisions related to video quality, requesting reduced frame rate or // resolution from the VideoSource when needed. // TODO(bugs.webrtc.org/8830): This interface is under development. Changes // under consideration include: // // 1. Taking out responsibility for adaptation decisions, instead only reporting // per-frame measurements to the decision maker. // // 2. Moving responsibility for simulcast and for software fallback into this // class. class VideoStreamEncoderInterface { … }; } // namespace webrtc #endif // VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_