blob: 8e55a9532d97a8ed1c0e3d0ededacc6f9e166341 [file] [log] [blame]
Niels Möllerc0a9f352022-05-20 13:38:49 +02001/*
2 * Copyright (c) 2022 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 API_VIDEO_CODECS_SIMULCAST_STREAM_H_
12#define API_VIDEO_CODECS_SIMULCAST_STREAM_H_
13
Niels Möller79924572022-07-05 14:22:27 +020014#include "api/video_codecs/scalability_mode.h"
15
Niels Möllerc0a9f352022-05-20 13:38:49 +020016namespace webrtc {
17
18// TODO(bugs.webrtc.org/6883): Unify with struct VideoStream, part of
19// VideoEncoderConfig.
Niels Möllerc4b5f4d2022-05-20 15:18:21 +020020struct SimulcastStream {
Niels Möller79924572022-07-05 14:22:27 +020021 // Temporary utility methods for transition from numberOfTemporalLayers
22 // setting to ScalabilityMode.
23 unsigned char GetNumberOfTemporalLayers() const;
24 ScalabilityMode GetScalabilityMode() const;
25
Niels Möller865e45d2022-07-04 17:16:52 +020026 int width = 0;
27 int height = 0;
28 float maxFramerate = 0; // fps.
29 unsigned char numberOfTemporalLayers = 1;
30 unsigned int maxBitrate = 0; // kilobits/sec.
31 unsigned int targetBitrate = 0; // kilobits/sec.
32 unsigned int minBitrate = 0; // kilobits/sec.
33 unsigned int qpMax = 0; // minimum quality
34 bool active = false; // encoded and sent.
Niels Möllerc4b5f4d2022-05-20 15:18:21 +020035};
Niels Möllerc0a9f352022-05-20 13:38:49 +020036
37} // namespace webrtc
38#endif // API_VIDEO_CODECS_SIMULCAST_STREAM_H_