This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files

404 lines
20 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/mediaconvert/MediaConvert_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/mediaconvert/model/HlsAudioOnlyContainer.h>
#include <aws/mediaconvert/model/HlsAudioTrackType.h>
#include <aws/mediaconvert/model/HlsIFrameOnlyManifest.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace MediaConvert
{
namespace Model
{
/**
* Settings for HLS output groups<p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/HlsSettings">AWS
* API Reference</a></p>
*/
class AWS_MEDIACONVERT_API HlsSettings
{
public:
HlsSettings();
HlsSettings(Aws::Utils::Json::JsonView jsonValue);
HlsSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline const Aws::String& GetAudioGroupId() const{ return m_audioGroupId; }
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline bool AudioGroupIdHasBeenSet() const { return m_audioGroupIdHasBeenSet; }
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline void SetAudioGroupId(const Aws::String& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = value; }
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline void SetAudioGroupId(Aws::String&& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = std::move(value); }
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline void SetAudioGroupId(const char* value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId.assign(value); }
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline HlsSettings& WithAudioGroupId(const Aws::String& value) { SetAudioGroupId(value); return *this;}
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline HlsSettings& WithAudioGroupId(Aws::String&& value) { SetAudioGroupId(std::move(value)); return *this;}
/**
* Specifies the group to which the audio Rendition belongs.
*/
inline HlsSettings& WithAudioGroupId(const char* value) { SetAudioGroupId(value); return *this;}
/**
* Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
* (M2TS) to create a file in an MPEG2-TS container. Keep the default value
* Automatic (AUTOMATIC) to create an audio-only file in a raw container.
* Regardless of the value that you specify here, if this output has video, the
* service will place the output into an MPEG2-TS container.
*/
inline const HlsAudioOnlyContainer& GetAudioOnlyContainer() const{ return m_audioOnlyContainer; }
/**
* Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
* (M2TS) to create a file in an MPEG2-TS container. Keep the default value
* Automatic (AUTOMATIC) to create an audio-only file in a raw container.
* Regardless of the value that you specify here, if this output has video, the
* service will place the output into an MPEG2-TS container.
*/
inline bool AudioOnlyContainerHasBeenSet() const { return m_audioOnlyContainerHasBeenSet; }
/**
* Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
* (M2TS) to create a file in an MPEG2-TS container. Keep the default value
* Automatic (AUTOMATIC) to create an audio-only file in a raw container.
* Regardless of the value that you specify here, if this output has video, the
* service will place the output into an MPEG2-TS container.
*/
inline void SetAudioOnlyContainer(const HlsAudioOnlyContainer& value) { m_audioOnlyContainerHasBeenSet = true; m_audioOnlyContainer = value; }
/**
* Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
* (M2TS) to create a file in an MPEG2-TS container. Keep the default value
* Automatic (AUTOMATIC) to create an audio-only file in a raw container.
* Regardless of the value that you specify here, if this output has video, the
* service will place the output into an MPEG2-TS container.
*/
inline void SetAudioOnlyContainer(HlsAudioOnlyContainer&& value) { m_audioOnlyContainerHasBeenSet = true; m_audioOnlyContainer = std::move(value); }
/**
* Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
* (M2TS) to create a file in an MPEG2-TS container. Keep the default value
* Automatic (AUTOMATIC) to create an audio-only file in a raw container.
* Regardless of the value that you specify here, if this output has video, the
* service will place the output into an MPEG2-TS container.
*/
inline HlsSettings& WithAudioOnlyContainer(const HlsAudioOnlyContainer& value) { SetAudioOnlyContainer(value); return *this;}
/**
* Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream
* (M2TS) to create a file in an MPEG2-TS container. Keep the default value
* Automatic (AUTOMATIC) to create an audio-only file in a raw container.
* Regardless of the value that you specify here, if this output has video, the
* service will place the output into an MPEG2-TS container.
*/
inline HlsSettings& WithAudioOnlyContainer(HlsAudioOnlyContainer&& value) { SetAudioOnlyContainer(std::move(value)); return *this;}
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline const Aws::String& GetAudioRenditionSets() const{ return m_audioRenditionSets; }
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline bool AudioRenditionSetsHasBeenSet() const { return m_audioRenditionSetsHasBeenSet; }
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline void SetAudioRenditionSets(const Aws::String& value) { m_audioRenditionSetsHasBeenSet = true; m_audioRenditionSets = value; }
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline void SetAudioRenditionSets(Aws::String&& value) { m_audioRenditionSetsHasBeenSet = true; m_audioRenditionSets = std::move(value); }
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline void SetAudioRenditionSets(const char* value) { m_audioRenditionSetsHasBeenSet = true; m_audioRenditionSets.assign(value); }
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline HlsSettings& WithAudioRenditionSets(const Aws::String& value) { SetAudioRenditionSets(value); return *this;}
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline HlsSettings& WithAudioRenditionSets(Aws::String&& value) { SetAudioRenditionSets(std::move(value)); return *this;}
/**
* List all the audio groups that are used with the video output stream. Input all
* the audio GROUP-IDs that are associated to the video, separate by ','.
*/
inline HlsSettings& WithAudioRenditionSets(const char* value) { SetAudioRenditionSets(value); return *this;}
/**
* Four types of audio-only tracks are supported: Audio-Only Variant Stream The
* client can play back this audio-only stream instead of video in low-bandwidth
* scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
* Audio, Auto Select, Default Alternate rendition that the client should try to
* play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
* DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
* rendition that the client may try to play back by default. Represented as an
* EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
* not Auto Select Alternate rendition that the client will not try to play back by
* default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
* AUTOSELECT=NO
*/
inline const HlsAudioTrackType& GetAudioTrackType() const{ return m_audioTrackType; }
/**
* Four types of audio-only tracks are supported: Audio-Only Variant Stream The
* client can play back this audio-only stream instead of video in low-bandwidth
* scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
* Audio, Auto Select, Default Alternate rendition that the client should try to
* play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
* DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
* rendition that the client may try to play back by default. Represented as an
* EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
* not Auto Select Alternate rendition that the client will not try to play back by
* default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
* AUTOSELECT=NO
*/
inline bool AudioTrackTypeHasBeenSet() const { return m_audioTrackTypeHasBeenSet; }
/**
* Four types of audio-only tracks are supported: Audio-Only Variant Stream The
* client can play back this audio-only stream instead of video in low-bandwidth
* scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
* Audio, Auto Select, Default Alternate rendition that the client should try to
* play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
* DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
* rendition that the client may try to play back by default. Represented as an
* EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
* not Auto Select Alternate rendition that the client will not try to play back by
* default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
* AUTOSELECT=NO
*/
inline void SetAudioTrackType(const HlsAudioTrackType& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = value; }
/**
* Four types of audio-only tracks are supported: Audio-Only Variant Stream The
* client can play back this audio-only stream instead of video in low-bandwidth
* scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
* Audio, Auto Select, Default Alternate rendition that the client should try to
* play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
* DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
* rendition that the client may try to play back by default. Represented as an
* EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
* not Auto Select Alternate rendition that the client will not try to play back by
* default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
* AUTOSELECT=NO
*/
inline void SetAudioTrackType(HlsAudioTrackType&& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = std::move(value); }
/**
* Four types of audio-only tracks are supported: Audio-Only Variant Stream The
* client can play back this audio-only stream instead of video in low-bandwidth
* scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
* Audio, Auto Select, Default Alternate rendition that the client should try to
* play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
* DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
* rendition that the client may try to play back by default. Represented as an
* EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
* not Auto Select Alternate rendition that the client will not try to play back by
* default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
* AUTOSELECT=NO
*/
inline HlsSettings& WithAudioTrackType(const HlsAudioTrackType& value) { SetAudioTrackType(value); return *this;}
/**
* Four types of audio-only tracks are supported: Audio-Only Variant Stream The
* client can play back this audio-only stream instead of video in low-bandwidth
* scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
* Audio, Auto Select, Default Alternate rendition that the client should try to
* play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
* DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate
* rendition that the client may try to play back by default. Represented as an
* EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio,
* not Auto Select Alternate rendition that the client will not try to play back by
* default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
* AUTOSELECT=NO
*/
inline HlsSettings& WithAudioTrackType(HlsAudioTrackType&& value) { SetAudioTrackType(std::move(value)); return *this;}
/**
* When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS
* manifest
*/
inline const HlsIFrameOnlyManifest& GetIFrameOnlyManifest() const{ return m_iFrameOnlyManifest; }
/**
* When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS
* manifest
*/
inline bool IFrameOnlyManifestHasBeenSet() const { return m_iFrameOnlyManifestHasBeenSet; }
/**
* When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS
* manifest
*/
inline void SetIFrameOnlyManifest(const HlsIFrameOnlyManifest& value) { m_iFrameOnlyManifestHasBeenSet = true; m_iFrameOnlyManifest = value; }
/**
* When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS
* manifest
*/
inline void SetIFrameOnlyManifest(HlsIFrameOnlyManifest&& value) { m_iFrameOnlyManifestHasBeenSet = true; m_iFrameOnlyManifest = std::move(value); }
/**
* When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS
* manifest
*/
inline HlsSettings& WithIFrameOnlyManifest(const HlsIFrameOnlyManifest& value) { SetIFrameOnlyManifest(value); return *this;}
/**
* When set to INCLUDE, writes I-Frame Only Manifest in addition to the HLS
* manifest
*/
inline HlsSettings& WithIFrameOnlyManifest(HlsIFrameOnlyManifest&& value) { SetIFrameOnlyManifest(std::move(value)); return *this;}
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline const Aws::String& GetSegmentModifier() const{ return m_segmentModifier; }
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline bool SegmentModifierHasBeenSet() const { return m_segmentModifierHasBeenSet; }
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline void SetSegmentModifier(const Aws::String& value) { m_segmentModifierHasBeenSet = true; m_segmentModifier = value; }
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline void SetSegmentModifier(Aws::String&& value) { m_segmentModifierHasBeenSet = true; m_segmentModifier = std::move(value); }
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline void SetSegmentModifier(const char* value) { m_segmentModifierHasBeenSet = true; m_segmentModifier.assign(value); }
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline HlsSettings& WithSegmentModifier(const Aws::String& value) { SetSegmentModifier(value); return *this;}
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline HlsSettings& WithSegmentModifier(Aws::String&& value) { SetSegmentModifier(std::move(value)); return *this;}
/**
* Use this setting to add an identifying string to the filename of each segment.
* The service adds this string between the name modifier and segment index number.
* You can use format identifiers in the string. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
*/
inline HlsSettings& WithSegmentModifier(const char* value) { SetSegmentModifier(value); return *this;}
private:
Aws::String m_audioGroupId;
bool m_audioGroupIdHasBeenSet;
HlsAudioOnlyContainer m_audioOnlyContainer;
bool m_audioOnlyContainerHasBeenSet;
Aws::String m_audioRenditionSets;
bool m_audioRenditionSetsHasBeenSet;
HlsAudioTrackType m_audioTrackType;
bool m_audioTrackTypeHasBeenSet;
HlsIFrameOnlyManifest m_iFrameOnlyManifest;
bool m_iFrameOnlyManifestHasBeenSet;
Aws::String m_segmentModifier;
bool m_segmentModifierHasBeenSet;
};
} // namespace Model
} // namespace MediaConvert
} // namespace Aws