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

## NOT RELEASED

### Added

- AWS api-change: This release adds support for input rendition selection for HLS input, adds new Share API to enable sharing jobs with AWS Support for support investigations, and adds INCLUDE_AS_TS to iFrameOnlyManifest setting for HLS outputs.
- AWS api-change: Remove incorrect endpoint tests

## 1.10.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 @@ -28,7 +28,7 @@
},
"extra": {
"branch-alias": {
"dev-master": "1.10-dev"
"dev-master": "1.11-dev"
}
}
}
3 changes: 2 additions & 1 deletion src/Service/MediaConvert/src/Enum/AacCodecProfile.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
* Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the
* default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1)
* adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo,
* which optimizes for encoding stereo audio at very low bitrates.
* which optimizes for encoding stereo audio at very low bitrates. For improved audio quality at lower bitrates,
* adaptive audio bitrate switching, and loudness control: Choose XHE.
*/
final class AacCodecProfile
{
Expand Down
12 changes: 8 additions & 4 deletions src/Service/MediaConvert/src/Enum/HlsIFrameOnlyManifest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,25 @@
namespace AsyncAws\MediaConvert\Enum;

/**
* Choose Include to have MediaConvert generate a child manifest that lists only the I-frames for this rendition, in
* addition to your regular manifest for this rendition. You might use this manifest as part of a workflow that creates
* preview functions for your video. MediaConvert adds both the I-frame only child manifest and the regular child
* manifest to the parent manifest. When you don't need the I-frame only child manifest, keep the default value Exclude.
* Generate a variant manifest that lists only the I-frames for this rendition. You might use this manifest as part of a
* workflow that creates preview functions for your video. MediaConvert adds both the I-frame only variant manifest and
* the regular variant manifest to the multivariant manifest. To have MediaConvert write a variant manifest that
* references I-frames from your output content using EXT-X-BYTERANGE tags: Choose Include. To have MediaConvert output
* I-frames as single frame TS files and a corresponding variant manifest that references them: Choose Include as TS.
* When you don't need the I-frame only variant manifest: Keep the default value, Exclude.
*/
final class HlsIFrameOnlyManifest
{
public const EXCLUDE = 'EXCLUDE';
public const INCLUDE = 'INCLUDE';
public const INCLUDE_AS_TS = 'INCLUDE_AS_TS';

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

namespace AsyncAws\MediaConvert\Enum;

/**
* Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair.
* The value for AudioType will be set to 3, which signals to downstream systems that this stream contains "broadcaster
* mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
* mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and
* FollowInputAudioType. Choose NONE when the input does not contain pre-mixed audio + audio description (AD). In this
* case, the encoder will use any values you provide for AudioType and FollowInputAudioType.
*/
final class Mp2AudioDescriptionMix
{
public const BROADCASTER_MIXED_AD = 'BROADCASTER_MIXED_AD';
public const NONE = 'NONE';

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

namespace AsyncAws\MediaConvert\Enum;

final class ShareStatus
{
public const INITIATED = 'INITIATED';
public const NOT_SHARED = 'NOT_SHARED';
public const SHARED = 'SHARED';

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

namespace AsyncAws\MediaConvert\Enum;

/**
* Choose the video selector type for your HLS input. Use to specify which video rendition MediaConvert uses from your
* HLS input. To have MediaConvert automatically use the highest bitrate rendition from your HLS input: Keep the default
* value, Auto. To manually specify a rendition: Choose Stream. Then enter the unique stream number in the Streams
* array, starting at 1, corresponding to the stream order in the manifest.
*/
final class VideoSelectorType
{
public const AUTO = 'AUTO';
public const STREAM = 'STREAM';

public static function exists(string $value): bool
{
return isset([
self::AUTO => true,
self::STREAM => true,
][$value]);
}
}
5 changes: 5 additions & 0 deletions src/Service/MediaConvert/src/Result/CreateJobResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -1436,6 +1436,7 @@ private function populateResultJob(array $json): Job
'JobEngineVersionUsed' => isset($json['jobEngineVersionUsed']) ? (string) $json['jobEngineVersionUsed'] : null,
'JobPercentComplete' => isset($json['jobPercentComplete']) ? (int) $json['jobPercentComplete'] : null,
'JobTemplate' => isset($json['jobTemplate']) ? (string) $json['jobTemplate'] : null,
'LastShareDetails' => isset($json['lastShareDetails']) ? (string) $json['lastShareDetails'] : null,
'Messages' => empty($json['messages']) ? null : $this->populateResultJobMessages($json['messages']),
'OutputGroupDetails' => !isset($json['outputGroupDetails']) ? null : $this->populateResult__listOfOutputGroupDetail($json['outputGroupDetails']),
'Priority' => isset($json['priority']) ? (int) $json['priority'] : null,
Expand All @@ -1444,6 +1445,7 @@ private function populateResultJob(array $json): Job
'RetryCount' => isset($json['retryCount']) ? (int) $json['retryCount'] : null,
'Role' => (string) $json['role'],
'Settings' => $this->populateResultJobSettings($json['settings']),
'ShareStatus' => isset($json['shareStatus']) ? (string) $json['shareStatus'] : null,
'SimulateReservedQueue' => isset($json['simulateReservedQueue']) ? (string) $json['simulateReservedQueue'] : null,
'Status' => isset($json['status']) ? (string) $json['status'] : null,
'StatusUpdateInterval' => isset($json['statusUpdateInterval']) ? (string) $json['statusUpdateInterval'] : null,
Expand Down Expand Up @@ -1642,6 +1644,7 @@ private function populateResultMovSettings(array $json): MovSettings
private function populateResultMp2Settings(array $json): Mp2Settings
{
return new Mp2Settings([
'AudioDescriptionMix' => isset($json['audioDescriptionMix']) ? (string) $json['audioDescriptionMix'] : null,
'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null,
'Channels' => isset($json['channels']) ? (int) $json['channels'] : null,
'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null,
Expand Down Expand Up @@ -2290,6 +2293,8 @@ private function populateResultVideoSelector(array $json): VideoSelector
'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null,
'Rotate' => isset($json['rotate']) ? (string) $json['rotate'] : null,
'SampleRange' => isset($json['sampleRange']) ? (string) $json['sampleRange'] : null,
'SelectorType' => isset($json['selectorType']) ? (string) $json['selectorType'] : null,
'Streams' => !isset($json['streams']) ? null : $this->populateResult__listOf__integerMin1Max2147483647($json['streams']),
]);
}

Expand Down
5 changes: 5 additions & 0 deletions src/Service/MediaConvert/src/Result/GetJobResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -1436,6 +1436,7 @@ private function populateResultJob(array $json): Job
'JobEngineVersionUsed' => isset($json['jobEngineVersionUsed']) ? (string) $json['jobEngineVersionUsed'] : null,
'JobPercentComplete' => isset($json['jobPercentComplete']) ? (int) $json['jobPercentComplete'] : null,
'JobTemplate' => isset($json['jobTemplate']) ? (string) $json['jobTemplate'] : null,
'LastShareDetails' => isset($json['lastShareDetails']) ? (string) $json['lastShareDetails'] : null,
'Messages' => empty($json['messages']) ? null : $this->populateResultJobMessages($json['messages']),
'OutputGroupDetails' => !isset($json['outputGroupDetails']) ? null : $this->populateResult__listOfOutputGroupDetail($json['outputGroupDetails']),
'Priority' => isset($json['priority']) ? (int) $json['priority'] : null,
Expand All @@ -1444,6 +1445,7 @@ private function populateResultJob(array $json): Job
'RetryCount' => isset($json['retryCount']) ? (int) $json['retryCount'] : null,
'Role' => (string) $json['role'],
'Settings' => $this->populateResultJobSettings($json['settings']),
'ShareStatus' => isset($json['shareStatus']) ? (string) $json['shareStatus'] : null,
'SimulateReservedQueue' => isset($json['simulateReservedQueue']) ? (string) $json['simulateReservedQueue'] : null,
'Status' => isset($json['status']) ? (string) $json['status'] : null,
'StatusUpdateInterval' => isset($json['statusUpdateInterval']) ? (string) $json['statusUpdateInterval'] : null,
Expand Down Expand Up @@ -1642,6 +1644,7 @@ private function populateResultMovSettings(array $json): MovSettings
private function populateResultMp2Settings(array $json): Mp2Settings
{
return new Mp2Settings([
'AudioDescriptionMix' => isset($json['audioDescriptionMix']) ? (string) $json['audioDescriptionMix'] : null,
'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null,
'Channels' => isset($json['channels']) ? (int) $json['channels'] : null,
'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null,
Expand Down Expand Up @@ -2290,6 +2293,8 @@ private function populateResultVideoSelector(array $json): VideoSelector
'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null,
'Rotate' => isset($json['rotate']) ? (string) $json['rotate'] : null,
'SampleRange' => isset($json['sampleRange']) ? (string) $json['sampleRange'] : null,
'SelectorType' => isset($json['selectorType']) ? (string) $json['selectorType'] : null,
'Streams' => !isset($json['streams']) ? null : $this->populateResult__listOf__integerMin1Max2147483647($json['streams']),
]);
}

Expand Down
5 changes: 5 additions & 0 deletions src/Service/MediaConvert/src/Result/ListJobsResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -1503,6 +1503,7 @@ private function populateResultJob(array $json): Job
'JobEngineVersionUsed' => isset($json['jobEngineVersionUsed']) ? (string) $json['jobEngineVersionUsed'] : null,
'JobPercentComplete' => isset($json['jobPercentComplete']) ? (int) $json['jobPercentComplete'] : null,
'JobTemplate' => isset($json['jobTemplate']) ? (string) $json['jobTemplate'] : null,
'LastShareDetails' => isset($json['lastShareDetails']) ? (string) $json['lastShareDetails'] : null,
'Messages' => empty($json['messages']) ? null : $this->populateResultJobMessages($json['messages']),
'OutputGroupDetails' => !isset($json['outputGroupDetails']) ? null : $this->populateResult__listOfOutputGroupDetail($json['outputGroupDetails']),
'Priority' => isset($json['priority']) ? (int) $json['priority'] : null,
Expand All @@ -1511,6 +1512,7 @@ private function populateResultJob(array $json): Job
'RetryCount' => isset($json['retryCount']) ? (int) $json['retryCount'] : null,
'Role' => (string) $json['role'],
'Settings' => $this->populateResultJobSettings($json['settings']),
'ShareStatus' => isset($json['shareStatus']) ? (string) $json['shareStatus'] : null,
'SimulateReservedQueue' => isset($json['simulateReservedQueue']) ? (string) $json['simulateReservedQueue'] : null,
'Status' => isset($json['status']) ? (string) $json['status'] : null,
'StatusUpdateInterval' => isset($json['statusUpdateInterval']) ? (string) $json['statusUpdateInterval'] : null,
Expand Down Expand Up @@ -1709,6 +1711,7 @@ private function populateResultMovSettings(array $json): MovSettings
private function populateResultMp2Settings(array $json): Mp2Settings
{
return new Mp2Settings([
'AudioDescriptionMix' => isset($json['audioDescriptionMix']) ? (string) $json['audioDescriptionMix'] : null,
'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null,
'Channels' => isset($json['channels']) ? (int) $json['channels'] : null,
'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null,
Expand Down Expand Up @@ -2357,6 +2360,8 @@ private function populateResultVideoSelector(array $json): VideoSelector
'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null,
'Rotate' => isset($json['rotate']) ? (string) $json['rotate'] : null,
'SampleRange' => isset($json['sampleRange']) ? (string) $json['sampleRange'] : null,
'SelectorType' => isset($json['selectorType']) ? (string) $json['selectorType'] : null,
'Streams' => !isset($json['streams']) ? null : $this->populateResult__listOf__integerMin1Max2147483647($json['streams']),
]);
}

Expand Down
3 changes: 2 additions & 1 deletion src/Service/MediaConvert/src/ValueObject/AacSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ final class AacSettings
* Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the
* default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1)
* adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo,
* which optimizes for encoding stereo audio at very low bitrates.
* which optimizes for encoding stereo audio at very low bitrates. For improved audio quality at lower bitrates,
* adaptive audio bitrate switching, and loudness control: Choose XHE.
*
* @var AacCodecProfile::*|null
*/
Expand Down
10 changes: 6 additions & 4 deletions src/Service/MediaConvert/src/ValueObject/HlsSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,12 @@ final class HlsSettings
private $descriptiveVideoServiceFlag;

/**
* Choose Include to have MediaConvert generate a child manifest that lists only the I-frames for this rendition, in
* addition to your regular manifest for this rendition. You might use this manifest as part of a workflow that creates
* preview functions for your video. MediaConvert adds both the I-frame only child manifest and the regular child
* manifest to the parent manifest. When you don't need the I-frame only child manifest, keep the default value Exclude.
* Generate a variant manifest that lists only the I-frames for this rendition. You might use this manifest as part of a
* workflow that creates preview functions for your video. MediaConvert adds both the I-frame only variant manifest and
* the regular variant manifest to the multivariant manifest. To have MediaConvert write a variant manifest that
* references I-frames from your output content using EXT-X-BYTERANGE tags: Choose Include. To have MediaConvert output
* I-frames as single frame TS files and a corresponding variant manifest that references them: Choose Include as TS.
* When you don't need the I-frame only variant manifest: Keep the default value, Exclude.
*
* @var HlsIFrameOnlyManifest::*|null
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ final class InputTamsSettings
* EventBridge Connection stores your authentication credentials securely. MediaConvert assumes your job's IAM role to
* access this connection, so ensure the role has the events:RetrieveConnectionCredentials,
* secretsmanager:DescribeSecret, and secretsmanager:GetSecretValue permissions. Format:
* arn:aws:events:region:account-id:connection/connection-name/unique-id.
* arn:aws:events:region:account-id:connection/connection-name/unique-id This setting is required when you include TAMS
* settings in your job.
*
* @var string|null
*/
Expand All @@ -44,7 +45,7 @@ final class InputTamsSettings
* the appropriate flows containing the media segments you want to process. The source ID corresponds to a specific
* media source registered in your TAMS server. This source must be of type urn:x-nmos:format:multi, and can can
* reference multiple flows for audio, video, or combined audio/video content. MediaConvert automatically selects the
* highest quality flows available for your job. This setting is required when include TAMS settings in your job.
* highest quality flows available for your job. This setting is required when you include TAMS settings in your job.
*
* @var string|null
*/
Expand All @@ -54,7 +55,7 @@ final class InputTamsSettings
* Specify the time range of media segments to retrieve from your TAMS server. MediaConvert fetches only the segments
* that fall within this range. Use the format specified by your TAMS server implementation. This must be two timestamp
* values with the format {sign?}{seconds}:{nanoseconds}, separated by an underscore, surrounded by either parentheses
* or square brackets. Example: [15:0_35:0) This setting is required when include TAMS settings in your job.
* or square brackets. Example: [15:0_35:0) This setting is required when you include TAMS settings in your job.
*
* @var string|null
*/
Expand Down
Loading
Loading