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.351.0"
"${LATEST}": "3.351.1"
},
"endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json",
"services": {
Expand Down
1 change: 1 addition & 0 deletions src/Service/MediaConvert/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

- AWS api-change: This release includes support for embedding and signing C2PA content credentials in MP4 outputs.
- AWS api-change: This release adds a new SPECIFIED_OPTIMAL option for handling DDS when using DVB-Sub with high resolution video.
- AWS api-change: This release expands the range of supported audio outputs to include xHE, 192khz FLAC and the deprecation of dual mono for AC3.

## 1.9.0

Expand Down
2 changes: 2 additions & 0 deletions src/Service/MediaConvert/src/Enum/AacCodecProfile.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@ final class AacCodecProfile
public const HEV1 = 'HEV1';
public const HEV2 = 'HEV2';
public const LC = 'LC';
public const XHE = 'XHE';

public static function exists(string $value): bool
{
return isset([
self::HEV1 => true,
self::HEV2 => true,
self::LC => true,
self::XHE => true,
][$value]);
}
}
22 changes: 22 additions & 0 deletions src/Service/MediaConvert/src/Enum/AacLoudnessMeasurementMode.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace AsyncAws\MediaConvert\Enum;

/**
* Choose the loudness measurement mode for your audio content. For music or advertisements: We recommend that you keep
* the default value, Program. For speech or other content: We recommend that you choose Anchor. When you do,
* MediaConvert optimizes the loudness of your output for clarify by applying speech gates.
*/
final class AacLoudnessMeasurementMode
{
public const ANCHOR = 'ANCHOR';
public const PROGRAM = 'PROGRAM';

public static function exists(string $value): bool
{
return isset([
self::ANCHOR => true,
self::PROGRAM => true,
][$value]);
}
}
3 changes: 3 additions & 0 deletions src/Service/MediaConvert/src/Result/CreateJobResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -218,10 +218,13 @@ private function populateResultAacSettings(array $json): AacSettings
'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null,
'CodecProfile' => isset($json['codecProfile']) ? (string) $json['codecProfile'] : null,
'CodingMode' => isset($json['codingMode']) ? (string) $json['codingMode'] : null,
'LoudnessMeasurementMode' => isset($json['loudnessMeasurementMode']) ? (string) $json['loudnessMeasurementMode'] : null,
'RapInterval' => isset($json['rapInterval']) ? (int) $json['rapInterval'] : null,
'RateControlMode' => isset($json['rateControlMode']) ? (string) $json['rateControlMode'] : null,
'RawFormat' => isset($json['rawFormat']) ? (string) $json['rawFormat'] : null,
'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null,
'Specification' => isset($json['specification']) ? (string) $json['specification'] : null,
'TargetLoudnessRange' => isset($json['targetLoudnessRange']) ? (int) $json['targetLoudnessRange'] : null,
'VbrQuality' => isset($json['vbrQuality']) ? (string) $json['vbrQuality'] : null,
]);
}
Expand Down
3 changes: 3 additions & 0 deletions src/Service/MediaConvert/src/Result/GetJobResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -218,10 +218,13 @@ private function populateResultAacSettings(array $json): AacSettings
'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null,
'CodecProfile' => isset($json['codecProfile']) ? (string) $json['codecProfile'] : null,
'CodingMode' => isset($json['codingMode']) ? (string) $json['codingMode'] : null,
'LoudnessMeasurementMode' => isset($json['loudnessMeasurementMode']) ? (string) $json['loudnessMeasurementMode'] : null,
'RapInterval' => isset($json['rapInterval']) ? (int) $json['rapInterval'] : null,
'RateControlMode' => isset($json['rateControlMode']) ? (string) $json['rateControlMode'] : null,
'RawFormat' => isset($json['rawFormat']) ? (string) $json['rawFormat'] : null,
'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null,
'Specification' => isset($json['specification']) ? (string) $json['specification'] : null,
'TargetLoudnessRange' => isset($json['targetLoudnessRange']) ? (int) $json['targetLoudnessRange'] : null,
'VbrQuality' => isset($json['vbrQuality']) ? (string) $json['vbrQuality'] : null,
]);
}
Expand Down
3 changes: 3 additions & 0 deletions src/Service/MediaConvert/src/Result/ListJobsResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -285,10 +285,13 @@ private function populateResultAacSettings(array $json): AacSettings
'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null,
'CodecProfile' => isset($json['codecProfile']) ? (string) $json['codecProfile'] : null,
'CodingMode' => isset($json['codingMode']) ? (string) $json['codingMode'] : null,
'LoudnessMeasurementMode' => isset($json['loudnessMeasurementMode']) ? (string) $json['loudnessMeasurementMode'] : null,
'RapInterval' => isset($json['rapInterval']) ? (int) $json['rapInterval'] : null,
'RateControlMode' => isset($json['rateControlMode']) ? (string) $json['rateControlMode'] : null,
'RawFormat' => isset($json['rawFormat']) ? (string) $json['rawFormat'] : null,
'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null,
'Specification' => isset($json['specification']) ? (string) $json['specification'] : null,
'TargetLoudnessRange' => isset($json['targetLoudnessRange']) ? (int) $json['targetLoudnessRange'] : null,
'VbrQuality' => isset($json['vbrQuality']) ? (string) $json['vbrQuality'] : null,
]);
}
Expand Down
68 changes: 68 additions & 0 deletions src/Service/MediaConvert/src/ValueObject/AacSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use AsyncAws\MediaConvert\Enum\AacAudioDescriptionBroadcasterMix;
use AsyncAws\MediaConvert\Enum\AacCodecProfile;
use AsyncAws\MediaConvert\Enum\AacCodingMode;
use AsyncAws\MediaConvert\Enum\AacLoudnessMeasurementMode;
use AsyncAws\MediaConvert\Enum\AacRateControlMode;
use AsyncAws\MediaConvert\Enum\AacRawFormat;
use AsyncAws\MediaConvert\Enum\AacSpecification;
Expand Down Expand Up @@ -64,6 +65,26 @@ final class AacSettings
*/
private $codingMode;

