Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"variables": {
"${LATEST}": "3.387.0"
"${LATEST}": "3.387.1"
},
"endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json",
"services": {
Expand Down
4 changes: 4 additions & 0 deletions src/Service/MediaConvert/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## NOT RELEASED

### Added

- AWS api-change: Adds support for integer-second duration normalization and the option to disable explicit weighted prediction.

## 1.15.0

### Added
Expand Down
2 changes: 1 addition & 1 deletion src/Service/MediaConvert/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
},
"extra": {
"branch-alias": {
"dev-master": "1.15-dev"
"dev-master": "1.16-dev"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace AsyncAws\MediaConvert\Enum;

/**
* Enable or disable explicit weighted prediction for the H.264 encoder. Weighted prediction improves compression
* efficiency for content with fading or brightness changes between frames.
*/
final class H264ExplicitWeightedPrediction
{
public const DISABLED = 'DISABLED';
public const ENABLED = 'ENABLED';
public const UNKNOWN_TO_SDK = 'UNKNOWN_TO_SDK';

/**
* @psalm-assert-if-true self::* $value
*/
public static function exists(string $value): bool
{
return isset([
self::DISABLED => true,
self::ENABLED => true,
][$value]);
}
}
13 changes: 13 additions & 0 deletions src/Service/MediaConvert/src/Result/CreateJobResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@
use AsyncAws\MediaConvert\Enum\H264DynamicSubGop;
use AsyncAws\MediaConvert\Enum\H264EndOfStreamMarkers;
use AsyncAws\MediaConvert\Enum\H264EntropyEncoding;
use AsyncAws\MediaConvert\Enum\H264ExplicitWeightedPrediction;
use AsyncAws\MediaConvert\Enum\H264FieldEncoding;
use AsyncAws\MediaConvert\Enum\H264FlickerAdaptiveQuantization;
use AsyncAws\MediaConvert\Enum\H264FramerateControl;
Expand Down Expand Up @@ -502,6 +503,7 @@
use AsyncAws\MediaConvert\ValueObject\DestinationSettings;
use AsyncAws\MediaConvert\ValueObject\DolbyVision;
use AsyncAws\MediaConvert\ValueObject\DolbyVisionLevel6Metadata;
use AsyncAws\MediaConvert\ValueObject\DurationControl;
use AsyncAws\MediaConvert\ValueObject\DvbNitSettings;
use AsyncAws\MediaConvert\ValueObject\DvbSdtSettings;
use AsyncAws\MediaConvert\ValueObject\DvbSubDestinationSettings;
Expand Down Expand Up @@ -1306,6 +1308,15 @@ private function populateResultDolbyVisionLevel6Metadata(array $json): DolbyVisi
]);
}

private function populateResultDurationControl(array $json): DurationControl
{
return new DurationControl([
'IntegerDurationMaximumCompressionDenominator' => isset($json['integerDurationMaximumCompressionDenominator']) ? (int) $json['integerDurationMaximumCompressionDenominator'] : null,
'IntegerDurationMaximumCompressionNumerator' => isset($json['integerDurationMaximumCompressionNumerator']) ? (int) $json['integerDurationMaximumCompressionNumerator'] : null,
'IntegerDurationTrimThresholdMilliseconds' => isset($json['integerDurationTrimThresholdMilliseconds']) ? (int) $json['integerDurationTrimThresholdMilliseconds'] : null,
]);
}

