svc_config.h (1290B)
1 /* Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 2 * 3 * Use of this source code is governed by a BSD-style license 4 * that can be found in the LICENSE file in the root of the source 5 * tree. An additional intellectual property rights grant can be found 6 * in the file PATENTS. All contributing project authors may 7 * be found in the AUTHORS file in the root of the source tree. 8 */ 9 10 #ifndef MODULES_VIDEO_CODING_CODECS_VP9_SVC_CONFIG_H_ 11 #define MODULES_VIDEO_CODING_CODECS_VP9_SVC_CONFIG_H_ 12 13 #include <stddef.h> 14 15 #include <optional> 16 #include <vector> 17 18 #include "api/video_codecs/spatial_layer.h" 19 #include "api/video_codecs/video_codec.h" 20 #include "modules/video_coding/svc/scalable_video_controller.h" 21 22 namespace webrtc { 23 24 // Uses scalability mode to configure spatial layers. 25 std::vector<SpatialLayer> GetVp9SvcConfig(VideoCodec& video_codec); 26 27 std::vector<SpatialLayer> GetSvcConfig( 28 size_t input_width, 29 size_t input_height, 30 float max_framerate_fps, 31 size_t first_active_layer, 32 size_t num_spatial_layers, 33 size_t num_temporal_layers, 34 bool is_screen_sharing, 35 std::optional<ScalableVideoController::StreamLayersConfig> config = 36 std::nullopt); 37 38 } // namespace webrtc 39 40 #endif // MODULES_VIDEO_CODING_CODECS_VP9_SVC_CONFIG_H_