/**
* Choose the loudness measurement mode for your audio content. For music or advertisements: We recommend that you keep
* the default value, Program. For speech or other content: We recommend that you choose Anchor. When you do,
* MediaConvert optimizes the loudness of your output for clarify by applying speech gates.
*
* @var AacLoudnessMeasurementMode::*|null
*/
private $loudnessMeasurementMode;

/**
* Specify the RAP (Random Access Point) interval for your xHE-AAC audio output. A RAP allows a decoder to decode audio
* data mid-stream, without the need to reference previous audio frames, and perform adaptive audio bitrate switching.
* To specify the RAP interval: Enter an integer from 2000 to 30000, in milliseconds. Smaller values allow for better
* seeking and more frequent stream switching, while large values improve compression efficiency. To have MediaConvert
* automatically determine the RAP interval: Leave blank.
*
* @var int|null
*/
private $rapInterval;

/**
* Specify the AAC rate control mode. For a constant bitrate: Choose CBR. Your AAC output bitrate will be equal to the
* value that you choose for Bitrate. For a variable bitrate: Choose VBR. Your AAC output bitrate will vary according to
Expand Down Expand Up @@ -97,6 +118,14 @@ final class AacSettings
*/
private $specification;

/**
* Specify the xHE-AAC loudness target. Enter an integer from 6 to 16, representing "loudness units". For more
* information, see the following specification: Supplementary information for R 128 EBU Tech 3342-2023.
*
* @var int|null
*/
private $targetLoudnessRange;

/**
* Specify the quality of your variable bitrate (VBR) AAC audio. For a list of approximate VBR bitrates, see:
* https://docs.aws.amazon.com/mediaconvert/latest/ug/aac-support.html#aac_vbr
Expand All @@ -111,10 +140,13 @@ final class AacSettings
* Bitrate?: null|int,
* CodecProfile?: null|AacCodecProfile::*,
* CodingMode?: null|AacCodingMode::*,
* LoudnessMeasurementMode?: null|AacLoudnessMeasurementMode::*,
* RapInterval?: null|int,
* RateControlMode?: null|AacRateControlMode::*,
* RawFormat?: null|AacRawFormat::*,
* SampleRate?: null|int,
* Specification?: null|AacSpecification::*,
* TargetLoudnessRange?: null|int,
* VbrQuality?: null|AacVbrQuality::*,
* } $input
*/
Expand All @@ -124,10 +156,13 @@ public function __construct(array $input)
$this->bitrate = $input['Bitrate'] ?? null;
$this->codecProfile = $input['CodecProfile'] ?? null;
$this->codingMode = $input['CodingMode'] ?? null;
$this->loudnessMeasurementMode = $input['LoudnessMeasurementMode'] ?? null;
$this->rapInterval = $input['RapInterval'] ?? null;
$this->rateControlMode = $input['RateControlMode'] ?? null;
$this->rawFormat = $input['RawFormat'] ?? null;
$this->sampleRate = $input['SampleRate'] ?? null;
$this->specification = $input['Specification'] ?? null;
$this->targetLoudnessRange = $input['TargetLoudnessRange'] ?? null;
$this->vbrQuality = $input['VbrQuality'] ?? null;
}