private function populateResultDvbNitSettings(array $json): DvbNitSettings
{
return new DvbNitSettings([
Expand Down Expand Up @@ -1596,6 +1607,7 @@ private function populateResultH264Settings(array $json): H264Settings
'DynamicSubGop' => isset($json['dynamicSubGop']) ? (!H264DynamicSubGop::exists((string) $json['dynamicSubGop']) ? H264DynamicSubGop::UNKNOWN_TO_SDK : (string) $json['dynamicSubGop']) : null,
'EndOfStreamMarkers' => isset($json['endOfStreamMarkers']) ? (!H264EndOfStreamMarkers::exists((string) $json['endOfStreamMarkers']) ? H264EndOfStreamMarkers::UNKNOWN_TO_SDK : (string) $json['endOfStreamMarkers']) : null,
'EntropyEncoding' => isset($json['entropyEncoding']) ? (!H264EntropyEncoding::exists((string) $json['entropyEncoding']) ? H264EntropyEncoding::UNKNOWN_TO_SDK : (string) $json['entropyEncoding']) : null,
'ExplicitWeightedPrediction' => isset($json['explicitWeightedPrediction']) ? (!H264ExplicitWeightedPrediction::exists((string) $json['explicitWeightedPrediction']) ? H264ExplicitWeightedPrediction::UNKNOWN_TO_SDK : (string) $json['explicitWeightedPrediction']) : null,
'FieldEncoding' => isset($json['fieldEncoding']) ? (!H264FieldEncoding::exists((string) $json['fieldEncoding']) ? H264FieldEncoding::UNKNOWN_TO_SDK : (string) $json['fieldEncoding']) : null,
'FlickerAdaptiveQuantization' => isset($json['flickerAdaptiveQuantization']) ? (!H264FlickerAdaptiveQuantization::exists((string) $json['flickerAdaptiveQuantization']) ? H264FlickerAdaptiveQuantization::UNKNOWN_TO_SDK : (string) $json['flickerAdaptiveQuantization']) : null,
'FramerateControl' => isset($json['framerateControl']) ? (!H264FramerateControl::exists((string) $json['framerateControl']) ? H264FramerateControl::UNKNOWN_TO_SDK : (string) $json['framerateControl']) : null,
Expand Down Expand Up @@ -2855,6 +2867,7 @@ private function populateResultVideoPreprocessor(array $json): VideoPreprocessor
'ColorCorrector' => empty($json['colorCorrector']) ? null : $this->populateResultColorCorrector($json['colorCorrector']),
'Deinterlacer' => empty($json['deinterlacer']) ? null : $this->populateResultDeinterlacer($json['deinterlacer']),
'DolbyVision' => empty($json['dolbyVision']) ? null : $this->populateResultDolbyVision($json['dolbyVision']),
'DurationControl' => empty($json['durationControl']) ? null : $this->populateResultDurationControl($json['durationControl']),
'Hdr10Plus' => empty($json['hdr10Plus']) ? null : $this->populateResultHdr10Plus($json['hdr10Plus']),
'ImageInserter' => empty($json['imageInserter']) ? null : $this->populateResultImageInserter($json['imageInserter']),
'NoiseReducer' => empty($json['noiseReducer']) ? null : $this->populateResultNoiseReducer($json['noiseReducer']),
Expand Down
13 changes: 13 additions & 0 deletions src/Service/MediaConvert/src/Result/GetJobResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@
use AsyncAws\MediaConvert\Enum\H264DynamicSubGop;
use AsyncAws\MediaConvert\Enum\H264EndOfStreamMarkers;
use AsyncAws\MediaConvert\Enum\H264EntropyEncoding;
use AsyncAws\MediaConvert\Enum\H264ExplicitWeightedPrediction;
use AsyncAws\MediaConvert\Enum\H264FieldEncoding;
use AsyncAws\MediaConvert\Enum\H264FlickerAdaptiveQuantization;
use AsyncAws\MediaConvert\Enum\H264FramerateControl;
Expand Down Expand Up @@ -502,6 +503,7 @@
use AsyncAws\MediaConvert\ValueObject\DestinationSettings;
use AsyncAws\MediaConvert\ValueObject\DolbyVision;
use AsyncAws\MediaConvert\ValueObject\DolbyVisionLevel6Metadata;
use AsyncAws\MediaConvert\ValueObject\DurationControl;
use AsyncAws\MediaConvert\ValueObject\DvbNitSettings;
use AsyncAws\MediaConvert\ValueObject\DvbSdtSettings;
use AsyncAws\MediaConvert\ValueObject\DvbSubDestinationSettings;
Expand Down Expand Up @@ -1306,6 +1308,15 @@ private function populateResultDolbyVisionLevel6Metadata(array $json): DolbyVisi
]);
}

