Skip to content

Commit

Permalink
AWS Elemental MediaLive now supports configuring how SCTE 35 passthro…
Browse files Browse the repository at this point in the history
…ugh triggers segment breaks in HLS and MediaPackage output groups. Previously, messages triggered breaks in all these output groups. The new option is to trigger segment breaks only in groups that have SCTE 35 passthrough enabled.
  • Loading branch information
aws-sdk-cpp-automation committed May 6, 2024
1 parent a768356 commit 469d895
Show file tree
Hide file tree
Showing 7 changed files with 238 additions and 5 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.11.321
1.11.322
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#pragma once
#include <aws/medialive/MediaLive_EXPORTS.h>
#include <aws/medialive/model/AvailSettings.h>
#include <aws/medialive/model/Scte35SegmentationScope.h>
#include <utility>

namespace Aws
Expand Down Expand Up @@ -85,10 +86,110 @@ namespace Model
*/
inline AvailConfiguration& WithAvailSettings(AvailSettings&& value) { SetAvailSettings(std::move(value)); return *this;}


/**
* Configures whether SCTE 35 passthrough triggers segment breaks in all output
* groups that use segmented outputs. Insertion of a SCTE 35 message typically
* results in a segment break, in addition to the regular cadence of breaks. The
* segment breaks appear in video outputs, audio outputs, and captions outputs (if
* any).
ALL_OUTPUT_GROUPS: Default. Insert the segment break in in all output
* groups that have segmented outputs. This is the legacy
* behavior.
SCTE35_ENABLED_OUTPUT_GROUPS: Insert the segment break only in output
* groups that have SCTE 35 passthrough enabled. This is the recommended value,
* because it reduces unnecessary segment breaks.
*/
inline const Scte35SegmentationScope& GetScte35SegmentationScope() const{ return m_scte35SegmentationScope; }

/**
* Configures whether SCTE 35 passthrough triggers segment breaks in all output
* groups that use segmented outputs. Insertion of a SCTE 35 message typically
* results in a segment break, in addition to the regular cadence of breaks. The
* segment breaks appear in video outputs, audio outputs, and captions outputs (if
* any).
ALL_OUTPUT_GROUPS: Default. Insert the segment break in in all output
* groups that have segmented outputs. This is the legacy
* behavior.
SCTE35_ENABLED_OUTPUT_GROUPS: Insert the segment break only in output
* groups that have SCTE 35 passthrough enabled. This is the recommended value,
* because it reduces unnecessary segment breaks.
*/
inline bool Scte35SegmentationScopeHasBeenSet() const { return m_scte35SegmentationScopeHasBeenSet; }

/**
* Configures whether SCTE 35 passthrough triggers segment breaks in all output
* groups that use segmented outputs. Insertion of a SCTE 35 message typically
* results in a segment break, in addition to the regular cadence of breaks. The
* segment breaks appear in video outputs, audio outputs, and captions outputs (if
* any).
ALL_OUTPUT_GROUPS: Default. Insert the segment break in in all output
* groups that have segmented outputs. This is the legacy
* behavior.
SCTE35_ENABLED_OUTPUT_GROUPS: Insert the segment break only in output
* groups that have SCTE 35 passthrough enabled. This is the recommended value,
* because it reduces unnecessary segment breaks.
*/
inline void SetScte35SegmentationScope(const Scte35SegmentationScope& value) { m_scte35SegmentationScopeHasBeenSet = true; m_scte35SegmentationScope = value; }

/**
* Configures whether SCTE 35 passthrough triggers segment breaks in all output
* groups that use segmented outputs. Insertion of a SCTE 35 message typically
* results in a segment break, in addition to the regular cadence of breaks. The
* segment breaks appear in video outputs, audio outputs, and captions outputs (if
* any).
ALL_OUTPUT_GROUPS: Default. Insert the segment break in in all output
* groups that have segmented outputs. This is the legacy
* behavior.
SCTE35_ENABLED_OUTPUT_GROUPS: Insert the segment break only in output
* groups that have SCTE 35 passthrough enabled. This is the recommended value,
* because it reduces unnecessary segment breaks.
*/
inline void SetScte35SegmentationScope(Scte35SegmentationScope&& value) { m_scte35SegmentationScopeHasBeenSet = true; m_scte35SegmentationScope = std::move(value); }

