Skip to content

Commit 66123f1

Browse files
This release adds an optional sidecar per-frame video quality metrics report and an ALL_PCM option for audio selectors. It also changes the data type for Probe API response fields related to video and audio bitrate from integer to double.
1 parent 545490a commit 66123f1

37 files changed

+620
-39
lines changed

generator/ServiceModels/mediaconvert/mediaconvert-2017-08-29.api.json

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1707,7 +1707,7 @@
17071707
"locationName": "bitDepth"
17081708
},
17091709
"BitRate": {
1710-
"shape": "__integer",
1710+
"shape": "__long",
17111711
"locationName": "bitRate"
17121712
},
17131713
"Channels": {
@@ -1796,7 +1796,8 @@
17961796
"PID",
17971797
"TRACK",
17981798
"LANGUAGE_CODE",
1799-
"HLS_RENDITION_GROUP"
1799+
"HLS_RENDITION_GROUP",
1800+
"ALL_PCM"
18001801
]
18011802
},
18021803
"AudioTypeControl": {
@@ -1968,6 +1969,10 @@
19681969
"shape": "__integerMin0Max15",
19691970
"locationName": "numberBFramesBetweenReferenceFrames"
19701971
},
1972+
"PerFrameMetrics": {
1973+
"shape": "__listOfFrameMetricType",
1974+
"locationName": "perFrameMetrics"
1975+
},
19711976
"QvbrSettings": {
19721977
"shape": "Av1QvbrSettings",
19731978
"locationName": "qvbrSettings"
@@ -2075,6 +2080,10 @@
20752080
"shape": "AvcIntraInterlaceMode",
20762081
"locationName": "interlaceMode"
20772082
},
2083+
"PerFrameMetrics": {
2084+
"shape": "__listOfFrameMetricType",
2085+
"locationName": "perFrameMetrics"
2086+
},
20782087
"ScanTypeConversionMode": {
20792088
"shape": "AvcIntraScanTypeConversionMode",
20802089
"locationName": "scanTypeConversionMode"
@@ -5040,6 +5049,17 @@
50405049
}
50415050
}
50425051
},
5052+
"FrameMetricType": {
5053+
"type": "string",
5054+
"enum": [
5055+
"PSNR",
5056+
"SSIM",
5057+
"MS_SSIM",
5058+
"PSNR_HVS",
5059+
"VMAF",
5060+
"QVBR"
5061+
]
5062+
},
50435063
"FrameRate": {
50445064
"type": "structure",
50455065
"members": {
@@ -5500,6 +5520,10 @@
55005520
"shape": "__integerMin1Max2147483647",
55015521
"locationName": "parNumerator"
55025522
},
5523+
"PerFrameMetrics": {
5524+
"shape": "__listOfFrameMetricType",
5525+
"locationName": "perFrameMetrics"
5526+
},
55035527
"QualityTuningLevel": {
55045528
"shape": "H264QualityTuningLevel",
55055529
"locationName": "qualityTuningLevel"
@@ -5918,6 +5942,10 @@
59185942
"shape": "__integerMin1Max2147483647",
59195943
"locationName": "parNumerator"
59205944
},
5945+
"PerFrameMetrics": {
5946+
"shape": "__listOfFrameMetricType",
5947+
"locationName": "perFrameMetrics"
5948+
},
59215949
"QualityTuningLevel": {
59225950
"shape": "H265QualityTuningLevel",
59235951
"locationName": "qualityTuningLevel"
@@ -8932,6 +8960,10 @@
89328960
"shape": "__integerMin1Max2147483647",
89338961
"locationName": "parNumerator"
89348962
},
8963+
"PerFrameMetrics": {
8964+
"shape": "__listOfFrameMetricType",
8965+
"locationName": "perFrameMetrics"
8966+
},
89358967
"QualityTuningLevel": {
89368968
"shape": "Mpeg2QualityTuningLevel",
89378969
"locationName": "qualityTuningLevel"
@@ -9507,6 +9539,10 @@
95079539
"shape": "MsSmoothGroupSettings",
95089540
"locationName": "msSmoothGroupSettings"
95099541
},
9542+
"PerFrameMetrics": {
9543+
"shape": "__listOfFrameMetricType",
9544+
"locationName": "perFrameMetrics"
9545+
},
95109546
"Type": {
95119547
"shape": "OutputGroupType",
95129548
"locationName": "type"
@@ -9821,6 +9857,10 @@
98219857
"shape": "__integerMin1Max2147483647",
98229858
"locationName": "parNumerator"
98239859
},
9860+
"PerFrameMetrics": {
9861+
"shape": "__listOfFrameMetricType",
9862+
"locationName": "perFrameMetrics"
9863+
},
98249864
"ScanTypeConversionMode": {
98259865
"shape": "ProresScanTypeConversionMode",
98269866
"locationName": "scanTypeConversionMode"
@@ -11371,7 +11411,7 @@
1137111411
"locationName": "bitDepth"
1137211412
},
1137311413
"BitRate": {
11374-
"shape": "__integer",
11414+
"shape": "__long",
1137511415
"locationName": "bitRate"
1137611416
},
1137711417
"ColorPrimaries": {
@@ -12033,6 +12073,10 @@
1203312073
"shape": "__integerMin24Max60000",
1203412074
"locationName": "framerateNumerator"
1203512075
},
12076+
"PerFrameMetrics": {
12077+
"shape": "__listOfFrameMetricType",
12078+
"locationName": "perFrameMetrics"
12079+
},
1203612080
"Profile": {
1203712081
"shape": "XavcProfile",
1203812082
"locationName": "profile"
@@ -12711,6 +12755,12 @@
1271112755
"shape": "ForceIncludeRenditionSize"
1271212756
}
1271312757
},
12758+
"__listOfFrameMetricType": {
12759+
"type": "list",
12760+
"member": {
12761+
"shape": "FrameMetricType"
12762+
}
12763+
},
1271412764
"__listOfHlsAdMarkers": {
1271512765
"type": "list",
1271612766
"member": {

generator/ServiceModels/mediaconvert/mediaconvert-2017-08-29.docs.json

Lines changed: 27 additions & 8 deletions
Large diffs are not rendered by default.

generator/ServiceModels/mediaconvert/mediaconvert-2017-08-29.normal.json

Lines changed: 67 additions & 8 deletions
Large diffs are not rendered by default.

sdk/src/Services/MediaConvert/Generated/Model/AudioProperties.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ namespace Amazon.MediaConvert.Model
3535
public partial class AudioProperties
3636
{
3737
private int? _bitDepth;
38-
private int? _bitRate;
38+
private long? _bitRate;
3939
private int? _channels;
4040
private FrameRate _frameRate;
4141
private string _languageCode;
@@ -59,7 +59,7 @@ internal bool IsSetBitDepth()
5959
/// <summary>
6060
/// Gets and sets the property BitRate. The bit rate of the audio track, in bits per second.
6161
/// </summary>
62-
public int BitRate
62+
public long BitRate
6363
{
6464
get { return this._bitRate.GetValueOrDefault(); }
6565
set { this._bitRate = value; }

sdk/src/Services/MediaConvert/Generated/Model/AutomatedAbrSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ internal bool IsSetMaxAbrBitrate()
6767
/// Gets and sets the property MaxQualityLevel. Optional. Specify the QVBR quality level
6868
/// to use for all renditions in your automated ABR stack. To have MediaConvert automatically
6969
/// determine the quality level: Leave blank. To manually specify a quality level: Enter
70-
/// an integer from 1 to 10. MediaConvert will use a quality level up to the value that
71-
/// you specify, depending on your source. For more information about QVBR quality levels,
70+
/// a value from 1 to 10. MediaConvert will use a quality level up to the value that you
71+
/// specify, depending on your source. For more information about QVBR quality levels,
7272
/// see: https://docs.aws.amazon.com/mediaconvert/latest/ug/qvbr-guidelines.html
7373
/// </summary>
7474
public double MaxQualityLevel

sdk/src/Services/MediaConvert/Generated/Model/Av1Settings.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public partial class Av1Settings
4444
private double? _gopSize;
4545
private int? _maxBitrate;
4646
private int? _numberBFramesBetweenReferenceFrames;
47+
private List<string> _perFrameMetrics = AWSConfigs.InitializeCollections ? new List<string>() : null;
4748
private Av1QvbrSettings _qvbrSettings;
4849
private Av1RateControlMode _rateControlMode;
4950
private int? _slices;
@@ -247,6 +248,36 @@ internal bool IsSetNumberBFramesBetweenReferenceFrames()
247248
return this._numberBFramesBetweenReferenceFrames.HasValue;
248249
}
249250

251+
/// <summary>
252+
/// Gets and sets the property PerFrameMetrics. Optionally choose one or more per frame
253+
/// metric reports to generate along with your output. You can use these metrics to analyze
254+
/// your video output according to one or more commonly used image quality metrics. You
255+
/// can specify per frame metrics for output groups or for individual outputs. When you
256+
/// do, MediaConvert writes a CSV (Comma-Separated Values) file to your S3 output destination,
257+
/// named after the video, video codec, and metric type. For example: video_h264_PSNR.csv
258+
/// Jobs that generate per frame metrics will take longer to complete, depending on the
259+
/// resolution and complexity of your output. For example, some 4K jobs might take up
260+
/// to twice as long to complete. Note that when analyzing the video quality of your output,
261+
/// or when comparing the video quality of multiple different outputs, we generally also
262+
/// recommend a detailed visual review in a controlled environment. You can choose from
263+
/// the following per frame metrics: * PSNR: Peak Signal-to-Noise Ratio * SSIM: Structural
264+
/// Similarity Index Measure * MS_SSIM: Multi-Scale Similarity Index Measure * PSNR_HVS:
265+
/// Peak Signal-to-Noise Ratio, Human Visual System * VMAF: Video Multi-Method Assessment
266+
/// Fusion * QVBR: Quality-Defined Variable Bitrate. This option is only available when
267+
/// your output uses the QVBR rate control mode.
268+
/// </summary>
269+
public List<string> PerFrameMetrics
270+
{
271+
get { return this._perFrameMetrics; }
272+
set { this._perFrameMetrics = value; }
273+
}
274+
275+
// Check to see if PerFrameMetrics property is set
276+
internal bool IsSetPerFrameMetrics()
277+
{
278+
return this._perFrameMetrics != null && (this._perFrameMetrics.Count > 0 || !AWSConfigs.InitializeCollections);
279+
}
280+
250281
/// <summary>
251282
/// Gets and sets the property QvbrSettings. Settings for quality-defined variable bitrate
252283
/// encoding with the H.265 codec. Use these settings only when you set QVBR for Rate

sdk/src/Services/MediaConvert/Generated/Model/AvcIntraSettings.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public partial class AvcIntraSettings
4444
private int? _framerateDenominator;
4545
private int? _framerateNumerator;
4646
private AvcIntraInterlaceMode _interlaceMode;
47+
private List<string> _perFrameMetrics = AWSConfigs.InitializeCollections ? new List<string>() : null;
4748
private AvcIntraScanTypeConversionMode _scanTypeConversionMode;
4849
private AvcIntraSlowPal _slowPal;
4950
private AvcIntraTelecine _telecine;
@@ -199,6 +200,36 @@ internal bool IsSetInterlaceMode()
199200
return this._interlaceMode != null;
200201
}
201202

203+
/// <summary>
204+
/// Gets and sets the property PerFrameMetrics. Optionally choose one or more per frame
205+
/// metric reports to generate along with your output. You can use these metrics to analyze
206+
/// your video output according to one or more commonly used image quality metrics. You
207+
/// can specify per frame metrics for output groups or for individual outputs. When you
208+
/// do, MediaConvert writes a CSV (Comma-Separated Values) file to your S3 output destination,
209+
/// named after the video, video codec, and metric type. For example: video_h264_PSNR.csv
210+
/// Jobs that generate per frame metrics will take longer to complete, depending on the
211+
/// resolution and complexity of your output. For example, some 4K jobs might take up
212+
/// to twice as long to complete. Note that when analyzing the video quality of your output,
213+
/// or when comparing the video quality of multiple different outputs, we generally also
214+
/// recommend a detailed visual review in a controlled environment. You can choose from
215+
/// the following per frame metrics: * PSNR: Peak Signal-to-Noise Ratio * SSIM: Structural
216+
/// Similarity Index Measure * MS_SSIM: Multi-Scale Similarity Index Measure * PSNR_HVS:
217+
/// Peak Signal-to-Noise Ratio, Human Visual System * VMAF: Video Multi-Method Assessment
218+
/// Fusion * QVBR: Quality-Defined Variable Bitrate. This option is only available when
219+
/// your output uses the QVBR rate control mode.
220+
/// </summary>
221+
public List<string> PerFrameMetrics
222+
{
223+
get { return this._perFrameMetrics; }
224+
set { this._perFrameMetrics = value; }
225+
}
226+
227+
// Check to see if PerFrameMetrics property is set
228+
internal bool IsSetPerFrameMetrics()
229+
{
230+
return this._perFrameMetrics != null && (this._perFrameMetrics.Count > 0 || !AWSConfigs.InitializeCollections);
231+
}
232+
202233
/// <summary>
203234
/// Gets and sets the property ScanTypeConversionMode. Use this setting for interlaced
204235
/// outputs, when your output frame rate is half of your input frame rate. In this situation,

sdk/src/Services/MediaConvert/Generated/Model/CreateJobRequest.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,10 @@ internal bool IsSetAccelerationSettings()
7070
}
7171

7272
/// <summary>
73-
/// Gets and sets the property BillingTagsSource. Optional. Choose a tag type that AWS
74-
/// Billing and Cost Management will use to sort your AWS Elemental MediaConvert costs
75-
/// on any billing report that you set up. Any transcoding outputs that don't have an
76-
/// associated tag will appear in your billing report unsorted. If you don't choose a
77-
/// valid value for this field, your job outputs will appear on the billing report unsorted.
73+
/// Gets and sets the property BillingTagsSource. Optionally choose a Billing tags source
74+
/// that AWS Billing and Cost Management will use to display tags for individual output
75+
/// costs on any billing report that you set up. Leave blank to use the default value,
76+
/// Job.
7877
/// </summary>
7978
public BillingTagsSource BillingTagsSource
8079
{

sdk/src/Services/MediaConvert/Generated/Model/DynamicAudioSelector.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ namespace Amazon.MediaConvert.Model
3333
/// Use Dynamic audio selectors when you do not know the track layout of your source when
3434
/// you submit your job, but want to select multiple audio tracks. When you include an
3535
/// audio track in your output and specify this Dynamic audio selector as the Audio source,
36-
/// MediaConvert creates an output audio track for each dynamically selected track. Note
37-
/// that when you include a Dynamic audio selector for two or more inputs, each input
38-
/// must have the same number of audio tracks and audio channels.
36+
/// MediaConvert creates an audio track within that output for each dynamically selected
37+
/// track. Note that when you include a Dynamic audio selector for two or more inputs,
38+
/// each input must have the same number of audio tracks and audio channels.
3939
/// </summary>
4040
public partial class DynamicAudioSelector
4141
{

sdk/src/Services/MediaConvert/Generated/Model/H264Settings.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public partial class H264Settings
6363
private H264ParControl _parControl;
6464
private int? _parDenominator;
6565
private int? _parNumerator;
66+
private List<string> _perFrameMetrics = AWSConfigs.InitializeCollections ? new List<string>() : null;
6667
private H264QualityTuningLevel _qualityTuningLevel;
6768
private H264QvbrSettings _qvbrSettings;
6869
private H264RateControlMode _rateControlMode;
@@ -674,6 +675,36 @@ internal bool IsSetParNumerator()
674675
return this._parNumerator.HasValue;
675676
}
676677

678+
/// <summary>
679+
/// Gets and sets the property PerFrameMetrics. Optionally choose one or more per frame
680+
/// metric reports to generate along with your output. You can use these metrics to analyze
681+
/// your video output according to one or more commonly used image quality metrics. You
682+
/// can specify per frame metrics for output groups or for individual outputs. When you
683+
/// do, MediaConvert writes a CSV (Comma-Separated Values) file to your S3 output destination,
684+
/// named after the video, video codec, and metric type. For example: video_h264_PSNR.csv
685+
/// Jobs that generate per frame metrics will take longer to complete, depending on the
686+
/// resolution and complexity of your output. For example, some 4K jobs might take up
687+
/// to twice as long to complete. Note that when analyzing the video quality of your output,
688+
/// or when comparing the video quality of multiple different outputs, we generally also
689+
/// recommend a detailed visual review in a controlled environment. You can choose from
690+
/// the following per frame metrics: * PSNR: Peak Signal-to-Noise Ratio * SSIM: Structural
691+
/// Similarity Index Measure * MS_SSIM: Multi-Scale Similarity Index Measure * PSNR_HVS:
692+
/// Peak Signal-to-Noise Ratio, Human Visual System * VMAF: Video Multi-Method Assessment
693+
/// Fusion * QVBR: Quality-Defined Variable Bitrate. This option is only available when
694+
/// your output uses the QVBR rate control mode.
695+
/// </summary>
696+
public List<string> PerFrameMetrics
697+
{
698+
get { return this._perFrameMetrics; }
699+
set { this._perFrameMetrics = value; }
700+
}
701+
702+
// Check to see if PerFrameMetrics property is set
703+
internal bool IsSetPerFrameMetrics()
704+
{
705+
return this._perFrameMetrics != null && (this._perFrameMetrics.Count > 0 || !AWSConfigs.InitializeCollections);
706+
}
707+
677708
/// <summary>
678709
/// Gets and sets the property QualityTuningLevel. The Quality tuning level you choose
679710
/// represents a trade-off between the encoding speed of your job and the output video

0 commit comments

Comments
 (0)