diff --git a/manifest.json b/manifest.json index 326ec5970..b4214e493 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "variables": { - "${LATEST}": "3.342.13" + "${LATEST}": "3.342.14" }, "endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json", "services": { diff --git a/src/Service/MediaConvert/CHANGELOG.md b/src/Service/MediaConvert/CHANGELOG.md index 72442b3cd..9d0fc1a1f 100644 --- a/src/Service/MediaConvert/CHANGELOG.md +++ b/src/Service/MediaConvert/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added - AWS api-change: This release adds support for AVC passthrough, the ability to specify PTS offset without padding, and an A/V segment matching feature. +- AWS api-change: This release adds a configurable Quality Level setting for the top rendition of Auto ABR jobs ## 1.6.0 diff --git a/src/Service/MediaConvert/src/Result/CreateJobResponse.php b/src/Service/MediaConvert/src/Result/CreateJobResponse.php index b58714bcc..0adcaf9a2 100644 --- a/src/Service/MediaConvert/src/Result/CreateJobResponse.php +++ b/src/Service/MediaConvert/src/Result/CreateJobResponse.php @@ -378,6 +378,7 @@ private function populateResultAutomatedAbrSettings(array $json): AutomatedAbrSe { return new AutomatedAbrSettings([ 'MaxAbrBitrate' => isset($json['maxAbrBitrate']) ? (int) $json['maxAbrBitrate'] : null, + 'MaxQualityLevel' => isset($json['maxQualityLevel']) ? (float) $json['maxQualityLevel'] : null, 'MaxRenditions' => isset($json['maxRenditions']) ? (int) $json['maxRenditions'] : null, 'MinAbrBitrate' => isset($json['minAbrBitrate']) ? (int) $json['minAbrBitrate'] : null, 'Rules' => !isset($json['rules']) ? null : $this->populateResult__listOfAutomatedAbrRule($json['rules']), diff --git a/src/Service/MediaConvert/src/Result/GetJobResponse.php b/src/Service/MediaConvert/src/Result/GetJobResponse.php index ecc8a6e9c..a1c04a7b8 100644 --- a/src/Service/MediaConvert/src/Result/GetJobResponse.php +++ b/src/Service/MediaConvert/src/Result/GetJobResponse.php @@ -378,6 +378,7 @@ private function populateResultAutomatedAbrSettings(array $json): AutomatedAbrSe { return new AutomatedAbrSettings([ 'MaxAbrBitrate' => isset($json['maxAbrBitrate']) ? (int) $json['maxAbrBitrate'] : null, + 'MaxQualityLevel' => isset($json['maxQualityLevel']) ? (float) $json['maxQualityLevel'] : null, 'MaxRenditions' => isset($json['maxRenditions']) ? (int) $json['maxRenditions'] : null, 'MinAbrBitrate' => isset($json['minAbrBitrate']) ? (int) $json['minAbrBitrate'] : null, 'Rules' => !isset($json['rules']) ? null : $this->populateResult__listOfAutomatedAbrRule($json['rules']), diff --git a/src/Service/MediaConvert/src/Result/ListJobsResponse.php b/src/Service/MediaConvert/src/Result/ListJobsResponse.php index b54d3bd6e..531705ca0 100644 --- a/src/Service/MediaConvert/src/Result/ListJobsResponse.php +++ b/src/Service/MediaConvert/src/Result/ListJobsResponse.php @@ -445,6 +445,7 @@ private function populateResultAutomatedAbrSettings(array $json): AutomatedAbrSe { return new AutomatedAbrSettings([ 'MaxAbrBitrate' => isset($json['maxAbrBitrate']) ? (int) $json['maxAbrBitrate'] : null, + 'MaxQualityLevel' => isset($json['maxQualityLevel']) ? (float) $json['maxQualityLevel'] : null, 'MaxRenditions' => isset($json['maxRenditions']) ? (int) $json['maxRenditions'] : null, 'MinAbrBitrate' => isset($json['minAbrBitrate']) ? (int) $json['minAbrBitrate'] : null, 'Rules' => !isset($json['rules']) ? null : $this->populateResult__listOfAutomatedAbrRule($json['rules']), diff --git a/src/Service/MediaConvert/src/ValueObject/AutomatedAbrSettings.php b/src/Service/MediaConvert/src/ValueObject/AutomatedAbrSettings.php index 4b5c13844..fa4bfb31d 100644 --- a/src/Service/MediaConvert/src/ValueObject/AutomatedAbrSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/AutomatedAbrSettings.php @@ -19,6 +19,16 @@ final class AutomatedAbrSettings */ private $maxAbrBitrate; + /** + * Optional. Specify the QVBR quality level to use for all renditions in your automated ABR stack. To have MediaConvert + * automatically determine the quality level: Leave blank. To manually specify a quality level: Enter an integer from 1 + * to 10. MediaConvert will use a quality level up to the value that you specify, depending on your source. For more + * information about QVBR quality levels, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/qvbr-guidelines.html. + * + * @var float|null + */ + private $maxQualityLevel; + /** * Optional. The maximum number of renditions that MediaConvert will create in your automated ABR stack. The number of * renditions is determined automatically, based on analysis of each job, but will never exceed this limit. When you set @@ -50,6 +60,7 @@ final class AutomatedAbrSettings /** * @param array{ * MaxAbrBitrate?: null|int, + * MaxQualityLevel?: null|float, * MaxRenditions?: null|int, * MinAbrBitrate?: null|int, * Rules?: null|array, @@ -58,6 +69,7 @@ final class AutomatedAbrSettings public function __construct(array $input) { $this->maxAbrBitrate = $input['MaxAbrBitrate'] ?? null; + $this->maxQualityLevel = $input['MaxQualityLevel'] ?? null; $this->maxRenditions = $input['MaxRenditions'] ?? null; $this->minAbrBitrate = $input['MinAbrBitrate'] ?? null; $this->rules = isset($input['Rules']) ? array_map([AutomatedAbrRule::class, 'create'], $input['Rules']) : null; @@ -66,6 +78,7 @@ public function __construct(array $input) /** * @param array{ * MaxAbrBitrate?: null|int, + * MaxQualityLevel?: null|float, * MaxRenditions?: null|int, * MinAbrBitrate?: null|int, * Rules?: null|array, @@ -81,6 +94,11 @@ public function getMaxAbrBitrate(): ?int return $this->maxAbrBitrate; } + public function getMaxQualityLevel(): ?float + { + return $this->maxQualityLevel; + } + public function getMaxRenditions(): ?int { return $this->maxRenditions; @@ -108,6 +126,9 @@ public function requestBody(): array if (null !== $v = $this->maxAbrBitrate) { $payload['maxAbrBitrate'] = $v; } + if (null !== $v = $this->maxQualityLevel) { + $payload['maxQualityLevel'] = $v; + } if (null !== $v = $this->maxRenditions) { $payload['maxRenditions'] = $v; }