Skip to content

Commit 5079765

Browse files
Adds advanced Output Locking options for Epoch Locking: Custom Epoch and Jam Sync Time
1 parent 9faef7d commit 5079765

15 files changed

+796
-0
lines changed

generator/ServiceModels/medialive/medialive-2017-10-14.api.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6209,6 +6209,19 @@
62096209
"TimecodeConfig"
62106210
]
62116211
},
6212+
"EpochLockingSettings": {
6213+
"type": "structure",
6214+
"members": {
6215+
"CustomEpoch": {
6216+
"shape": "__string",
6217+
"locationName": "customEpoch"
6218+
},
6219+
"JamSyncTime": {
6220+
"shape": "__string",
6221+
"locationName": "jamSyncTime"
6222+
}
6223+
}
6224+
},
62126225
"Esam": {
62136226
"type": "structure",
62146227
"members": {
@@ -6588,6 +6601,10 @@
65886601
"SupportLowFramerateInputs": {
65896602
"shape": "GlobalConfigurationLowFramerateInputs",
65906603
"locationName": "supportLowFramerateInputs"
6604+
},
6605+
"OutputLockingSettings": {
6606+
"shape": "OutputLockingSettings",
6607+
"locationName": "outputLockingSettings"
65916608
}
65926609
}
65936610
},
@@ -11007,6 +11024,19 @@
1100711024
}
1100811025
}
1100911026
},
11027+
"OutputLockingSettings": {
11028+
"type": "structure",
11029+
"members": {
11030+
"EpochLockingSettings": {
11031+
"shape": "EpochLockingSettings",
11032+
"locationName": "epochLockingSettings"
11033+
},
11034+
"PipelineLockingSettings": {
11035+
"shape": "PipelineLockingSettings",
11036+
"locationName": "pipelineLockingSettings"
11037+
}
11038+
}
11039+
},
1101011040
"OutputSettings": {
1101111041
"type": "structure",
1101211042
"members": {
@@ -11090,6 +11120,11 @@
1109011120
"PIPELINE_1"
1109111121
]
1109211122
},
11123+
"PipelineLockingSettings": {
11124+
"type": "structure",
11125+
"members": {
11126+
}
11127+
},
1109311128
"PipelinePauseStateSettings": {
1109411129
"type": "structure",
1109511130
"members": {

generator/ServiceModels/medialive/medialive-2017-10-14.docs.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,12 @@
10001000
"UpdateChannel$EncoderSettings": "The encoder settings for this channel."
10011001
}
10021002
},
1003+
"EpochLockingSettings": {
1004+
"base": "Epoch Locking Settings",
1005+
"refs": {
1006+
"OutputLockingSettings$EpochLockingSettings": null
1007+
}
1008+
},
10031009
"Esam": {
10041010
"base": "Esam",
10051011
"refs": {
@@ -2731,6 +2737,12 @@
27312737
"UdpOutputSettings$Destination": "Destination address and port number for RTP or UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002)."
27322738
}
27332739
},
2740+
"OutputLockingSettings": {
2741+
"base": "Output Locking Settings",
2742+
"refs": {
2743+
"GlobalConfiguration$OutputLockingSettings": "Advanced output locking settings"
2744+
}
2745+
},
27342746
"OutputSettings": {
27352747
"base": "Output Settings",
27362748
"refs": {
@@ -2761,6 +2773,12 @@
27612773
"PipelinePauseStateSettings$PipelineId": "Pipeline ID to pause (\"PIPELINE_0\" or \"PIPELINE_1\")."
27622774
}
27632775
},
2776+
"PipelineLockingSettings": {
2777+
"base": "Pipeline Locking Settings",
2778+
"refs": {
2779+
"OutputLockingSettings$PipelineLockingSettings": null
2780+
}
2781+
},
27642782
"PipelinePauseStateSettings": {
27652783
"base": "Settings for pausing a pipeline.",
27662784
"refs": {

generator/ServiceModels/medialive/medialive-2017-10-14.normal.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7500,6 +7500,22 @@
75007500
"TimecodeConfig"
75017501
]
75027502
},
7503+
"EpochLockingSettings": {
7504+
"type": "structure",
7505+
"members": {
7506+
"CustomEpoch": {
7507+
"shape": "__string",
7508+
"locationName": "customEpoch",
7509+
"documentation": "Optional. Enter a value here to use a custom epoch, instead of the standard epoch (which started at 1970-01-01T00:00:00 UTC). Specify the start time of the custom epoch, in YYYY-MM-DDTHH:MM:SS in UTC. The time must be 2000-01-01T00:00:00 or later. Always set the MM:SS portion to 00:00."
7510+
},
7511+
"JamSyncTime": {
7512+
"shape": "__string",
7513+
"locationName": "jamSyncTime",
7514+
"documentation": "Optional. Enter a time for the jam sync. The default is midnight UTC. When epoch locking is enabled, MediaLive performs a daily jam sync on every output encode to ensure timecodes don\u2019t diverge from the wall clock. The jam sync applies only to encodes with frame rate of 29.97 or 59.94 FPS. To override, enter a time in HH:MM:SS in UTC. Always set the MM:SS portion to 00:00."
7515+
}
7516+
},
7517+
"documentation": "Epoch Locking Settings"
7518+
},
75037519
"Esam": {
75047520
"type": "structure",
75057521
"members": {
@@ -7945,6 +7961,11 @@
79457961
"shape": "GlobalConfigurationLowFramerateInputs",
79467962
"locationName": "supportLowFramerateInputs",
79477963
"documentation": "Adjusts video input buffer for streams with very low video framerates. This is commonly set to enabled for music channels with less than one video frame per second."
7964+
},
7965+
"OutputLockingSettings": {
7966+
"shape": "OutputLockingSettings",
7967+
"locationName": "outputLockingSettings",
7968+
"documentation": "Advanced output locking settings"
79487969
}
79497970
},
79507971
"documentation": "Global Configuration"
@@ -13192,6 +13213,20 @@
1319213213
},
1319313214
"documentation": "Reference to an OutputDestination ID defined in the channel"
1319413215
},
13216+
"OutputLockingSettings": {
13217+
"type": "structure",
13218+
"members": {
13219+
"EpochLockingSettings": {
13220+
"shape": "EpochLockingSettings",
13221+
"locationName": "epochLockingSettings"
13222+
},
13223+
"PipelineLockingSettings": {
13224+
"shape": "PipelineLockingSettings",
13225+
"locationName": "pipelineLockingSettings"
13226+
}
13227+
},
13228+
"documentation": "Output Locking Settings"
13229+
},
1319513230
"OutputSettings": {
1319613231
"type": "structure",
1319713232
"members": {
@@ -13285,6 +13320,12 @@
1328513320
"PIPELINE_1"
1328613321
]
1328713322
},
13323+
"PipelineLockingSettings": {
13324+
"type": "structure",
13325+
"members": {
13326+
},
13327+
"documentation": "Pipeline Locking Settings"
13328+
},
1328813329
"PipelinePauseStateSettings": {
1328913330
"type": "structure",
1329013331
"members": {
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the medialive-2017-10-14.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Xml.Serialization;
22+
using System.Text;
23+
using System.IO;
24+
using System.Net;
25+
26+
using Amazon.Runtime;
27+
using Amazon.Runtime.Internal;
28+
29+
namespace Amazon.MediaLive.Model
30+
{
31+
/// <summary>
32+
/// Epoch Locking Settings
33+
/// </summary>
34+
public partial class EpochLockingSettings
35+
{
36+
private string _customEpoch;
37+
private string _jamSyncTime;
38+
39+
/// <summary>
40+
/// Gets and sets the property CustomEpoch. Optional. Enter a value here to use a custom
41+
/// epoch, instead of the standard epoch (which started at 1970-01-01T00:00:00 UTC). Specify
42+
/// the start time of the custom epoch, in YYYY-MM-DDTHH:MM:SS in UTC. The time must be
43+
/// 2000-01-01T00:00:00 or later. Always set the MM:SS portion to 00:00.
44+
/// </summary>
45+
public string CustomEpoch
46+
{
47+
get { return this._customEpoch; }
48+
set { this._customEpoch = value; }
49+
}
50+
51+
// Check to see if CustomEpoch property is set
52+
internal bool IsSetCustomEpoch()
53+
{
54+
return this._customEpoch != null;
55+
}
56+
57+
/// <summary>
58+
/// Gets and sets the property JamSyncTime. Optional. Enter a time for the jam sync. The
59+
/// default is midnight UTC. When epoch locking is enabled, MediaLive performs a daily
60+
/// jam sync on every output encode to ensure timecodes don’t diverge from the wall clock.
61+
/// The jam sync applies only to encodes with frame rate of 29.97 or 59.94 FPS. To override,
62+
/// enter a time in HH:MM:SS in UTC. Always set the MM:SS portion to 00:00.
63+
/// </summary>
64+
public string JamSyncTime
65+
{
66+
get { return this._jamSyncTime; }
67+
set { this._jamSyncTime = value; }
68+
}
69+
70+
// Check to see if JamSyncTime property is set
71+
internal bool IsSetJamSyncTime()
72+
{
73+
return this._jamSyncTime != null;
74+
}
75+
76+
}
77+
}

sdk/src/Services/MediaLive/Generated/Model/GlobalConfiguration.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public partial class GlobalConfiguration
3737
private GlobalConfigurationInputEndAction _inputEndAction;
3838
private InputLossBehavior _inputLossBehavior;
3939
private GlobalConfigurationOutputLockingMode _outputLockingMode;
40+
private OutputLockingSettings _outputLockingSettings;
4041
private GlobalConfigurationOutputTimingSource _outputTimingSource;
4142
private GlobalConfigurationLowFramerateInputs _supportLowFramerateInputs;
4243

@@ -111,6 +112,21 @@ internal bool IsSetOutputLockingMode()
111112
return this._outputLockingMode != null;
112113
}
113114

115+
/// <summary>
116+
/// Gets and sets the property OutputLockingSettings. Advanced output locking settings
117+
/// </summary>
118+
public OutputLockingSettings OutputLockingSettings
119+
{
120+
get { return this._outputLockingSettings; }
121+
set { this._outputLockingSettings = value; }
122+
}
123+
124+
// Check to see if OutputLockingSettings property is set
125+
internal bool IsSetOutputLockingSettings()
126+
{
127+
return this._outputLockingSettings != null;
128+
}
129+
114130
/// <summary>
115131
/// Gets and sets the property OutputTimingSource. Indicates whether the rate of frames
116132
/// emitted by the Live encoder should be paced by its system clock (which optionally
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the medialive-2017-10-14.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Globalization;
22+
using System.IO;
23+
using System.Text;
24+
using System.Xml.Serialization;
25+
26+
using Amazon.MediaLive.Model;
27+
using Amazon.Runtime;
28+
using Amazon.Runtime.Internal;
29+
using Amazon.Runtime.Internal.Transform;
30+
using Amazon.Runtime.Internal.Util;
31+
using ThirdParty.Json.LitJson;
32+
33+
namespace Amazon.MediaLive.Model.Internal.MarshallTransformations
34+
{
35+
/// <summary>
36+
/// EpochLockingSettings Marshaller
37+
/// </summary>
38+
public class EpochLockingSettingsMarshaller : IRequestMarshaller<EpochLockingSettings, JsonMarshallerContext>
39+
{
40+
/// <summary>
41+
/// Unmarshaller the response from the service to the response class.
42+
/// </summary>
43+
/// <param name="requestObject"></param>
44+
/// <param name="context"></param>
45+
/// <returns></returns>
46+
public void Marshall(EpochLockingSettings requestObject, JsonMarshallerContext context)
47+
{
48+
if(requestObject.IsSetCustomEpoch())
49+
{
50+
context.Writer.WritePropertyName("customEpoch");
51+
context.Writer.Write(requestObject.CustomEpoch);
52+
}
53+
54+
if(requestObject.IsSetJamSyncTime())
55+
{
56+
context.Writer.WritePropertyName("jamSyncTime");
57+
context.Writer.Write(requestObject.JamSyncTime);
58+
}
59+
60+
}
61+
62+
/// <summary>
63+
/// Singleton Marshaller.
64+
/// </summary>
65+
public readonly static EpochLockingSettingsMarshaller Instance = new EpochLockingSettingsMarshaller();
66+
67+
}
68+
}

0 commit comments

Comments
 (0)