software.amazon.awssdk.services.mediaconvert.model.MpdSettings Maven / Gradle / Ivy
Show all versions of mediaconvert Show documentation
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package software.amazon.awssdk.services.mediaconvert.model;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
* These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
*/
@Generated("software.amazon.awssdk:codegen")
public final class MpdSettings implements SdkPojo, Serializable, ToCopyableBuilder {
private static final SdkField ACCESSIBILITY_CAPTION_HINTS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("AccessibilityCaptionHints").getter(getter(MpdSettings::accessibilityCaptionHintsAsString))
.setter(setter(Builder::accessibilityCaptionHints))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("accessibilityCaptionHints").build())
.build();
private static final SdkField AUDIO_DURATION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("AudioDuration").getter(getter(MpdSettings::audioDurationAsString))
.setter(setter(Builder::audioDuration))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("audioDuration").build()).build();
private static final SdkField CAPTION_CONTAINER_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("CaptionContainerType").getter(getter(MpdSettings::captionContainerTypeAsString))
.setter(setter(Builder::captionContainerType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("captionContainerType").build())
.build();
private static final SdkField KLV_METADATA_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("KlvMetadata").getter(getter(MpdSettings::klvMetadataAsString)).setter(setter(Builder::klvMetadata))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("klvMetadata").build()).build();
private static final SdkField MANIFEST_METADATA_SIGNALING_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ManifestMetadataSignaling").getter(getter(MpdSettings::manifestMetadataSignalingAsString))
.setter(setter(Builder::manifestMetadataSignaling))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("manifestMetadataSignaling").build())
.build();
private static final SdkField SCTE35_ESAM_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Scte35Esam").getter(getter(MpdSettings::scte35EsamAsString)).setter(setter(Builder::scte35Esam))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("scte35Esam").build()).build();
private static final SdkField SCTE35_SOURCE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Scte35Source").getter(getter(MpdSettings::scte35SourceAsString)).setter(setter(Builder::scte35Source))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("scte35Source").build()).build();
private static final SdkField TIMED_METADATA_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("TimedMetadata").getter(getter(MpdSettings::timedMetadataAsString))
.setter(setter(Builder::timedMetadata))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timedMetadata").build()).build();
private static final SdkField TIMED_METADATA_BOX_VERSION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("TimedMetadataBoxVersion").getter(getter(MpdSettings::timedMetadataBoxVersionAsString))
.setter(setter(Builder::timedMetadataBoxVersion))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timedMetadataBoxVersion").build())
.build();
private static final SdkField TIMED_METADATA_SCHEME_ID_URI_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("TimedMetadataSchemeIdUri").getter(getter(MpdSettings::timedMetadataSchemeIdUri))
.setter(setter(Builder::timedMetadataSchemeIdUri))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timedMetadataSchemeIdUri").build())
.build();
private static final SdkField TIMED_METADATA_VALUE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("TimedMetadataValue").getter(getter(MpdSettings::timedMetadataValue))
.setter(setter(Builder::timedMetadataValue))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timedMetadataValue").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(
ACCESSIBILITY_CAPTION_HINTS_FIELD, AUDIO_DURATION_FIELD, CAPTION_CONTAINER_TYPE_FIELD, KLV_METADATA_FIELD,
MANIFEST_METADATA_SIGNALING_FIELD, SCTE35_ESAM_FIELD, SCTE35_SOURCE_FIELD, TIMED_METADATA_FIELD,
TIMED_METADATA_BOX_VERSION_FIELD, TIMED_METADATA_SCHEME_ID_URI_FIELD, TIMED_METADATA_VALUE_FIELD));
private static final long serialVersionUID = 1L;
private final String accessibilityCaptionHints;
private final String audioDuration;
private final String captionContainerType;
private final String klvMetadata;
private final String manifestMetadataSignaling;
private final String scte35Esam;
private final String scte35Source;
private final String timedMetadata;
private final String timedMetadataBoxVersion;
private final String timedMetadataSchemeIdUri;
private final String timedMetadataValue;
private MpdSettings(BuilderImpl builder) {
this.accessibilityCaptionHints = builder.accessibilityCaptionHints;
this.audioDuration = builder.audioDuration;
this.captionContainerType = builder.captionContainerType;
this.klvMetadata = builder.klvMetadata;
this.manifestMetadataSignaling = builder.manifestMetadataSignaling;
this.scte35Esam = builder.scte35Esam;
this.scte35Source = builder.scte35Source;
this.timedMetadata = builder.timedMetadata;
this.timedMetadataBoxVersion = builder.timedMetadataBoxVersion;
this.timedMetadataSchemeIdUri = builder.timedMetadataSchemeIdUri;
this.timedMetadataValue = builder.timedMetadataValue;
}
/**
* Optional. Choose Include to have MediaConvert mark up your DASH manifest with elements for
* embedded 608 captions. This markup isn't generally required, but some video players require it to discover and
* play embedded 608 captions. Keep the default value, Exclude, to leave these elements out. When you enable this
* setting, this is the markup that MediaConvert includes in your manifest:
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #accessibilityCaptionHints} will return {@link MpdAccessibilityCaptionHints#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #accessibilityCaptionHintsAsString}.
*
*
* @return Optional. Choose Include to have MediaConvert mark up your DASH manifest with elements
* for embedded 608 captions. This markup isn't generally required, but some video players require it to
* discover and play embedded 608 captions. Keep the default value, Exclude, to leave these elements out.
* When you enable this setting, this is the markup that MediaConvert includes in your manifest:
*
* @see MpdAccessibilityCaptionHints
*/
public final MpdAccessibilityCaptionHints accessibilityCaptionHints() {
return MpdAccessibilityCaptionHints.fromValue(accessibilityCaptionHints);
}
/**
* Optional. Choose Include to have MediaConvert mark up your DASH manifest with elements for
* embedded 608 captions. This markup isn't generally required, but some video players require it to discover and
* play embedded 608 captions. Keep the default value, Exclude, to leave these elements out. When you enable this
* setting, this is the markup that MediaConvert includes in your manifest:
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #accessibilityCaptionHints} will return {@link MpdAccessibilityCaptionHints#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #accessibilityCaptionHintsAsString}.
*
*
* @return Optional. Choose Include to have MediaConvert mark up your DASH manifest with elements
* for embedded 608 captions. This markup isn't generally required, but some video players require it to
* discover and play embedded 608 captions. Keep the default value, Exclude, to leave these elements out.
* When you enable this setting, this is the markup that MediaConvert includes in your manifest:
*
* @see MpdAccessibilityCaptionHints
*/
public final String accessibilityCaptionHintsAsString() {
return accessibilityCaptionHints;
}
/**
* Specify this setting only when your output will be consumed by a downstream repackaging workflow that is
* sensitive to very small duration differences between video and audio. For this situation, choose Match video
* duration. In all other cases, keep the default value, Default codec duration. When you choose Match video
* duration, MediaConvert pads the output audio streams with silence or trims them to ensure that the total duration
* of each audio stream is at least as long as the total duration of the video stream. After padding or trimming,
* the audio stream duration is no more than one frame longer than the video stream. MediaConvert applies audio
* padding or trimming only to the end of the last segment of the output. For unsegmented outputs, MediaConvert adds
* padding only to the end of the file. When you keep the default value, any minor discrepancies between audio and
* video duration will depend on your output audio codec.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #audioDuration}
* will return {@link MpdAudioDuration#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #audioDurationAsString}.
*
*
* @return Specify this setting only when your output will be consumed by a downstream repackaging workflow that is
* sensitive to very small duration differences between video and audio. For this situation, choose Match
* video duration. In all other cases, keep the default value, Default codec duration. When you choose Match
* video duration, MediaConvert pads the output audio streams with silence or trims them to ensure that the
* total duration of each audio stream is at least as long as the total duration of the video stream. After
* padding or trimming, the audio stream duration is no more than one frame longer than the video stream.
* MediaConvert applies audio padding or trimming only to the end of the last segment of the output. For
* unsegmented outputs, MediaConvert adds padding only to the end of the file. When you keep the default
* value, any minor discrepancies between audio and video duration will depend on your output audio codec.
* @see MpdAudioDuration
*/
public final MpdAudioDuration audioDuration() {
return MpdAudioDuration.fromValue(audioDuration);
}
/**
* Specify this setting only when your output will be consumed by a downstream repackaging workflow that is
* sensitive to very small duration differences between video and audio. For this situation, choose Match video
* duration. In all other cases, keep the default value, Default codec duration. When you choose Match video
* duration, MediaConvert pads the output audio streams with silence or trims them to ensure that the total duration
* of each audio stream is at least as long as the total duration of the video stream. After padding or trimming,
* the audio stream duration is no more than one frame longer than the video stream. MediaConvert applies audio
* padding or trimming only to the end of the last segment of the output. For unsegmented outputs, MediaConvert adds
* padding only to the end of the file. When you keep the default value, any minor discrepancies between audio and
* video duration will depend on your output audio codec.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #audioDuration}
* will return {@link MpdAudioDuration#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #audioDurationAsString}.
*
*
* @return Specify this setting only when your output will be consumed by a downstream repackaging workflow that is
* sensitive to very small duration differences between video and audio. For this situation, choose Match
* video duration. In all other cases, keep the default value, Default codec duration. When you choose Match
* video duration, MediaConvert pads the output audio streams with silence or trims them to ensure that the
* total duration of each audio stream is at least as long as the total duration of the video stream. After
* padding or trimming, the audio stream duration is no more than one frame longer than the video stream.
* MediaConvert applies audio padding or trimming only to the end of the last segment of the output. For
* unsegmented outputs, MediaConvert adds padding only to the end of the file. When you keep the default
* value, any minor discrepancies between audio and video duration will depend on your output audio codec.
* @see MpdAudioDuration
*/
public final String audioDurationAsString() {
return audioDuration;
}
/**
* Use this setting only in DASH output groups that include sidecar TTML or IMSC captions. You specify sidecar
* captions in a separate output from your audio and video. Choose Raw for captions in a single XML file in a raw
* container. Choose Fragmented MPEG-4 for captions in XML format contained within fragmented MP4 files. This set of
* fragmented MP4 files is separate from your video and audio fragmented MP4 files.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #captionContainerType} will return {@link MpdCaptionContainerType#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #captionContainerTypeAsString}.
*
*
* @return Use this setting only in DASH output groups that include sidecar TTML or IMSC captions. You specify
* sidecar captions in a separate output from your audio and video. Choose Raw for captions in a single XML
* file in a raw container. Choose Fragmented MPEG-4 for captions in XML format contained within fragmented
* MP4 files. This set of fragmented MP4 files is separate from your video and audio fragmented MP4 files.
* @see MpdCaptionContainerType
*/
public final MpdCaptionContainerType captionContainerType() {
return MpdCaptionContainerType.fromValue(captionContainerType);
}
/**
* Use this setting only in DASH output groups that include sidecar TTML or IMSC captions. You specify sidecar
* captions in a separate output from your audio and video. Choose Raw for captions in a single XML file in a raw
* container. Choose Fragmented MPEG-4 for captions in XML format contained within fragmented MP4 files. This set of
* fragmented MP4 files is separate from your video and audio fragmented MP4 files.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #captionContainerType} will return {@link MpdCaptionContainerType#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #captionContainerTypeAsString}.
*
*
* @return Use this setting only in DASH output groups that include sidecar TTML or IMSC captions. You specify
* sidecar captions in a separate output from your audio and video. Choose Raw for captions in a single XML
* file in a raw container. Choose Fragmented MPEG-4 for captions in XML format contained within fragmented
* MP4 files. This set of fragmented MP4 files is separate from your video and audio fragmented MP4 files.
* @see MpdCaptionContainerType
*/
public final String captionContainerTypeAsString() {
return captionContainerType;
}
/**
* To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough. MediaConvert
* reads KLV metadata present in your input and writes each instance to a separate event message box in the output,
* according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata insertion to None or leave blank.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #klvMetadata} will
* return {@link MpdKlvMetadata#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #klvMetadataAsString}.
*
*
* @return To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough.
* MediaConvert reads KLV metadata present in your input and writes each instance to a separate event
* message box in the output, according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata
* insertion to None or leave blank.
* @see MpdKlvMetadata
*/
public final MpdKlvMetadata klvMetadata() {
return MpdKlvMetadata.fromValue(klvMetadata);
}
/**
* To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough. MediaConvert
* reads KLV metadata present in your input and writes each instance to a separate event message box in the output,
* according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata insertion to None or leave blank.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #klvMetadata} will
* return {@link MpdKlvMetadata#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #klvMetadataAsString}.
*
*
* @return To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough.
* MediaConvert reads KLV metadata present in your input and writes each instance to a separate event
* message box in the output, according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata
* insertion to None or leave blank.
* @see MpdKlvMetadata
*/
public final String klvMetadataAsString() {
return klvMetadata;
}
/**
* To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest
* metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same
* value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element
* schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set
* Manifest metadata signaling to Disabled. To enable Manifest metadata signaling, you must also set SCTE-35 source
* to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata to Passthrough.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #manifestMetadataSignaling} will return {@link MpdManifestMetadataSignaling#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #manifestMetadataSignalingAsString}.
*
*
* @return To add an InbandEventStream element in your output MPD manifest for each type of event message, set
* Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri
* will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the
* InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of
* your output MPD manifest, set Manifest metadata signaling to Disabled. To enable Manifest metadata
* signaling, you must also set SCTE-35 source to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata to
* Passthrough.
* @see MpdManifestMetadataSignaling
*/
public final MpdManifestMetadataSignaling manifestMetadataSignaling() {
return MpdManifestMetadataSignaling.fromValue(manifestMetadataSignaling);
}
/**
* To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest
* metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same
* value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element
* schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of your output MPD manifest, set
* Manifest metadata signaling to Disabled. To enable Manifest metadata signaling, you must also set SCTE-35 source
* to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata to Passthrough.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #manifestMetadataSignaling} will return {@link MpdManifestMetadataSignaling#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #manifestMetadataSignalingAsString}.
*
*
* @return To add an InbandEventStream element in your output MPD manifest for each type of event message, set
* Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri
* will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the
* InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". To leave these elements out of
* your output MPD manifest, set Manifest metadata signaling to Disabled. To enable Manifest metadata
* signaling, you must also set SCTE-35 source to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata to
* Passthrough.
* @see MpdManifestMetadataSignaling
*/
public final String manifestMetadataSignalingAsString() {
return manifestMetadataSignaling;
}
/**
* Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in this
* output at the insertion points that you specify in an ESAM XML document. Provide the document in the setting SCC
* XML.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #scte35Esam} will
* return {@link MpdScte35Esam#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #scte35EsamAsString}.
*
*
* @return Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in
* this output at the insertion points that you specify in an ESAM XML document. Provide the document in the
* setting SCC XML.
* @see MpdScte35Esam
*/
public final MpdScte35Esam scte35Esam() {
return MpdScte35Esam.fromValue(scte35Esam);
}
/**
* Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in this
* output at the insertion points that you specify in an ESAM XML document. Provide the document in the setting SCC
* XML.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #scte35Esam} will
* return {@link MpdScte35Esam#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #scte35EsamAsString}.
*
*
* @return Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in
* this output at the insertion points that you specify in an ESAM XML document. Provide the document in the
* setting SCC XML.
* @see MpdScte35Esam
*/
public final String scte35EsamAsString() {
return scte35Esam;
}
/**
* Ignore this setting unless you have SCTE-35 markers in your input video file. Choose Passthrough if you want
* SCTE-35 markers that appear in your input to also appear in this output. Choose None if you don't want those
* SCTE-35 markers in this output.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #scte35Source} will
* return {@link MpdScte35Source#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #scte35SourceAsString}.
*
*
* @return Ignore this setting unless you have SCTE-35 markers in your input video file. Choose Passthrough if you
* want SCTE-35 markers that appear in your input to also appear in this output. Choose None if you don't
* want those SCTE-35 markers in this output.
* @see MpdScte35Source
*/
public final MpdScte35Source scte35Source() {
return MpdScte35Source.fromValue(scte35Source);
}
/**
* Ignore this setting unless you have SCTE-35 markers in your input video file. Choose Passthrough if you want
* SCTE-35 markers that appear in your input to also appear in this output. Choose None if you don't want those
* SCTE-35 markers in this output.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #scte35Source} will
* return {@link MpdScte35Source#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #scte35SourceAsString}.
*
*
* @return Ignore this setting unless you have SCTE-35 markers in your input video file. Choose Passthrough if you
* want SCTE-35 markers that appear in your input to also appear in this output. Choose None if you don't
* want those SCTE-35 markers in this output.
* @see MpdScte35Source
*/
public final String scte35SourceAsString() {
return scte35Source;
}
/**
* To include ID3 metadata in this output: Set ID3 metadata to Passthrough. Specify this ID3 metadata in Custom ID3
* metadata inserter. MediaConvert writes each instance of ID3 metadata in a separate Event Message (eMSG) box. To
* exclude this ID3 metadata: Set ID3 metadata to None or leave blank.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #timedMetadata}
* will return {@link MpdTimedMetadata#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #timedMetadataAsString}.
*
*
* @return To include ID3 metadata in this output: Set ID3 metadata to Passthrough. Specify this ID3 metadata in
* Custom ID3 metadata inserter. MediaConvert writes each instance of ID3 metadata in a separate Event
* Message (eMSG) box. To exclude this ID3 metadata: Set ID3 metadata to None or leave blank.
* @see MpdTimedMetadata
*/
public final MpdTimedMetadata timedMetadata() {
return MpdTimedMetadata.fromValue(timedMetadata);
}
/**
* To include ID3 metadata in this output: Set ID3 metadata to Passthrough. Specify this ID3 metadata in Custom ID3
* metadata inserter. MediaConvert writes each instance of ID3 metadata in a separate Event Message (eMSG) box. To
* exclude this ID3 metadata: Set ID3 metadata to None or leave blank.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #timedMetadata}
* will return {@link MpdTimedMetadata#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #timedMetadataAsString}.
*
*
* @return To include ID3 metadata in this output: Set ID3 metadata to Passthrough. Specify this ID3 metadata in
* Custom ID3 metadata inserter. MediaConvert writes each instance of ID3 metadata in a separate Event
* Message (eMSG) box. To exclude this ID3 metadata: Set ID3 metadata to None or leave blank.
* @see MpdTimedMetadata
*/
public final String timedMetadataAsString() {
return timedMetadata;
}
/**
* Specify the event message box (eMSG) version for ID3 timed metadata in your output. For more information, see
* ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax. Leave blank to use the default value Version 0. When you specify
* Version 1, you must also set ID3 metadata to Passthrough.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #timedMetadataBoxVersion} will return {@link MpdTimedMetadataBoxVersion#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #timedMetadataBoxVersionAsString}.
*
*
* @return Specify the event message box (eMSG) version for ID3 timed metadata in your output. For more information,
* see ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax. Leave blank to use the default value Version 0. When
* you specify Version 1, you must also set ID3 metadata to Passthrough.
* @see MpdTimedMetadataBoxVersion
*/
public final MpdTimedMetadataBoxVersion timedMetadataBoxVersion() {
return MpdTimedMetadataBoxVersion.fromValue(timedMetadataBoxVersion);
}
/**
* Specify the event message box (eMSG) version for ID3 timed metadata in your output. For more information, see
* ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax. Leave blank to use the default value Version 0. When you specify
* Version 1, you must also set ID3 metadata to Passthrough.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #timedMetadataBoxVersion} will return {@link MpdTimedMetadataBoxVersion#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #timedMetadataBoxVersionAsString}.
*
*
* @return Specify the event message box (eMSG) version for ID3 timed metadata in your output. For more information,
* see ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax. Leave blank to use the default value Version 0. When
* you specify Version 1, you must also set ID3 metadata to Passthrough.
* @see MpdTimedMetadataBoxVersion
*/
public final String timedMetadataBoxVersionAsString() {
return timedMetadataBoxVersion;
}
/**
* Specify the event message box (eMSG) scheme ID URI for ID3 timed metadata in your output. For more information,
* see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value:
* https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3
* metadata to Passthrough.
*
* @return Specify the event message box (eMSG) scheme ID URI for ID3 timed metadata in your output. For more
* information, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value:
* https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set
* ID3 metadata to Passthrough.
*/
public final String timedMetadataSchemeIdUri() {
return timedMetadataSchemeIdUri;
}
/**
* Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more information, see
* ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also
* set ID3 metadata to Passthrough.
*
* @return Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more information,
* see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value,
* you must also set ID3 metadata to Passthrough.
*/
public final String timedMetadataValue() {
return timedMetadataValue;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(accessibilityCaptionHintsAsString());
hashCode = 31 * hashCode + Objects.hashCode(audioDurationAsString());
hashCode = 31 * hashCode + Objects.hashCode(captionContainerTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(klvMetadataAsString());
hashCode = 31 * hashCode + Objects.hashCode(manifestMetadataSignalingAsString());
hashCode = 31 * hashCode + Objects.hashCode(scte35EsamAsString());
hashCode = 31 * hashCode + Objects.hashCode(scte35SourceAsString());
hashCode = 31 * hashCode + Objects.hashCode(timedMetadataAsString());
hashCode = 31 * hashCode + Objects.hashCode(timedMetadataBoxVersionAsString());
hashCode = 31 * hashCode + Objects.hashCode(timedMetadataSchemeIdUri());
hashCode = 31 * hashCode + Objects.hashCode(timedMetadataValue());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof MpdSettings)) {
return false;
}
MpdSettings other = (MpdSettings) obj;
return Objects.equals(accessibilityCaptionHintsAsString(), other.accessibilityCaptionHintsAsString())
&& Objects.equals(audioDurationAsString(), other.audioDurationAsString())
&& Objects.equals(captionContainerTypeAsString(), other.captionContainerTypeAsString())
&& Objects.equals(klvMetadataAsString(), other.klvMetadataAsString())
&& Objects.equals(manifestMetadataSignalingAsString(), other.manifestMetadataSignalingAsString())
&& Objects.equals(scte35EsamAsString(), other.scte35EsamAsString())
&& Objects.equals(scte35SourceAsString(), other.scte35SourceAsString())
&& Objects.equals(timedMetadataAsString(), other.timedMetadataAsString())
&& Objects.equals(timedMetadataBoxVersionAsString(), other.timedMetadataBoxVersionAsString())
&& Objects.equals(timedMetadataSchemeIdUri(), other.timedMetadataSchemeIdUri())
&& Objects.equals(timedMetadataValue(), other.timedMetadataValue());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public final String toString() {
return ToString.builder("MpdSettings").add("AccessibilityCaptionHints", accessibilityCaptionHintsAsString())
.add("AudioDuration", audioDurationAsString()).add("CaptionContainerType", captionContainerTypeAsString())
.add("KlvMetadata", klvMetadataAsString()).add("ManifestMetadataSignaling", manifestMetadataSignalingAsString())
.add("Scte35Esam", scte35EsamAsString()).add("Scte35Source", scte35SourceAsString())
.add("TimedMetadata", timedMetadataAsString()).add("TimedMetadataBoxVersion", timedMetadataBoxVersionAsString())
.add("TimedMetadataSchemeIdUri", timedMetadataSchemeIdUri()).add("TimedMetadataValue", timedMetadataValue())
.build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "AccessibilityCaptionHints":
return Optional.ofNullable(clazz.cast(accessibilityCaptionHintsAsString()));
case "AudioDuration":
return Optional.ofNullable(clazz.cast(audioDurationAsString()));
case "CaptionContainerType":
return Optional.ofNullable(clazz.cast(captionContainerTypeAsString()));
case "KlvMetadata":
return Optional.ofNullable(clazz.cast(klvMetadataAsString()));
case "ManifestMetadataSignaling":
return Optional.ofNullable(clazz.cast(manifestMetadataSignalingAsString()));
case "Scte35Esam":
return Optional.ofNullable(clazz.cast(scte35EsamAsString()));
case "Scte35Source":
return Optional.ofNullable(clazz.cast(scte35SourceAsString()));
case "TimedMetadata":
return Optional.ofNullable(clazz.cast(timedMetadataAsString()));
case "TimedMetadataBoxVersion":
return Optional.ofNullable(clazz.cast(timedMetadataBoxVersionAsString()));
case "TimedMetadataSchemeIdUri":
return Optional.ofNullable(clazz.cast(timedMetadataSchemeIdUri()));
case "TimedMetadataValue":
return Optional.ofNullable(clazz.cast(timedMetadataValue()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function