/**
* Configures whether SCTE 35 passthrough triggers segment breaks in all output
* groups that use segmented outputs. Insertion of a SCTE 35 message typically
* results in a segment break, in addition to the regular cadence of breaks. The
* segment breaks appear in video outputs, audio outputs, and captions outputs (if
* any).
ALL_OUTPUT_GROUPS: Default. Insert the segment break in in all output
* groups that have segmented outputs. This is the legacy
* behavior.
SCTE35_ENABLED_OUTPUT_GROUPS: Insert the segment break only in output
* groups that have SCTE 35 passthrough enabled. This is the recommended value,
* because it reduces unnecessary segment breaks.
*/
inline AvailConfiguration& WithScte35SegmentationScope(const Scte35SegmentationScope& value) { SetScte35SegmentationScope(value); return *this;}

/**
* Configures whether SCTE 35 passthrough triggers segment breaks in all output
* groups that use segmented outputs. Insertion of a SCTE 35 message typically
* results in a segment break, in addition to the regular cadence of breaks. The
* segment breaks appear in video outputs, audio outputs, and captions outputs (if
* any).
ALL_OUTPUT_GROUPS: Default. Insert the segment break in in all output
* groups that have segmented outputs. This is the legacy
* behavior.
SCTE35_ENABLED_OUTPUT_GROUPS: Insert the segment break only in output
* groups that have SCTE 35 passthrough enabled. This is the recommended value,
* because it reduces unnecessary segment breaks.
*/
inline AvailConfiguration& WithScte35SegmentationScope(Scte35SegmentationScope&& value) { SetScte35SegmentationScope(std::move(value)); return *this;}

private:

AvailSettings m_availSettings;
bool m_availSettingsHasBeenSet = false;

Scte35SegmentationScope m_scte35SegmentationScope;
bool m_scte35SegmentationScopeHasBeenSet = false;
};

} // namespace Model
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/

#pragma once
#include <aws/medialive/MediaLive_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>

namespace Aws
{
namespace MediaLive
{
namespace Model
{
enum class Scte35SegmentationScope
{
NOT_SET,
ALL_OUTPUT_GROUPS,
SCTE35_ENABLED_OUTPUT_GROUPS
};

namespace Scte35SegmentationScopeMapper
{
AWS_MEDIALIVE_API Scte35SegmentationScope GetScte35SegmentationScopeForName(const Aws::String& name);

AWS_MEDIALIVE_API Aws::String GetNameForScte35SegmentationScope(Scte35SegmentationScope value);
} // namespace Scte35SegmentationScopeMapper
} // namespace Model
} // namespace MediaLive
} // namespace Aws
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,16 @@ namespace Model
{

AvailConfiguration::AvailConfiguration() :
m_availSettingsHasBeenSet(false)
m_availSettingsHasBeenSet(false),
m_scte35SegmentationScope(Scte35SegmentationScope::NOT_SET),
m_scte35SegmentationScopeHasBeenSet(false)
{
}

AvailConfiguration::AvailConfiguration(JsonView jsonValue) :
m_availSettingsHasBeenSet(false)
m_availSettingsHasBeenSet(false),
m_scte35SegmentationScope(Scte35SegmentationScope::NOT_SET),
m_scte35SegmentationScopeHasBeenSet(false)
{
*this = jsonValue;
}
Expand All @@ -38,6 +42,13 @@ AvailConfiguration& AvailConfiguration::operator =(JsonView jsonValue)
m_availSettingsHasBeenSet = true;
}

if(jsonValue.ValueExists("scte35SegmentationScope"))
{
m_scte35SegmentationScope = Scte35SegmentationScopeMapper::GetScte35SegmentationScopeForName(jsonValue.GetString("scte35SegmentationScope"));

m_scte35SegmentationScopeHasBeenSet = true;
}

return *this;
}

Expand All @@ -51,6 +62,11 @@ JsonValue AvailConfiguration::Jsonize() const

}

if(m_scte35SegmentationScopeHasBeenSet)
{
payload.WithString("scte35SegmentationScope", Scte35SegmentationScopeMapper::GetNameForScte35SegmentationScope(m_scte35SegmentationScope));
}

return payload;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/

