Add an API to query resolution ratio between spatial layers
Bug: webrtc:13960 Change-Id: I349b08397e1cd1235bb15af1011aaac8383388b8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273122 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com> Cr-Commit-Position: refs/heads/main@{#37949}
This commit is contained in:

committed by
WebRTC LUCI CQ

parent
1cb799c31c
commit
2d7db71fda
@ -228,4 +228,44 @@ int ScalabilityModeToNumTemporalLayers(ScalabilityMode scalability_mode) {
|
||||
RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
absl::optional<ScalabilityModeResolutionRatio> ScalabilityModeToResolutionRatio(
|
||||
ScalabilityMode scalability_mode) {
|
||||
switch (scalability_mode) {
|
||||
case ScalabilityMode::kL1T1:
|
||||
case ScalabilityMode::kL1T2:
|
||||
case ScalabilityMode::kL1T2h:
|
||||
case ScalabilityMode::kL1T3:
|
||||
case ScalabilityMode::kL1T3h:
|
||||
return absl::nullopt;
|
||||
case ScalabilityMode::kL2T1:
|
||||
case ScalabilityMode::kL2T1_KEY:
|
||||
case ScalabilityMode::kL2T2:
|
||||
case ScalabilityMode::kL2T2_KEY:
|
||||
case ScalabilityMode::kL2T2_KEY_SHIFT:
|
||||
case ScalabilityMode::kL2T3:
|
||||
case ScalabilityMode::kL2T3_KEY:
|
||||
case ScalabilityMode::kL3T1:
|
||||
case ScalabilityMode::kL3T1_KEY:
|
||||
case ScalabilityMode::kL3T2:
|
||||
case ScalabilityMode::kL3T2_KEY:
|
||||
case ScalabilityMode::kL3T3:
|
||||
case ScalabilityMode::kL3T3_KEY:
|
||||
case ScalabilityMode::kS2T1:
|
||||
case ScalabilityMode::kS2T2:
|
||||
case ScalabilityMode::kS2T3:
|
||||
case ScalabilityMode::kS3T1:
|
||||
case ScalabilityMode::kS3T2:
|
||||
case ScalabilityMode::kS3T3:
|
||||
return ScalabilityModeResolutionRatio::kTwoToOne;
|
||||
case ScalabilityMode::kL2T1h:
|
||||
case ScalabilityMode::kL2T2h:
|
||||
case ScalabilityMode::kL2T3h:
|
||||
case ScalabilityMode::kL3T1h:
|
||||
case ScalabilityMode::kL3T2h:
|
||||
case ScalabilityMode::kL3T3h:
|
||||
return ScalabilityModeResolutionRatio::kThreeToTwo;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
@ -18,6 +18,11 @@
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
enum class ScalabilityModeResolutionRatio {
|
||||
kTwoToOne, // The resolution ratio between spatial layers is 2:1.
|
||||
kThreeToTwo, // The resolution ratio between spatial layers is 1.5:1.
|
||||
};
|
||||
|
||||
absl::optional<ScalabilityMode> ScalabilityModeFromString(
|
||||
absl::string_view scalability_mode_string);
|
||||
|
||||
@ -28,6 +33,9 @@ int ScalabilityModeToNumSpatialLayers(ScalabilityMode scalability_mode);
|
||||
|
||||
int ScalabilityModeToNumTemporalLayers(ScalabilityMode scalability_mode);
|
||||
|
||||
absl::optional<ScalabilityModeResolutionRatio> ScalabilityModeToResolutionRatio(
|
||||
ScalabilityMode scalability_mode);
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
#endif // MODULES_VIDEO_CODING_SVC_SCALABILITY_MODE_UTIL_H_
|
||||
|
Reference in New Issue
Block a user