From e1e26f4f5ea5e826a0de8e9c60e4a1e6281d234f Mon Sep 17 00:00:00 2001 From: AsyncAws Bot Date: Sat, 8 Feb 2025 06:29:36 +0000 Subject: [PATCH] update generated code --- manifest.json | 2 +- src/Service/MediaConvert/CHANGELOG.md | 1 + .../Enum/Av1FramerateConversionAlgorithm.php | 21 ++- .../AvcIntraFramerateConversionAlgorithm.php | 21 ++- .../src/Enum/ChromaPositionMode.php | 24 +++ .../MediaConvert/src/Enum/ContainerType.php | 2 + .../src/Enum/GifFramerateControl.php | 27 ++++ .../Enum/GifFramerateConversionAlgorithm.php | 22 +++ .../Enum/H264FramerateConversionAlgorithm.php | 21 ++- .../Enum/H265FramerateConversionAlgorithm.php | 21 ++- .../Mpeg2FramerateConversionAlgorithm.php | 21 ++- .../ProresFramerateConversionAlgorithm.php | 21 ++- ...compressedFramerateConversionAlgorithm.php | 21 ++- .../Enum/Vc3FramerateConversionAlgorithm.php | 21 ++- .../MediaConvert/src/Enum/VideoCodec.php | 2 + .../Enum/Vp8FramerateConversionAlgorithm.php | 21 ++- .../Enum/Vp9FramerateConversionAlgorithm.php | 21 ++- .../MediaConvert/src/Enum/WavFormat.php | 7 +- .../src/Enum/WebvttStylePassthrough.php | 17 ++- .../Enum/XavcFramerateConversionAlgorithm.php | 21 ++- .../src/Result/CreateJobResponse.php | 13 ++ .../src/Result/GetJobResponse.php | 13 ++ .../src/Result/ListJobsResponse.php | 13 ++ .../src/ValueObject/Av1Settings.php | 19 ++- .../src/ValueObject/AvcIntraSettings.php | 19 ++- .../src/ValueObject/GifSettings.php | 139 ++++++++++++++++++ .../src/ValueObject/H264Settings.php | 19 ++- .../src/ValueObject/H265Settings.php | 19 ++- .../src/ValueObject/Mpeg2Settings.php | 19 ++- .../MediaConvert/src/ValueObject/Output.php | 4 +- .../src/ValueObject/ProresSettings.php | 19 ++- .../src/ValueObject/UncompressedSettings.php | 19 ++- .../src/ValueObject/Vc3Settings.php | 19 ++- .../src/ValueObject/VideoCodecSettings.php | 24 ++- .../src/ValueObject/VideoDescription.php | 33 ++++- .../src/ValueObject/Vp8Settings.php | 19 ++- .../src/ValueObject/Vp9Settings.php | 19 ++- .../src/ValueObject/WavSettings.php | 5 +- .../ValueObject/WebvttDestinationSettings.php | 15 +- .../src/ValueObject/XavcSettings.php | 19 ++- 40 files changed, 602 insertions(+), 201 deletions(-) create mode 100644 src/Service/MediaConvert/src/Enum/ChromaPositionMode.php create mode 100644 src/Service/MediaConvert/src/Enum/GifFramerateControl.php create mode 100644 src/Service/MediaConvert/src/Enum/GifFramerateConversionAlgorithm.php create mode 100644 src/Service/MediaConvert/src/ValueObject/GifSettings.php diff --git a/manifest.json b/manifest.json index bae1f311e..dcd8d67aa 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "variables": { - "${LATEST}": "3.339.8" + "${LATEST}": "3.339.9" }, "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 c4f0be155..7e3c6d67e 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 dynamic audio configuration and the ability to disable the deblocking filter for h265 encodes. +- AWS api-change: This release adds support for Animated GIF output, forced chroma sample positioning metadata, and Extensible Wave Container format ## 1.5.0 diff --git a/src/Service/MediaConvert/src/Enum/Av1FramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/Av1FramerateConversionAlgorithm.php index b23692f49..d9fd5782e 100644 --- a/src/Service/MediaConvert/src/Enum/Av1FramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/Av1FramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class Av1FramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/AvcIntraFramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/AvcIntraFramerateConversionAlgorithm.php index f0a676a86..e57998c62 100644 --- a/src/Service/MediaConvert/src/Enum/AvcIntraFramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/AvcIntraFramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class AvcIntraFramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/ChromaPositionMode.php b/src/Service/MediaConvert/src/Enum/ChromaPositionMode.php new file mode 100644 index 000000000..28b7a261c --- /dev/null +++ b/src/Service/MediaConvert/src/Enum/ChromaPositionMode.php @@ -0,0 +1,24 @@ + true, + self::FORCE_CENTER => true, + self::FORCE_TOP_LEFT => true, + ][$value]); + } +} diff --git a/src/Service/MediaConvert/src/Enum/ContainerType.php b/src/Service/MediaConvert/src/Enum/ContainerType.php index e52d28894..6fca96e71 100644 --- a/src/Service/MediaConvert/src/Enum/ContainerType.php +++ b/src/Service/MediaConvert/src/Enum/ContainerType.php @@ -10,6 +10,7 @@ final class ContainerType { public const CMFC = 'CMFC'; public const F4V = 'F4V'; + public const GIF = 'GIF'; public const ISMV = 'ISMV'; public const M2TS = 'M2TS'; public const M3U8 = 'M3U8'; @@ -27,6 +28,7 @@ public static function exists(string $value): bool return isset([ self::CMFC => true, self::F4V => true, + self::GIF => true, self::ISMV => true, self::M2TS => true, self::M3U8 => true, diff --git a/src/Service/MediaConvert/src/Enum/GifFramerateControl.php b/src/Service/MediaConvert/src/Enum/GifFramerateControl.php new file mode 100644 index 000000000..fbf522c95 --- /dev/null +++ b/src/Service/MediaConvert/src/Enum/GifFramerateControl.php @@ -0,0 +1,27 @@ + true, + self::SPECIFIED => true, + ][$value]); + } +} diff --git a/src/Service/MediaConvert/src/Enum/GifFramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/GifFramerateConversionAlgorithm.php new file mode 100644 index 000000000..2388d4d21 --- /dev/null +++ b/src/Service/MediaConvert/src/Enum/GifFramerateConversionAlgorithm.php @@ -0,0 +1,22 @@ + true, + self::INTERPOLATE => true, + ][$value]); + } +} diff --git a/src/Service/MediaConvert/src/Enum/H264FramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/H264FramerateConversionAlgorithm.php index f84cc33d8..d4896a621 100644 --- a/src/Service/MediaConvert/src/Enum/H264FramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/H264FramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class H264FramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/H265FramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/H265FramerateConversionAlgorithm.php index bc8ebc188..897b033d9 100644 --- a/src/Service/MediaConvert/src/Enum/H265FramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/H265FramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class H265FramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/Mpeg2FramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/Mpeg2FramerateConversionAlgorithm.php index 2d7ce52fe..cf5f41158 100644 --- a/src/Service/MediaConvert/src/Enum/Mpeg2FramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/Mpeg2FramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class Mpeg2FramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/ProresFramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/ProresFramerateConversionAlgorithm.php index 892ed5736..e1b33ed13 100644 --- a/src/Service/MediaConvert/src/Enum/ProresFramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/ProresFramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class ProresFramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/UncompressedFramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/UncompressedFramerateConversionAlgorithm.php index bd9922eb0..346870155 100644 --- a/src/Service/MediaConvert/src/Enum/UncompressedFramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/UncompressedFramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class UncompressedFramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/Vc3FramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/Vc3FramerateConversionAlgorithm.php index 5f8c8f60e..8e486bdfb 100644 --- a/src/Service/MediaConvert/src/Enum/Vc3FramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/Vc3FramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class Vc3FramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/VideoCodec.php b/src/Service/MediaConvert/src/Enum/VideoCodec.php index 66702c076..436a33e14 100644 --- a/src/Service/MediaConvert/src/Enum/VideoCodec.php +++ b/src/Service/MediaConvert/src/Enum/VideoCodec.php @@ -10,6 +10,7 @@ final class VideoCodec public const AV1 = 'AV1'; public const AVC_INTRA = 'AVC_INTRA'; public const FRAME_CAPTURE = 'FRAME_CAPTURE'; + public const GIF = 'GIF'; public const H_264 = 'H_264'; public const H_265 = 'H_265'; public const MPEG2 = 'MPEG2'; @@ -27,6 +28,7 @@ public static function exists(string $value): bool self::AV1 => true, self::AVC_INTRA => true, self::FRAME_CAPTURE => true, + self::GIF => true, self::H_264 => true, self::H_265 => true, self::MPEG2 => true, diff --git a/src/Service/MediaConvert/src/Enum/Vp8FramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/Vp8FramerateConversionAlgorithm.php index 20fe4cf11..4c102fd0c 100644 --- a/src/Service/MediaConvert/src/Enum/Vp8FramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/Vp8FramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class Vp8FramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/Vp9FramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/Vp9FramerateConversionAlgorithm.php index 19b7d28b9..38ab04419 100644 --- a/src/Service/MediaConvert/src/Enum/Vp9FramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/Vp9FramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class Vp9FramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/WavFormat.php b/src/Service/MediaConvert/src/Enum/WavFormat.php index dddd9d967..40d339ac7 100644 --- a/src/Service/MediaConvert/src/Enum/WavFormat.php +++ b/src/Service/MediaConvert/src/Enum/WavFormat.php @@ -3,17 +3,20 @@ namespace AsyncAws\MediaConvert\Enum; /** - * The service defaults to using RIFF for WAV outputs. If your output audio is likely to exceed 4 GB in file size, or if - * you otherwise need the extended support of the RF64 format, set your output WAV file format to RF64. + * Specify the file format for your wave audio output. To use a RIFF wave format: Keep the default value, RIFF. If your + * output audio is likely to exceed 4GB in file size, or if you otherwise need the extended support of the RF64 format: + * Choose RF64. If your player only supports the extensible wave format: Choose Extensible. */ final class WavFormat { + public const EXTENSIBLE = 'EXTENSIBLE'; public const RF64 = 'RF64'; public const RIFF = 'RIFF'; public static function exists(string $value): bool { return isset([ + self::EXTENSIBLE => true, self::RF64 => true, self::RIFF => true, ][$value]); diff --git a/src/Service/MediaConvert/src/Enum/WebvttStylePassthrough.php b/src/Service/MediaConvert/src/Enum/WebvttStylePassthrough.php index 1b0faf739..eb1a602de 100644 --- a/src/Service/MediaConvert/src/Enum/WebvttStylePassthrough.php +++ b/src/Service/MediaConvert/src/Enum/WebvttStylePassthrough.php @@ -3,17 +3,21 @@ namespace AsyncAws\MediaConvert\Enum; /** - * To use the available style, color, and position information from your input captions: Set Style passthrough to - * Enabled. MediaConvert uses default settings when style and position information is missing from your input captions. - * To recreate the input captions exactly: Set Style passthrough to Strict. MediaConvert automatically applies timing - * adjustments, including adjustments for frame rate conversion, ad avails, and input clipping. Your input captions - * format must be WebVTT. To ignore the style and position information from your input captions and use simplified - * output captions: Set Style passthrough to Disabled, or leave blank. + * Specify how MediaConvert writes style information in your output WebVTT captions. To use the available style, color, + * and position information from your input captions: Choose Enabled. MediaConvert uses default settings when style and + * position information is missing from your input captions. To recreate the input captions exactly: Choose Strict. + * MediaConvert automatically applies timing adjustments, including adjustments for frame rate conversion, ad avails, + * and input clipping. Your input captions format must be WebVTT. To ignore the style and position information from your + * input captions and use simplified output captions: Keep the default value, Disabled. Or leave blank. To use the + * available style, color, and position information from your input captions, while merging cues with identical time + * ranges: Choose merge. This setting can help prevent positioning overlaps for certain players that expect a single + * single cue for any given time range. */ final class WebvttStylePassthrough { public const DISABLED = 'DISABLED'; public const ENABLED = 'ENABLED'; + public const MERGE = 'MERGE'; public const STRICT = 'STRICT'; public static function exists(string $value): bool @@ -21,6 +25,7 @@ public static function exists(string $value): bool return isset([ self::DISABLED => true, self::ENABLED => true, + self::MERGE => true, self::STRICT => true, ][$value]); } diff --git a/src/Service/MediaConvert/src/Enum/XavcFramerateConversionAlgorithm.php b/src/Service/MediaConvert/src/Enum/XavcFramerateConversionAlgorithm.php index d1fb0942e..1a7ef341b 100644 --- a/src/Service/MediaConvert/src/Enum/XavcFramerateConversionAlgorithm.php +++ b/src/Service/MediaConvert/src/Enum/XavcFramerateConversionAlgorithm.php @@ -3,20 +3,24 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. */ final class XavcFramerateConversionAlgorithm { public const DUPLICATE_DROP = 'DUPLICATE_DROP'; public const FRAMEFORMER = 'FRAMEFORMER'; public const INTERPOLATE = 'INTERPOLATE'; + public const MAINTAIN_FRAME_COUNT = 'MAINTAIN_FRAME_COUNT'; public static function exists(string $value): bool { @@ -24,6 +28,7 @@ public static function exists(string $value): bool self::DUPLICATE_DROP => true, self::FRAMEFORMER => true, self::INTERPOLATE => true, + self::MAINTAIN_FRAME_COUNT => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Result/CreateJobResponse.php b/src/Service/MediaConvert/src/Result/CreateJobResponse.php index 177660a11..2f6e0abb5 100644 --- a/src/Service/MediaConvert/src/Result/CreateJobResponse.php +++ b/src/Service/MediaConvert/src/Result/CreateJobResponse.php @@ -74,6 +74,7 @@ use AsyncAws\MediaConvert\ValueObject\FlacSettings; use AsyncAws\MediaConvert\ValueObject\ForceIncludeRenditionSize; use AsyncAws\MediaConvert\ValueObject\FrameCaptureSettings; +use AsyncAws\MediaConvert\ValueObject\GifSettings; use AsyncAws\MediaConvert\ValueObject\H264QvbrSettings; use AsyncAws\MediaConvert\ValueObject\H264Settings; use AsyncAws\MediaConvert\ValueObject\H265QvbrSettings; @@ -1025,6 +1026,16 @@ private function populateResultFrameCaptureSettings(array $json): FrameCaptureSe ]); } + private function populateResultGifSettings(array $json): GifSettings + { + return new GifSettings([ + 'FramerateControl' => isset($json['framerateControl']) ? (string) $json['framerateControl'] : null, + 'FramerateConversionAlgorithm' => isset($json['framerateConversionAlgorithm']) ? (string) $json['framerateConversionAlgorithm'] : null, + 'FramerateDenominator' => isset($json['framerateDenominator']) ? (int) $json['framerateDenominator'] : null, + 'FramerateNumerator' => isset($json['framerateNumerator']) ? (int) $json['framerateNumerator'] : null, + ]); + } + private function populateResultH264QvbrSettings(array $json): H264QvbrSettings { return new H264QvbrSettings([ @@ -2114,6 +2125,7 @@ private function populateResultVideoCodecSettings(array $json): VideoCodecSettin 'AvcIntraSettings' => empty($json['avcIntraSettings']) ? null : $this->populateResultAvcIntraSettings($json['avcIntraSettings']), 'Codec' => isset($json['codec']) ? (string) $json['codec'] : null, 'FrameCaptureSettings' => empty($json['frameCaptureSettings']) ? null : $this->populateResultFrameCaptureSettings($json['frameCaptureSettings']), + 'GifSettings' => empty($json['gifSettings']) ? null : $this->populateResultGifSettings($json['gifSettings']), 'H264Settings' => empty($json['h264Settings']) ? null : $this->populateResultH264Settings($json['h264Settings']), 'H265Settings' => empty($json['h265Settings']) ? null : $this->populateResultH265Settings($json['h265Settings']), 'Mpeg2Settings' => empty($json['mpeg2Settings']) ? null : $this->populateResultMpeg2Settings($json['mpeg2Settings']), @@ -2131,6 +2143,7 @@ private function populateResultVideoDescription(array $json): VideoDescription return new VideoDescription([ 'AfdSignaling' => isset($json['afdSignaling']) ? (string) $json['afdSignaling'] : null, 'AntiAlias' => isset($json['antiAlias']) ? (string) $json['antiAlias'] : null, + 'ChromaPositionMode' => isset($json['chromaPositionMode']) ? (string) $json['chromaPositionMode'] : null, 'CodecSettings' => empty($json['codecSettings']) ? null : $this->populateResultVideoCodecSettings($json['codecSettings']), 'ColorMetadata' => isset($json['colorMetadata']) ? (string) $json['colorMetadata'] : null, 'Crop' => empty($json['crop']) ? null : $this->populateResultRectangle($json['crop']), diff --git a/src/Service/MediaConvert/src/Result/GetJobResponse.php b/src/Service/MediaConvert/src/Result/GetJobResponse.php index 96e40d0cf..6a9046d48 100644 --- a/src/Service/MediaConvert/src/Result/GetJobResponse.php +++ b/src/Service/MediaConvert/src/Result/GetJobResponse.php @@ -74,6 +74,7 @@ use AsyncAws\MediaConvert\ValueObject\FlacSettings; use AsyncAws\MediaConvert\ValueObject\ForceIncludeRenditionSize; use AsyncAws\MediaConvert\ValueObject\FrameCaptureSettings; +use AsyncAws\MediaConvert\ValueObject\GifSettings; use AsyncAws\MediaConvert\ValueObject\H264QvbrSettings; use AsyncAws\MediaConvert\ValueObject\H264Settings; use AsyncAws\MediaConvert\ValueObject\H265QvbrSettings; @@ -1025,6 +1026,16 @@ private function populateResultFrameCaptureSettings(array $json): FrameCaptureSe ]); } + private function populateResultGifSettings(array $json): GifSettings + { + return new GifSettings([ + 'FramerateControl' => isset($json['framerateControl']) ? (string) $json['framerateControl'] : null, + 'FramerateConversionAlgorithm' => isset($json['framerateConversionAlgorithm']) ? (string) $json['framerateConversionAlgorithm'] : null, + 'FramerateDenominator' => isset($json['framerateDenominator']) ? (int) $json['framerateDenominator'] : null, + 'FramerateNumerator' => isset($json['framerateNumerator']) ? (int) $json['framerateNumerator'] : null, + ]); + } + private function populateResultH264QvbrSettings(array $json): H264QvbrSettings { return new H264QvbrSettings([ @@ -2114,6 +2125,7 @@ private function populateResultVideoCodecSettings(array $json): VideoCodecSettin 'AvcIntraSettings' => empty($json['avcIntraSettings']) ? null : $this->populateResultAvcIntraSettings($json['avcIntraSettings']), 'Codec' => isset($json['codec']) ? (string) $json['codec'] : null, 'FrameCaptureSettings' => empty($json['frameCaptureSettings']) ? null : $this->populateResultFrameCaptureSettings($json['frameCaptureSettings']), + 'GifSettings' => empty($json['gifSettings']) ? null : $this->populateResultGifSettings($json['gifSettings']), 'H264Settings' => empty($json['h264Settings']) ? null : $this->populateResultH264Settings($json['h264Settings']), 'H265Settings' => empty($json['h265Settings']) ? null : $this->populateResultH265Settings($json['h265Settings']), 'Mpeg2Settings' => empty($json['mpeg2Settings']) ? null : $this->populateResultMpeg2Settings($json['mpeg2Settings']), @@ -2131,6 +2143,7 @@ private function populateResultVideoDescription(array $json): VideoDescription return new VideoDescription([ 'AfdSignaling' => isset($json['afdSignaling']) ? (string) $json['afdSignaling'] : null, 'AntiAlias' => isset($json['antiAlias']) ? (string) $json['antiAlias'] : null, + 'ChromaPositionMode' => isset($json['chromaPositionMode']) ? (string) $json['chromaPositionMode'] : null, 'CodecSettings' => empty($json['codecSettings']) ? null : $this->populateResultVideoCodecSettings($json['codecSettings']), 'ColorMetadata' => isset($json['colorMetadata']) ? (string) $json['colorMetadata'] : null, 'Crop' => empty($json['crop']) ? null : $this->populateResultRectangle($json['crop']), diff --git a/src/Service/MediaConvert/src/Result/ListJobsResponse.php b/src/Service/MediaConvert/src/Result/ListJobsResponse.php index b8646dcb8..b84405d44 100644 --- a/src/Service/MediaConvert/src/Result/ListJobsResponse.php +++ b/src/Service/MediaConvert/src/Result/ListJobsResponse.php @@ -77,6 +77,7 @@ use AsyncAws\MediaConvert\ValueObject\FlacSettings; use AsyncAws\MediaConvert\ValueObject\ForceIncludeRenditionSize; use AsyncAws\MediaConvert\ValueObject\FrameCaptureSettings; +use AsyncAws\MediaConvert\ValueObject\GifSettings; use AsyncAws\MediaConvert\ValueObject\H264QvbrSettings; use AsyncAws\MediaConvert\ValueObject\H264Settings; use AsyncAws\MediaConvert\ValueObject\H265QvbrSettings; @@ -1092,6 +1093,16 @@ private function populateResultFrameCaptureSettings(array $json): FrameCaptureSe ]); } + private function populateResultGifSettings(array $json): GifSettings + { + return new GifSettings([ + 'FramerateControl' => isset($json['framerateControl']) ? (string) $json['framerateControl'] : null, + 'FramerateConversionAlgorithm' => isset($json['framerateConversionAlgorithm']) ? (string) $json['framerateConversionAlgorithm'] : null, + 'FramerateDenominator' => isset($json['framerateDenominator']) ? (int) $json['framerateDenominator'] : null, + 'FramerateNumerator' => isset($json['framerateNumerator']) ? (int) $json['framerateNumerator'] : null, + ]); + } + private function populateResultH264QvbrSettings(array $json): H264QvbrSettings { return new H264QvbrSettings([ @@ -2181,6 +2192,7 @@ private function populateResultVideoCodecSettings(array $json): VideoCodecSettin 'AvcIntraSettings' => empty($json['avcIntraSettings']) ? null : $this->populateResultAvcIntraSettings($json['avcIntraSettings']), 'Codec' => isset($json['codec']) ? (string) $json['codec'] : null, 'FrameCaptureSettings' => empty($json['frameCaptureSettings']) ? null : $this->populateResultFrameCaptureSettings($json['frameCaptureSettings']), + 'GifSettings' => empty($json['gifSettings']) ? null : $this->populateResultGifSettings($json['gifSettings']), 'H264Settings' => empty($json['h264Settings']) ? null : $this->populateResultH264Settings($json['h264Settings']), 'H265Settings' => empty($json['h265Settings']) ? null : $this->populateResultH265Settings($json['h265Settings']), 'Mpeg2Settings' => empty($json['mpeg2Settings']) ? null : $this->populateResultMpeg2Settings($json['mpeg2Settings']), @@ -2198,6 +2210,7 @@ private function populateResultVideoDescription(array $json): VideoDescription return new VideoDescription([ 'AfdSignaling' => isset($json['afdSignaling']) ? (string) $json['afdSignaling'] : null, 'AntiAlias' => isset($json['antiAlias']) ? (string) $json['antiAlias'] : null, + 'ChromaPositionMode' => isset($json['chromaPositionMode']) ? (string) $json['chromaPositionMode'] : null, 'CodecSettings' => empty($json['codecSettings']) ? null : $this->populateResultVideoCodecSettings($json['codecSettings']), 'ColorMetadata' => isset($json['colorMetadata']) ? (string) $json['colorMetadata'] : null, 'Crop' => empty($json['crop']) ? null : $this->populateResultRectangle($json['crop']), diff --git a/src/Service/MediaConvert/src/ValueObject/Av1Settings.php b/src/Service/MediaConvert/src/ValueObject/Av1Settings.php index 3d2d1cfe6..aa377730f 100644 --- a/src/Service/MediaConvert/src/ValueObject/Av1Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/Av1Settings.php @@ -52,14 +52,17 @@ final class Av1Settings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var Av1FramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/AvcIntraSettings.php b/src/Service/MediaConvert/src/ValueObject/AvcIntraSettings.php index 75f83a99f..f168b3fc2 100644 --- a/src/Service/MediaConvert/src/ValueObject/AvcIntraSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/AvcIntraSettings.php @@ -47,14 +47,17 @@ final class AvcIntraSettings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var AvcIntraFramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/GifSettings.php b/src/Service/MediaConvert/src/ValueObject/GifSettings.php new file mode 100644 index 000000000..48825baca --- /dev/null +++ b/src/Service/MediaConvert/src/ValueObject/GifSettings.php @@ -0,0 +1,139 @@ +(CodecSettings) to the value GIF. + */ +final class GifSettings +{ + /** + * If you are using the console, use the Framerate setting to specify the frame rate for this output. If you want to + * keep the same frame rate as the input video, choose Follow source. If you want to do frame rate conversion, choose a + * frame rate from the dropdown list or choose Custom. The framerates shown in the dropdown list are decimal + * approximations of fractions. If you choose Custom, specify your frame rate as a fraction. If you are creating your + * transcoding job specification as a JSON file without the console, use FramerateControl to specify which value the + * service uses for the frame rate for this output. Choose INITIALIZE_FROM_SOURCE if you want the service to use the + * frame rate from the input. Choose SPECIFIED if you want the service to use the frame rate you specify in the settings + * FramerateNumerator and FramerateDenominator. + * + * @var GifFramerateControl::*|null + */ + private $framerateControl; + + /** + * Optional. Specify how the transcoder performs framerate conversion. The default behavior is to use Drop duplicate + * (DUPLICATE_DROP) conversion. When you choose Interpolate (INTERPOLATE) instead, the conversion produces smoother + * motion. + * + * @var GifFramerateConversionAlgorithm::*|null + */ + private $framerateConversionAlgorithm; + + /** + * When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For + * example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this + * example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use frame + * rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976. + * + * @var int|null + */ + private $framerateDenominator; + + /** + * When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For + * example, 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this + * example, use 24000 for the value of FramerateNumerator. When you use the console for transcode jobs that use frame + * rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976. + * + * @var int|null + */ + private $framerateNumerator; + + /** + * @param array{ + * FramerateControl?: null|GifFramerateControl::*, + * FramerateConversionAlgorithm?: null|GifFramerateConversionAlgorithm::*, + * FramerateDenominator?: null|int, + * FramerateNumerator?: null|int, + * } $input + */ + public function __construct(array $input) + { + $this->framerateControl = $input['FramerateControl'] ?? null; + $this->framerateConversionAlgorithm = $input['FramerateConversionAlgorithm'] ?? null; + $this->framerateDenominator = $input['FramerateDenominator'] ?? null; + $this->framerateNumerator = $input['FramerateNumerator'] ?? null; + } + + /** + * @param array{ + * FramerateControl?: null|GifFramerateControl::*, + * FramerateConversionAlgorithm?: null|GifFramerateConversionAlgorithm::*, + * FramerateDenominator?: null|int, + * FramerateNumerator?: null|int, + * }|GifSettings $input + */ + public static function create($input): self + { + return $input instanceof self ? $input : new self($input); + } + + /** + * @return GifFramerateControl::*|null + */ + public function getFramerateControl(): ?string + { + return $this->framerateControl; + } + + /** + * @return GifFramerateConversionAlgorithm::*|null + */ + public function getFramerateConversionAlgorithm(): ?string + { + return $this->framerateConversionAlgorithm; + } + + public function getFramerateDenominator(): ?int + { + return $this->framerateDenominator; + } + + public function getFramerateNumerator(): ?int + { + return $this->framerateNumerator; + } + + /** + * @internal + */ + public function requestBody(): array + { + $payload = []; + if (null !== $v = $this->framerateControl) { + if (!GifFramerateControl::exists($v)) { + throw new InvalidArgument(\sprintf('Invalid parameter "framerateControl" for "%s". The value "%s" is not a valid "GifFramerateControl".', __CLASS__, $v)); + } + $payload['framerateControl'] = $v; + } + if (null !== $v = $this->framerateConversionAlgorithm) { + if (!GifFramerateConversionAlgorithm::exists($v)) { + throw new InvalidArgument(\sprintf('Invalid parameter "framerateConversionAlgorithm" for "%s". The value "%s" is not a valid "GifFramerateConversionAlgorithm".', __CLASS__, $v)); + } + $payload['framerateConversionAlgorithm'] = $v; + } + if (null !== $v = $this->framerateDenominator) { + $payload['framerateDenominator'] = $v; + } + if (null !== $v = $this->framerateNumerator) { + $payload['framerateNumerator'] = $v; + } + + return $payload; + } +} diff --git a/src/Service/MediaConvert/src/ValueObject/H264Settings.php b/src/Service/MediaConvert/src/ValueObject/H264Settings.php index ef5615cb6..6f0fdb383 100644 --- a/src/Service/MediaConvert/src/ValueObject/H264Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/H264Settings.php @@ -145,14 +145,17 @@ final class H264Settings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var H264FramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/H265Settings.php b/src/Service/MediaConvert/src/ValueObject/H265Settings.php index 8a80b583b..843528937 100644 --- a/src/Service/MediaConvert/src/ValueObject/H265Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/H265Settings.php @@ -141,14 +141,17 @@ final class H265Settings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var H265FramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/Mpeg2Settings.php b/src/Service/MediaConvert/src/ValueObject/Mpeg2Settings.php index f763a707c..64b425e69 100644 --- a/src/Service/MediaConvert/src/ValueObject/Mpeg2Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/Mpeg2Settings.php @@ -79,14 +79,17 @@ final class Mpeg2Settings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var Mpeg2FramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/Output.php b/src/Service/MediaConvert/src/ValueObject/Output.php index 1cc985d32..cfaf6ded7 100644 --- a/src/Service/MediaConvert/src/ValueObject/Output.php +++ b/src/Service/MediaConvert/src/ValueObject/Output.php @@ -35,8 +35,8 @@ final class Output /** * Use Extension to specify the file extension for outputs in File output groups. If you do not specify a value, the * service will use default extensions by container type as follows * MPEG-2 transport stream, m2ts * Quicktime, mov * - * MXF container, mxf * MPEG-4 container, mp4 * WebM container, webm * No Container, the service will use codec - * extensions (e.g. AAC, H265, H265, AC3). + * MXF container, mxf * MPEG-4 container, mp4 * WebM container, webm * Animated GIF container, gif * No Container, the + * service will use codec extensions (e.g. AAC, H265, H265, AC3). * * @var string|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/ProresSettings.php b/src/Service/MediaConvert/src/ValueObject/ProresSettings.php index 4373f91b0..f6b83aeaf 100644 --- a/src/Service/MediaConvert/src/ValueObject/ProresSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/ProresSettings.php @@ -48,14 +48,17 @@ final class ProresSettings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var ProresFramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/UncompressedSettings.php b/src/Service/MediaConvert/src/ValueObject/UncompressedSettings.php index 9137c6ea9..b8735558e 100644 --- a/src/Service/MediaConvert/src/ValueObject/UncompressedSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/UncompressedSettings.php @@ -34,14 +34,17 @@ final class UncompressedSettings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var UncompressedFramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/Vc3Settings.php b/src/Service/MediaConvert/src/ValueObject/Vc3Settings.php index fbbf24c5e..9eeeb0d7b 100644 --- a/src/Service/MediaConvert/src/ValueObject/Vc3Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/Vc3Settings.php @@ -27,14 +27,17 @@ final class Vc3Settings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var Vc3FramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/VideoCodecSettings.php b/src/Service/MediaConvert/src/ValueObject/VideoCodecSettings.php index 831b62378..c2c764403 100644 --- a/src/Service/MediaConvert/src/ValueObject/VideoCodecSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/VideoCodecSettings.php @@ -9,9 +9,9 @@ * Video codec settings contains the group of settings related to video encoding. The settings in this group vary * depending on the value that you choose for Video codec. For each codec enum that you choose, define the corresponding * settings object. The following lists the codec enum, settings object pairs. * AV1, Av1Settings * AVC_INTRA, - * AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, - * Mpeg2Settings * PRORES, ProresSettings * UNCOMPRESSED, UncompressedSettings * VC3, Vc3Settings * VP8, Vp8Settings * - * VP9, Vp9Settings * XAVC, XavcSettings. + * AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * GIF, GifSettings * H_264, H264Settings * H_265, H265Settings + * * MPEG2, Mpeg2Settings * PRORES, ProresSettings * UNCOMPRESSED, UncompressedSettings * VC3, Vc3Settings * VP8, + * Vp8Settings * VP9, Vp9Settings * XAVC, XavcSettings. */ final class VideoCodecSettings { @@ -49,6 +49,13 @@ final class VideoCodecSettings */ private $frameCaptureSettings; + /** + * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the value GIF. + * + * @var GifSettings|null + */ + private $gifSettings; + /** * Required when you set Codec to the value H_264. * @@ -118,6 +125,7 @@ final class VideoCodecSettings * AvcIntraSettings?: null|AvcIntraSettings|array, * Codec?: null|VideoCodec::*, * FrameCaptureSettings?: null|FrameCaptureSettings|array, + * GifSettings?: null|GifSettings|array, * H264Settings?: null|H264Settings|array, * H265Settings?: null|H265Settings|array, * Mpeg2Settings?: null|Mpeg2Settings|array, @@ -135,6 +143,7 @@ public function __construct(array $input) $this->avcIntraSettings = isset($input['AvcIntraSettings']) ? AvcIntraSettings::create($input['AvcIntraSettings']) : null; $this->codec = $input['Codec'] ?? null; $this->frameCaptureSettings = isset($input['FrameCaptureSettings']) ? FrameCaptureSettings::create($input['FrameCaptureSettings']) : null; + $this->gifSettings = isset($input['GifSettings']) ? GifSettings::create($input['GifSettings']) : null; $this->h264Settings = isset($input['H264Settings']) ? H264Settings::create($input['H264Settings']) : null; $this->h265Settings = isset($input['H265Settings']) ? H265Settings::create($input['H265Settings']) : null; $this->mpeg2Settings = isset($input['Mpeg2Settings']) ? Mpeg2Settings::create($input['Mpeg2Settings']) : null; @@ -152,6 +161,7 @@ public function __construct(array $input) * AvcIntraSettings?: null|AvcIntraSettings|array, * Codec?: null|VideoCodec::*, * FrameCaptureSettings?: null|FrameCaptureSettings|array, + * GifSettings?: null|GifSettings|array, * H264Settings?: null|H264Settings|array, * H265Settings?: null|H265Settings|array, * Mpeg2Settings?: null|Mpeg2Settings|array, @@ -191,6 +201,11 @@ public function getFrameCaptureSettings(): ?FrameCaptureSettings return $this->frameCaptureSettings; } + public function getGifSettings(): ?GifSettings + { + return $this->gifSettings; + } + public function getH264Settings(): ?H264Settings { return $this->h264Settings; @@ -257,6 +272,9 @@ public function requestBody(): array if (null !== $v = $this->frameCaptureSettings) { $payload['frameCaptureSettings'] = $v->requestBody(); } + if (null !== $v = $this->gifSettings) { + $payload['gifSettings'] = $v->requestBody(); + } if (null !== $v = $this->h264Settings) { $payload['h264Settings'] = $v->requestBody(); } diff --git a/src/Service/MediaConvert/src/ValueObject/VideoDescription.php b/src/Service/MediaConvert/src/ValueObject/VideoDescription.php index a57a2a391..cb2a5ae57 100644 --- a/src/Service/MediaConvert/src/ValueObject/VideoDescription.php +++ b/src/Service/MediaConvert/src/ValueObject/VideoDescription.php @@ -5,6 +5,7 @@ use AsyncAws\Core\Exception\InvalidArgument; use AsyncAws\MediaConvert\Enum\AfdSignaling; use AsyncAws\MediaConvert\Enum\AntiAlias; +use AsyncAws\MediaConvert\Enum\ChromaPositionMode; use AsyncAws\MediaConvert\Enum\ColorMetadata; use AsyncAws\MediaConvert\Enum\DropFrameTimecode; use AsyncAws\MediaConvert\Enum\RespondToAfd; @@ -36,13 +37,22 @@ final class VideoDescription */ private $antiAlias; + /** + * Specify the chroma sample positioning metadata for your H.264 or H.265 output. To have MediaConvert automatically + * determine chroma positioning: We recommend that you keep the default value, Auto. To specify center positioning: + * Choose Force center. To specify top left positioning: Choose Force top left. + * + * @var ChromaPositionMode::*|null + */ + private $chromaPositionMode; + /** * Video codec settings contains the group of settings related to video encoding. The settings in this group vary * depending on the value that you choose for Video codec. For each codec enum that you choose, define the corresponding * settings object. The following lists the codec enum, settings object pairs. * AV1, Av1Settings * AVC_INTRA, - * AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings * H_265, H265Settings * MPEG2, - * Mpeg2Settings * PRORES, ProresSettings * UNCOMPRESSED, UncompressedSettings * VC3, Vc3Settings * VP8, Vp8Settings * - * VP9, Vp9Settings * XAVC, XavcSettings. + * AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * GIF, GifSettings * H_264, H264Settings * H_265, H265Settings + * * MPEG2, Mpeg2Settings * PRORES, ProresSettings * UNCOMPRESSED, UncompressedSettings * VC3, Vc3Settings * VP8, + * Vp8Settings * VP9, Vp9Settings * XAVC, XavcSettings. * * @var VideoCodecSettings|null */ @@ -170,6 +180,7 @@ final class VideoDescription * @param array{ * AfdSignaling?: null|AfdSignaling::*, * AntiAlias?: null|AntiAlias::*, + * ChromaPositionMode?: null|ChromaPositionMode::*, * CodecSettings?: null|VideoCodecSettings|array, * ColorMetadata?: null|ColorMetadata::*, * Crop?: null|Rectangle|array, @@ -190,6 +201,7 @@ public function __construct(array $input) { $this->afdSignaling = $input['AfdSignaling'] ?? null; $this->antiAlias = $input['AntiAlias'] ?? null; + $this->chromaPositionMode = $input['ChromaPositionMode'] ?? null; $this->codecSettings = isset($input['CodecSettings']) ? VideoCodecSettings::create($input['CodecSettings']) : null; $this->colorMetadata = $input['ColorMetadata'] ?? null; $this->crop = isset($input['Crop']) ? Rectangle::create($input['Crop']) : null; @@ -210,6 +222,7 @@ public function __construct(array $input) * @param array{ * AfdSignaling?: null|AfdSignaling::*, * AntiAlias?: null|AntiAlias::*, + * ChromaPositionMode?: null|ChromaPositionMode::*, * CodecSettings?: null|VideoCodecSettings|array, * ColorMetadata?: null|ColorMetadata::*, * Crop?: null|Rectangle|array, @@ -247,6 +260,14 @@ public function getAntiAlias(): ?string return $this->antiAlias; } + /** + * @return ChromaPositionMode::*|null + */ + public function getChromaPositionMode(): ?string + { + return $this->chromaPositionMode; + } + public function getCodecSettings(): ?VideoCodecSettings { return $this->codecSettings; @@ -353,6 +374,12 @@ public function requestBody(): array } $payload['antiAlias'] = $v; } + if (null !== $v = $this->chromaPositionMode) { + if (!ChromaPositionMode::exists($v)) { + throw new InvalidArgument(\sprintf('Invalid parameter "chromaPositionMode" for "%s". The value "%s" is not a valid "ChromaPositionMode".', __CLASS__, $v)); + } + $payload['chromaPositionMode'] = $v; + } if (null !== $v = $this->codecSettings) { $payload['codecSettings'] = $v->requestBody(); } diff --git a/src/Service/MediaConvert/src/ValueObject/Vp8Settings.php b/src/Service/MediaConvert/src/ValueObject/Vp8Settings.php index b37ef9702..3a65858a6 100644 --- a/src/Service/MediaConvert/src/ValueObject/Vp8Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/Vp8Settings.php @@ -32,14 +32,17 @@ final class Vp8Settings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var Vp8FramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/Vp9Settings.php b/src/Service/MediaConvert/src/ValueObject/Vp9Settings.php index 3cd745689..8e8d95572 100644 --- a/src/Service/MediaConvert/src/ValueObject/Vp9Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/Vp9Settings.php @@ -32,14 +32,17 @@ final class Vp9Settings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var Vp9FramerateConversionAlgorithm::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/WavSettings.php b/src/Service/MediaConvert/src/ValueObject/WavSettings.php index 9cb11d4e1..483219a0a 100644 --- a/src/Service/MediaConvert/src/ValueObject/WavSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/WavSettings.php @@ -26,8 +26,9 @@ final class WavSettings private $channels; /** - * The service defaults to using RIFF for WAV outputs. If your output audio is likely to exceed 4 GB in file size, or if - * you otherwise need the extended support of the RF64 format, set your output WAV file format to RF64. + * Specify the file format for your wave audio output. To use a RIFF wave format: Keep the default value, RIFF. If your + * output audio is likely to exceed 4GB in file size, or if you otherwise need the extended support of the RF64 format: + * Choose RF64. If your player only supports the extensible wave format: Choose Extensible. * * @var WavFormat::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/WebvttDestinationSettings.php b/src/Service/MediaConvert/src/ValueObject/WebvttDestinationSettings.php index 35e040b64..2b5c1805c 100644 --- a/src/Service/MediaConvert/src/ValueObject/WebvttDestinationSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/WebvttDestinationSettings.php @@ -29,12 +29,15 @@ final class WebvttDestinationSettings private $accessibility; /** - * To use the available style, color, and position information from your input captions: Set Style passthrough to - * Enabled. MediaConvert uses default settings when style and position information is missing from your input captions. - * To recreate the input captions exactly: Set Style passthrough to Strict. MediaConvert automatically applies timing - * adjustments, including adjustments for frame rate conversion, ad avails, and input clipping. Your input captions - * format must be WebVTT. To ignore the style and position information from your input captions and use simplified - * output captions: Set Style passthrough to Disabled, or leave blank. + * Specify how MediaConvert writes style information in your output WebVTT captions. To use the available style, color, + * and position information from your input captions: Choose Enabled. MediaConvert uses default settings when style and + * position information is missing from your input captions. To recreate the input captions exactly: Choose Strict. + * MediaConvert automatically applies timing adjustments, including adjustments for frame rate conversion, ad avails, + * and input clipping. Your input captions format must be WebVTT. To ignore the style and position information from your + * input captions and use simplified output captions: Keep the default value, Disabled. Or leave blank. To use the + * available style, color, and position information from your input captions, while merging cues with identical time + * ranges: Choose merge. This setting can help prevent positioning overlaps for certain players that expect a single + * single cue for any given time range. * * @var WebvttStylePassthrough::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/XavcSettings.php b/src/Service/MediaConvert/src/ValueObject/XavcSettings.php index b26e88c59..6de9876a8 100644 --- a/src/Service/MediaConvert/src/ValueObject/XavcSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/XavcSettings.php @@ -48,14 +48,17 @@ final class XavcSettings private $framerateControl; /** - * Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically - * simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For - * numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might - * introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has - * already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. - * FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding - * time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least - * 128x96. + * Choose the method that you want MediaConvert to use when increasing or decreasing your video's frame rate. For + * numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop + * duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth + * picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your + * source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated + * interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the + * transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must + * be at least 128x96. To create an output with the same number of frames as your input: Choose Maintain frame count. + * When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to + * your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher + * frame rates and longer at lower frame rates. * * @var XavcFramerateConversionAlgorithm::*|null */