1 | /* |
2 | * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. |
3 | * |
4 | * Use of this source code is governed by a BSD-style license |
5 | * that can be found in the LICENSE file in the root of the source |
6 | * tree. An additional intellectual property rights grant can be found |
7 | * in the file PATENTS. All contributing project authors may |
8 | * be found in the AUTHORS file in the root of the source tree. |
9 | */ |
10 | |
11 | #ifndef MODULES_VIDEO_CODING_UTILITY_SIMULCAST_UTILITY_H_ |
12 | #define MODULES_VIDEO_CODING_UTILITY_SIMULCAST_UTILITY_H_ |
13 | |
14 | #include "api/video_codecs/video_encoder.h" |
15 | |
16 | namespace webrtc { |
17 | |
18 | class SimulcastUtility { |
19 | public: |
20 | static uint32_t SumStreamMaxBitrate(int streams, const VideoCodec& codec); |
21 | static int NumberOfSimulcastStreams(const VideoCodec& codec); |
22 | static bool ValidSimulcastResolutions(const VideoCodec& codec, |
23 | int num_streams); |
24 | static bool ValidSimulcastTemporalLayers(const VideoCodec& codec, |
25 | int num_streams); |
26 | static int NumberOfTemporalLayers(const VideoCodec& codec, int spatial_id); |
27 | // TODO(sprang): Remove this hack when ScreenshareLayers is gone. |
28 | static bool IsConferenceModeScreenshare(const VideoCodec& codec); |
29 | }; |
30 | |
31 | } // namespace webrtc |
32 | |
33 | #endif // MODULES_VIDEO_CODING_UTILITY_SIMULCAST_UTILITY_H_ |
34 | |