xref: /aosp_15_r20/external/webrtc/modules/video_coding/codecs/vp9/svc_config.h (revision d9f758449e529ab9291ac668be2861e7a55c2422)
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