private function populateResultDurationControl(array $json): DurationControl
{
return new DurationControl([
'IntegerDurationMaximumCompressionDenominator' => isset($json['integerDurationMaximumCompressionDenominator']) ? (int) $json['integerDurationMaximumCompressionDenominator'] : null,
'IntegerDurationMaximumCompressionNumerator' => isset($json['integerDurationMaximumCompressionNumerator']) ? (int) $json['integerDurationMaximumCompressionNumerator'] : null,
'IntegerDurationTrimThresholdMilliseconds' => isset($json['integerDurationTrimThresholdMilliseconds']) ? (int) $json['integerDurationTrimThresholdMilliseconds'] : null,
]);
}

private function populateResultDvbNitSettings(array $json): DvbNitSettings
{
return new DvbNitSettings([
Expand Down Expand Up @@ -1596,6 +1607,7 @@ private function populateResultH264Settings(array $json): H264Settings
'DynamicSubGop' => isset($json['dynamicSubGop']) ? (!H264DynamicSubGop::exists((string) $json['dynamicSubGop']) ? H264DynamicSubGop::UNKNOWN_TO_SDK : (string) $json['dynamicSubGop']) : null,
'EndOfStreamMarkers' => isset($json['endOfStreamMarkers']) ? (!H264EndOfStreamMarkers::exists((string) $json['endOfStreamMarkers']) ? H264EndOfStreamMarkers::UNKNOWN_TO_SDK : (string) $json['endOfStreamMarkers']) : null,
'EntropyEncoding' => isset($json['entropyEncoding']) ? (!H264EntropyEncoding::exists((string) $json['entropyEncoding']) ? H264EntropyEncoding::UNKNOWN_TO_SDK : (string) $json['entropyEncoding']) : null,
'ExplicitWeightedPrediction' => isset($json['explicitWeightedPrediction']) ? (!H264ExplicitWeightedPrediction::exists((string) $json['explicitWeightedPrediction']) ? H264ExplicitWeightedPrediction::UNKNOWN_TO_SDK : (string) $json['explicitWeightedPrediction']) : null,
'FieldEncoding' => isset($json['fieldEncoding']) ? (!H264FieldEncoding::exists((string) $json['fieldEncoding']) ? H264FieldEncoding::UNKNOWN_TO_SDK : (string) $json['fieldEncoding']) : null,
'FlickerAdaptiveQuantization' => isset($json['flickerAdaptiveQuantization']) ? (!H264FlickerAdaptiveQuantization::exists((string) $json['flickerAdaptiveQuantization']) ? H264FlickerAdaptiveQuantization::UNKNOWN_TO_SDK : (string) $json['flickerAdaptiveQuantization']) : null,
'FramerateControl' => isset($json['framerateControl']) ? (!H264FramerateControl::exists((string) $json['framerateControl']) ? H264FramerateControl::UNKNOWN_TO_SDK : (string) $json['framerateControl']) : null,
Expand Down Expand Up @@ -2855,6 +2867,7 @@ private function populateResultVideoPreprocessor(array $json): VideoPreprocessor
'ColorCorrector' => empty($json['colorCorrector']) ? null : $this->populateResultColorCorrector($json['colorCorrector']),
'Deinterlacer' => empty($json['deinterlacer']) ? null : $this->populateResultDeinterlacer($json['deinterlacer']),
'DolbyVision' => empty($json['dolbyVision']) ? null : $this->populateResultDolbyVision($json['dolbyVision']),
'DurationControl' => empty($json['durationControl']) ? null : $this->populateResultDurationControl($json['durationControl']),
'Hdr10Plus' => empty($json['hdr10Plus']) ? null : $this->populateResultHdr10Plus($json['hdr10Plus']),
'ImageInserter' => empty($json['imageInserter']) ? null : $this->populateResultImageInserter($json['imageInserter']),
'NoiseReducer' => empty($json['noiseReducer']) ? null : $this->populateResultNoiseReducer($json['noiseReducer']),
Expand Down
13 changes: 13 additions & 0 deletions src/Service/MediaConvert/src/Result/ListJobsResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@
use AsyncAws\MediaConvert\Enum\H264DynamicSubGop;
use AsyncAws\MediaConvert\Enum\H264EndOfStreamMarkers;
use AsyncAws\MediaConvert\Enum\H264EntropyEncoding;
use AsyncAws\MediaConvert\Enum\H264ExplicitWeightedPrediction;
use AsyncAws\MediaConvert\Enum\H264FieldEncoding;
use AsyncAws\MediaConvert\Enum\H264FlickerAdaptiveQuantization;
use AsyncAws\MediaConvert\Enum\H264FramerateControl;
Expand Down Expand Up @@ -505,6 +506,7 @@
use AsyncAws\MediaConvert\ValueObject\DestinationSettings;
use AsyncAws\MediaConvert\ValueObject\DolbyVision;
use AsyncAws\MediaConvert\ValueObject\DolbyVisionLevel6Metadata;
use AsyncAws\MediaConvert\ValueObject\DurationControl;
use AsyncAws\MediaConvert\ValueObject\DvbNitSettings;
use AsyncAws\MediaConvert\ValueObject\DvbSdtSettings;
use AsyncAws\MediaConvert\ValueObject\DvbSubDestinationSettings;
Expand Down Expand Up @@ -1373,6 +1375,15 @@ private function populateResultDolbyVisionLevel6Metadata(array $json): DolbyVisi
]);
}