#include <aws/medialive/model/Scte35SegmentationScope.h>
#include <aws/core/utils/HashingUtils.h>
#include <aws/core/Globals.h>
#include <aws/core/utils/EnumParseOverflowContainer.h>

using namespace Aws::Utils;


namespace Aws
{
namespace MediaLive
{
namespace Model
{
namespace Scte35SegmentationScopeMapper
{

static const int ALL_OUTPUT_GROUPS_HASH = HashingUtils::HashString("ALL_OUTPUT_GROUPS");
static const int SCTE35_ENABLED_OUTPUT_GROUPS_HASH = HashingUtils::HashString("SCTE35_ENABLED_OUTPUT_GROUPS");


Scte35SegmentationScope GetScte35SegmentationScopeForName(const Aws::String& name)
{
int hashCode = HashingUtils::HashString(name.c_str());
if (hashCode == ALL_OUTPUT_GROUPS_HASH)
{
return Scte35SegmentationScope::ALL_OUTPUT_GROUPS;
}
else if (hashCode == SCTE35_ENABLED_OUTPUT_GROUPS_HASH)
{
return Scte35SegmentationScope::SCTE35_ENABLED_OUTPUT_GROUPS;
}
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
overflowContainer->StoreOverflow(hashCode, name);
return static_cast<Scte35SegmentationScope>(hashCode);
}

return Scte35SegmentationScope::NOT_SET;
}

Aws::String GetNameForScte35SegmentationScope(Scte35SegmentationScope enumValue)
{
switch(enumValue)
{
case Scte35SegmentationScope::NOT_SET:
return {};
case Scte35SegmentationScope::ALL_OUTPUT_GROUPS:
return "ALL_OUTPUT_GROUPS";
case Scte35SegmentationScope::SCTE35_ENABLED_OUTPUT_GROUPS:
return "SCTE35_ENABLED_OUTPUT_GROUPS";
default:
EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer();
if(overflowContainer)
{
return overflowContainer->RetrieveOverflow(static_cast<int>(enumValue));
}

return {};
}
}

} // namespace Scte35SegmentationScopeMapper
} // namespace Model
} // namespace MediaLive
} // namespace Aws
4 changes: 2 additions & 2 deletions src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*/
#pragma once

#define AWS_SDK_VERSION_STRING "1.11.321"
#define AWS_SDK_VERSION_STRING "1.11.322"
#define AWS_SDK_VERSION_MAJOR 1
#define AWS_SDK_VERSION_MINOR 11
#define AWS_SDK_VERSION_PATCH 321
#define AWS_SDK_VERSION_PATCH 322
Original file line number Diff line number Diff line change
Expand Up @@ -5012,6 +5012,11 @@
"shape": "AvailSettings",
"locationName": "availSettings",
"documentation": "Controls how SCTE-35 messages create cues. Splice Insert mode treats all segmentation signals traditionally. With Time Signal APOS mode only Time Signal Placement Opportunity and Break messages create segment breaks. With ESAM mode, signals are forwarded to an ESAM server for possible update."
},
"Scte35SegmentationScope": {
"shape": "Scte35SegmentationScope",
"locationName": "scte35SegmentationScope",
"documentation": "Configures whether SCTE 35 passthrough triggers segment breaks in all output groups that use segmented outputs. Insertion of a SCTE 35 message typically results in a segment break, in addition to the regular cadence of breaks. The segment breaks appear in video outputs, audio outputs, and captions outputs (if any).\n\nALL_OUTPUT_GROUPS: Default. Insert the segment break in in all output groups that have segmented outputs. This is the legacy behavior.\nSCTE35_ENABLED_OUTPUT_GROUPS: Insert the segment break only in output groups that have SCTE 35 passthrough enabled. This is the recommended value, because it reduces unnecessary segment breaks."
}
},
"documentation": "Avail Configuration"
Expand Down Expand Up @@ -23687,6 +23692,14 @@
"type": "string",
"pattern": "^[^\\s]+$",
"documentation": "Placeholder documentation for __stringPatternS"
},
"Scte35SegmentationScope": {
"type": "string",
"documentation": "Scte35 Segmentation Scope",
"enum": [
"ALL_OUTPUT_GROUPS",
"SCTE35_ENABLED_OUTPUT_GROUPS"
]
}
},
"documentation": "API for AWS Elemental MediaLive"
Expand Down

0 comments on commit 469d895

Please sign in to comment.