Expand All @@ -137,10 +172,13 @@ public function __construct(array $input)
* Bitrate?: null|int,
* CodecProfile?: null|AacCodecProfile::*,
* CodingMode?: null|AacCodingMode::*,
* LoudnessMeasurementMode?: null|AacLoudnessMeasurementMode::*,
* RapInterval?: null|int,
* RateControlMode?: null|AacRateControlMode::*,
* RawFormat?: null|AacRawFormat::*,
* SampleRate?: null|int,
* Specification?: null|AacSpecification::*,
* TargetLoudnessRange?: null|int,
* VbrQuality?: null|AacVbrQuality::*,
* }|AacSettings $input
*/
Expand Down Expand Up @@ -178,6 +216,19 @@ public function getCodingMode(): ?string
return $this->codingMode;
}

/**
* @return AacLoudnessMeasurementMode::*|null
*/
public function getLoudnessMeasurementMode(): ?string
{
return $this->loudnessMeasurementMode;
}

public function getRapInterval(): ?int
{
return $this->rapInterval;
}

/**
* @return AacRateControlMode::*|null
*/
Expand Down Expand Up @@ -207,6 +258,11 @@ public function getSpecification(): ?string
return $this->specification;
}

public function getTargetLoudnessRange(): ?int
{
return $this->targetLoudnessRange;
}

/**
* @return AacVbrQuality::*|null
*/
Expand Down Expand Up @@ -242,6 +298,15 @@ public function requestBody(): array
}
$payload['codingMode'] = $v;
}
if (null !== $v = $this->loudnessMeasurementMode) {
if (!AacLoudnessMeasurementMode::exists($v)) {
throw new InvalidArgument(\sprintf('Invalid parameter "loudnessMeasurementMode" for "%s". The value "%s" is not a valid "AacLoudnessMeasurementMode".', __CLASS__, $v));
}
$payload['loudnessMeasurementMode'] = $v;
}
if (null !== $v = $this->rapInterval) {
$payload['rapInterval'] = $v;
}
if (null !== $v = $this->rateControlMode) {
if (!AacRateControlMode::exists($v)) {
throw new InvalidArgument(\sprintf('Invalid parameter "rateControlMode" for "%s". The value "%s" is not a valid "AacRateControlMode".', __CLASS__, $v));
Expand All @@ -263,6 +328,9 @@ public function requestBody(): array
}
$payload['specification'] = $v;
}
if (null !== $v = $this->targetLoudnessRange) {
$payload['targetLoudnessRange'] = $v;
}
if (null !== $v = $this->vbrQuality) {
if (!AacVbrQuality::exists($v)) {
throw new InvalidArgument(\sprintf('Invalid parameter "vbrQuality" for "%s". The value "%s" is not a valid "AacVbrQuality".', __CLASS__, $v));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ final class VideoCodecSettings

/**
* Specifies the video codec. This must be equal to one of the enum values defined by the object VideoCodec. To
* passthrough the video stream of your input JPEG2000, VC-3, AVC-INTRA or Apple ProRes video without any video
* encoding: Choose Passthrough. If you have multiple input videos, note that they must have identical encoding
* attributes. When you choose Passthrough, your output container must be MXF or QuickTime MOV.
* passthrough the video stream of your input without any video encoding: Choose Passthrough. More information about
* passthrough codec support and job settings requirements, see:
* https://docs.aws.amazon.com/mediaconvert/latest/ug/video-passthrough-feature-restrictions.html.
*
* @var VideoCodec::*|null
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ final class StartExecutionInput extends Input
/**
* The string that contains the JSON input data for the execution, for example:
*
* `"{\"first_name\" : \"Tim\"}"`
* `"{\"first_name\" : \"Alejandro\"}"`
*
* > If you don't include any JSON input data, you still must include the two braces, for example: `"{}"`
*
Expand Down