blob: 37f8e34b49e157338229304f85419536a0b5df8a [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MEDIA_BASE_SVC_SCALABILITY_MODE_H_
#define MEDIA_BASE_SVC_SCALABILITY_MODE_H_
#include "media/base/media_export.h"
namespace media {
// This enum class is the corresponding implementation with WebRTC-SVC.
// See https://www.w3.org/TR/webrtc-svc/#scalabilitymodes* for the detail.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused. Please keep the consistency with
// VideoEncoderUseCase in tools/metrics/histograms/enums.xml.
enum class SVCScalabilityMode {
kL1T1 = 0,
kL1T2 = 1,
kL1T3 = 2,
kL2T1 = 3,
kL2T2 = 4,
kL2T3 = 5,
kL3T1 = 6,
kL3T2 = 7,
kL3T3 = 8,
kL2T1h = 9,
kL2T2h = 10,
kL2T3h = 11,
kS2T1 = 12,
kS2T2 = 13,
kS2T3 = 14,
kS2T1h = 15,
kS2T2h = 16,
kS2T3h = 17,
kS3T1 = 18,
kS3T2 = 19,
kS3T3 = 20,
kS3T1h = 21,
kS3T2h = 22,
kS3T3h = 23,
kL2T1Key = 24,
kL2T2Key = 25,
kL2T2KeyShift = 26,
kL2T3Key = 27,
kL2T3KeyShift = 28,
kL3T1Key = 29,
kL3T2Key = 30,
kL3T2KeyShift = 31,
kL3T3Key = 32,
kL3T3KeyShift = 33,
kMaxValue = kL3T3KeyShift,
};
// Gets the WebRTC-SVC Spec defined scalability mode name.
MEDIA_EXPORT const char* GetScalabilityModeName(
SVCScalabilityMode scalability_mode);
} // namespace media
#endif // MEDIA_BASE_SVC_SCALABILITY_MODE_H_