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 <vector> 16 17 #include "api/video_codecs/spatial_layer.h" 18 #include "api/video_codecs/video_codec.h" 19 #include "modules/video_coding/svc/scalable_video_controller.h" 20 21 namespace webrtc { 22 23 // Uses scalability mode to configure spatial layers. 24 std::vector<SpatialLayer> GetVp9SvcConfig(VideoCodec& video_codec); 25 26 std::vector<SpatialLayer> GetSvcConfig( 27 size_t input_width, 28 size_t input_height, 29 float max_framerate_fps, 30 size_t first_active_layer, 31 size_t num_spatial_layers, 32 size_t num_temporal_layers, 33 bool is_screen_sharing, 34 absl::optional<ScalableVideoController::StreamLayersConfig> config = 35 absl::nullopt); 36 37 } // namespace webrtc 38 39 #endif // MODULES_VIDEO_CODING_CODECS_VP9_SVC_CONFIG_H_ 40