private function populateResultDurationControl(array $json): DurationControl
{
return new DurationControl([
'IntegerDurationMaximumCompressionDenominator' => isset($json['integerDurationMaximumCompressionDenominator']) ? (int) $json['integerDurationMaximumCompressionDenominator'] : null,
'IntegerDurationMaximumCompressionNumerator' => isset($json['integerDurationMaximumCompressionNumerator']) ? (int) $json['integerDurationMaximumCompressionNumerator'] : null,
'IntegerDurationTrimThresholdMilliseconds' => isset($json['integerDurationTrimThresholdMilliseconds']) ? (int) $json['integerDurationTrimThresholdMilliseconds'] : null,
]);
}

private function populateResultDvbNitSettings(array $json): DvbNitSettings
{
return new DvbNitSettings([
Expand Down Expand Up @@ -1663,6 +1674,7 @@ private function populateResultH264Settings(array $json): H264Settings
'DynamicSubGop' => isset($json['dynamicSubGop']) ? (!H264DynamicSubGop::exists((string) $json['dynamicSubGop']) ? H264DynamicSubGop::UNKNOWN_TO_SDK : (string) $json['dynamicSubGop']) : null,
'EndOfStreamMarkers' => isset($json['endOfStreamMarkers']) ? (!H264EndOfStreamMarkers::exists((string) $json['endOfStreamMarkers']) ? H264EndOfStreamMarkers::UNKNOWN_TO_SDK : (string) $json['endOfStreamMarkers']) : null,
'EntropyEncoding' => isset($json['entropyEncoding']) ? (!H264EntropyEncoding::exists((string) $json['entropyEncoding']) ? H264EntropyEncoding::UNKNOWN_TO_SDK : (string) $json['entropyEncoding']) : null,
'ExplicitWeightedPrediction' => isset($json['explicitWeightedPrediction']) ? (!H264ExplicitWeightedPrediction::exists((string) $json['explicitWeightedPrediction']) ? H264ExplicitWeightedPrediction::UNKNOWN_TO_SDK : (string) $json['explicitWeightedPrediction']) : null,
'FieldEncoding' => isset($json['fieldEncoding']) ? (!H264FieldEncoding::exists((string) $json['fieldEncoding']) ? H264FieldEncoding::UNKNOWN_TO_SDK : (string) $json['fieldEncoding']) : null,
'FlickerAdaptiveQuantization' => isset($json['flickerAdaptiveQuantization']) ? (!H264FlickerAdaptiveQuantization::exists((string) $json['flickerAdaptiveQuantization']) ? H264FlickerAdaptiveQuantization::UNKNOWN_TO_SDK : (string) $json['flickerAdaptiveQuantization']) : null,
'FramerateControl' => isset($json['framerateControl']) ? (!H264FramerateControl::exists((string) $json['framerateControl']) ? H264FramerateControl::UNKNOWN_TO_SDK : (string) $json['framerateControl']) : null,
Expand Down Expand Up @@ -2922,6 +2934,7 @@ private function populateResultVideoPreprocessor(array $json): VideoPreprocessor
'ColorCorrector' => empty($json['colorCorrector']) ? null : $this->populateResultColorCorrector($json['colorCorrector']),
'Deinterlacer' => empty($json['deinterlacer']) ? null : $this->populateResultDeinterlacer($json['deinterlacer']),
'DolbyVision' => empty($json['dolbyVision']) ? null : $this->populateResultDolbyVision($json['dolbyVision']),
'DurationControl' => empty($json['durationControl']) ? null : $this->populateResultDurationControl($json['durationControl']),
'Hdr10Plus' => empty($json['hdr10Plus']) ? null : $this->populateResultHdr10Plus($json['hdr10Plus']),
'ImageInserter' => empty($json['imageInserter']) ? null : $this->populateResultImageInserter($json['imageInserter']),
'NoiseReducer' => empty($json['noiseReducer']) ? null : $this->populateResultNoiseReducer($json['noiseReducer']),
Expand Down
96 changes: 96 additions & 0 deletions src/Service/MediaConvert/src/ValueObject/DurationControl.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
<?php

namespace AsyncAws\MediaConvert\ValueObject;

/**
* Settings for integer-second duration normalization. When this preprocessor is present, the output duration will be
* adjusted to an exact integer-second boundary. If the input is within the trim threshold of an integer second,
* trailing frames are dropped. If within the compression threshold and less than 500ms over the previous integer
* second, the output is sped up slightly. Otherwise, black frames are padded to the next integer second.
*/
final class DurationControl
{
/**
* Required. Denominator of the maximum allowed compression ratio.
*
* @var int|null
*/
private $integerDurationMaximumCompressionDenominator;

/**
* Required. Numerator of the maximum allowed compression ratio, defined as overrun divided by target duration. For
* example, numerator 5 with denominator 100 means max 5% compression. Set to 0 to disable compression entirely (only
* trim or pad will be used).
*
* @var int|null
*/
private $integerDurationMaximumCompressionNumerator;

/**
* Maximum number of fractional milliseconds past an integer second that qualify for the trim path (frame dropping).
* Default is 0 (trimming disabled).
*
* @var int|null
*/
private $integerDurationTrimThresholdMilliseconds;

/**
* @param array{
* IntegerDurationMaximumCompressionDenominator?: int|null,
* IntegerDurationMaximumCompressionNumerator?: int|null,
* IntegerDurationTrimThresholdMilliseconds?: int|null,
* } $input
*/
public function __construct(array $input)
{
$this->integerDurationMaximumCompressionDenominator = $input['IntegerDurationMaximumCompressionDenominator'] ?? null;
$this->integerDurationMaximumCompressionNumerator = $input['IntegerDurationMaximumCompressionNumerator'] ?? null;
$this->integerDurationTrimThresholdMilliseconds = $input['IntegerDurationTrimThresholdMilliseconds'] ?? null;
}

/**
* @param array{
* IntegerDurationMaximumCompressionDenominator?: int|null,
* IntegerDurationMaximumCompressionNumerator?: int|null,
* IntegerDurationTrimThresholdMilliseconds?: int|null,
* }|DurationControl $input
*/
public static function create($input): self
{
return $input instanceof self ? $input : new self($input);
}

public function getIntegerDurationMaximumCompressionDenominator(): ?int
{
return $this->integerDurationMaximumCompressionDenominator;
}

public function getIntegerDurationMaximumCompressionNumerator(): ?int
{
return $this->integerDurationMaximumCompressionNumerator;
}

public function getIntegerDurationTrimThresholdMilliseconds(): ?int
{
return $this->integerDurationTrimThresholdMilliseconds;
}

/**
* @internal
*/
public function requestBody(): array
{
$payload = [];
if (null !== $v = $this->integerDurationMaximumCompressionDenominator) {
$payload['integerDurationMaximumCompressionDenominator'] = $v;
}
if (null !== $v = $this->integerDurationMaximumCompressionNumerator) {
$payload['integerDurationMaximumCompressionNumerator'] = $v;
}
if (null !== $v = $this->integerDurationTrimThresholdMilliseconds) {
$payload['integerDurationTrimThresholdMilliseconds'] = $v;
}

return $payload;
}
}
Loading
Loading