All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.mediaconvert.model.MpdSettings Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Elemental MediaConvert module holds the client classes that are used for communicating with AWS Elemental MediaConvert Service

There is a newer version: 2.29.15
Show newest version
/*
 * 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 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 getter(Function g) { return obj -> g.apply((MpdSettings) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** * 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: * * @param 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: * * @see MpdAccessibilityCaptionHints * @return Returns a reference to this object so that method calls can be chained together. * @see MpdAccessibilityCaptionHints */ Builder accessibilityCaptionHints(String 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: * * @param 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: * * @see MpdAccessibilityCaptionHints * @return Returns a reference to this object so that method calls can be chained together. * @see MpdAccessibilityCaptionHints */ Builder accessibilityCaptionHints(MpdAccessibilityCaptionHints 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. * * @param 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. * @see MpdAudioDuration * @return Returns a reference to this object so that method calls can be chained together. * @see MpdAudioDuration */ Builder audioDuration(String 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. * * @param 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. * @see MpdAudioDuration * @return Returns a reference to this object so that method calls can be chained together. * @see MpdAudioDuration */ Builder audioDuration(MpdAudioDuration 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. * * @param 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. * @see MpdCaptionContainerType * @return Returns a reference to this object so that method calls can be chained together. * @see MpdCaptionContainerType */ Builder captionContainerType(String 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. * * @param 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. * @see MpdCaptionContainerType * @return Returns a reference to this object so that method calls can be chained together. * @see MpdCaptionContainerType */ Builder captionContainerType(MpdCaptionContainerType 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. * * @param 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. * @see MpdKlvMetadata * @return Returns a reference to this object so that method calls can be chained together. * @see MpdKlvMetadata */ Builder klvMetadata(String 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. * * @param 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. * @see MpdKlvMetadata * @return Returns a reference to this object so that method calls can be chained together. * @see MpdKlvMetadata */ Builder klvMetadata(MpdKlvMetadata 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. * * @param 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. * @see MpdManifestMetadataSignaling * @return Returns a reference to this object so that method calls can be chained together. * @see MpdManifestMetadataSignaling */ Builder manifestMetadataSignaling(String 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. * * @param 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. * @see MpdManifestMetadataSignaling * @return Returns a reference to this object so that method calls can be chained together. * @see MpdManifestMetadataSignaling */ Builder manifestMetadataSignaling(MpdManifestMetadataSignaling 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. * * @param 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. * @see MpdScte35Esam * @return Returns a reference to this object so that method calls can be chained together. * @see MpdScte35Esam */ Builder scte35Esam(String 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. * * @param 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. * @see MpdScte35Esam * @return Returns a reference to this object so that method calls can be chained together. * @see MpdScte35Esam */ Builder scte35Esam(MpdScte35Esam 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. * * @param 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. * @see MpdScte35Source * @return Returns a reference to this object so that method calls can be chained together. * @see MpdScte35Source */ Builder scte35Source(String 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. * * @param 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. * @see MpdScte35Source * @return Returns a reference to this object so that method calls can be chained together. * @see MpdScte35Source */ Builder scte35Source(MpdScte35Source 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. * * @param 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. * @see MpdTimedMetadata * @return Returns a reference to this object so that method calls can be chained together. * @see MpdTimedMetadata */ Builder timedMetadata(String 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. * * @param 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. * @see MpdTimedMetadata * @return Returns a reference to this object so that method calls can be chained together. * @see MpdTimedMetadata */ Builder timedMetadata(MpdTimedMetadata 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. * * @param 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. * @see MpdTimedMetadataBoxVersion * @return Returns a reference to this object so that method calls can be chained together. * @see MpdTimedMetadataBoxVersion */ Builder timedMetadataBoxVersion(String 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. * * @param 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. * @see MpdTimedMetadataBoxVersion * @return Returns a reference to this object so that method calls can be chained together. * @see MpdTimedMetadataBoxVersion */ Builder timedMetadataBoxVersion(MpdTimedMetadataBoxVersion 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. * * @param timedMetadataSchemeIdUri * 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 Returns a reference to this object so that method calls can be chained together. */ Builder timedMetadataSchemeIdUri(String 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. * * @param timedMetadataValue * 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 Returns a reference to this object so that method calls can be chained together. */ Builder timedMetadataValue(String timedMetadataValue); } static final class BuilderImpl implements Builder { private String accessibilityCaptionHints; private String audioDuration; private String captionContainerType; private String klvMetadata; private String manifestMetadataSignaling; private String scte35Esam; private String scte35Source; private String timedMetadata; private String timedMetadataBoxVersion; private String timedMetadataSchemeIdUri; private String timedMetadataValue; private BuilderImpl() { } private BuilderImpl(MpdSettings model) { accessibilityCaptionHints(model.accessibilityCaptionHints); audioDuration(model.audioDuration); captionContainerType(model.captionContainerType); klvMetadata(model.klvMetadata); manifestMetadataSignaling(model.manifestMetadataSignaling); scte35Esam(model.scte35Esam); scte35Source(model.scte35Source); timedMetadata(model.timedMetadata); timedMetadataBoxVersion(model.timedMetadataBoxVersion); timedMetadataSchemeIdUri(model.timedMetadataSchemeIdUri); timedMetadataValue(model.timedMetadataValue); } public final String getAccessibilityCaptionHints() { return accessibilityCaptionHints; } public final void setAccessibilityCaptionHints(String accessibilityCaptionHints) { this.accessibilityCaptionHints = accessibilityCaptionHints; } @Override public final Builder accessibilityCaptionHints(String accessibilityCaptionHints) { this.accessibilityCaptionHints = accessibilityCaptionHints; return this; } @Override public final Builder accessibilityCaptionHints(MpdAccessibilityCaptionHints accessibilityCaptionHints) { this.accessibilityCaptionHints(accessibilityCaptionHints == null ? null : accessibilityCaptionHints.toString()); return this; } public final String getAudioDuration() { return audioDuration; } public final void setAudioDuration(String audioDuration) { this.audioDuration = audioDuration; } @Override public final Builder audioDuration(String audioDuration) { this.audioDuration = audioDuration; return this; } @Override public final Builder audioDuration(MpdAudioDuration audioDuration) { this.audioDuration(audioDuration == null ? null : audioDuration.toString()); return this; } public final String getCaptionContainerType() { return captionContainerType; } public final void setCaptionContainerType(String captionContainerType) { this.captionContainerType = captionContainerType; } @Override public final Builder captionContainerType(String captionContainerType) { this.captionContainerType = captionContainerType; return this; } @Override public final Builder captionContainerType(MpdCaptionContainerType captionContainerType) { this.captionContainerType(captionContainerType == null ? null : captionContainerType.toString()); return this; } public final String getKlvMetadata() { return klvMetadata; } public final void setKlvMetadata(String klvMetadata) { this.klvMetadata = klvMetadata; } @Override public final Builder klvMetadata(String klvMetadata) { this.klvMetadata = klvMetadata; return this; } @Override public final Builder klvMetadata(MpdKlvMetadata klvMetadata) { this.klvMetadata(klvMetadata == null ? null : klvMetadata.toString()); return this; } public final String getManifestMetadataSignaling() { return manifestMetadataSignaling; } public final void setManifestMetadataSignaling(String manifestMetadataSignaling) { this.manifestMetadataSignaling = manifestMetadataSignaling; } @Override public final Builder manifestMetadataSignaling(String manifestMetadataSignaling) { this.manifestMetadataSignaling = manifestMetadataSignaling; return this; } @Override public final Builder manifestMetadataSignaling(MpdManifestMetadataSignaling manifestMetadataSignaling) { this.manifestMetadataSignaling(manifestMetadataSignaling == null ? null : manifestMetadataSignaling.toString()); return this; } public final String getScte35Esam() { return scte35Esam; } public final void setScte35Esam(String scte35Esam) { this.scte35Esam = scte35Esam; } @Override public final Builder scte35Esam(String scte35Esam) { this.scte35Esam = scte35Esam; return this; } @Override public final Builder scte35Esam(MpdScte35Esam scte35Esam) { this.scte35Esam(scte35Esam == null ? null : scte35Esam.toString()); return this; } public final String getScte35Source() { return scte35Source; } public final void setScte35Source(String scte35Source) { this.scte35Source = scte35Source; } @Override public final Builder scte35Source(String scte35Source) { this.scte35Source = scte35Source; return this; } @Override public final Builder scte35Source(MpdScte35Source scte35Source) { this.scte35Source(scte35Source == null ? null : scte35Source.toString()); return this; } public final String getTimedMetadata() { return timedMetadata; } public final void setTimedMetadata(String timedMetadata) { this.timedMetadata = timedMetadata; } @Override public final Builder timedMetadata(String timedMetadata) { this.timedMetadata = timedMetadata; return this; } @Override public final Builder timedMetadata(MpdTimedMetadata timedMetadata) { this.timedMetadata(timedMetadata == null ? null : timedMetadata.toString()); return this; } public final String getTimedMetadataBoxVersion() { return timedMetadataBoxVersion; } public final void setTimedMetadataBoxVersion(String timedMetadataBoxVersion) { this.timedMetadataBoxVersion = timedMetadataBoxVersion; } @Override public final Builder timedMetadataBoxVersion(String timedMetadataBoxVersion) { this.timedMetadataBoxVersion = timedMetadataBoxVersion; return this; } @Override public final Builder timedMetadataBoxVersion(MpdTimedMetadataBoxVersion timedMetadataBoxVersion) { this.timedMetadataBoxVersion(timedMetadataBoxVersion == null ? null : timedMetadataBoxVersion.toString()); return this; } public final String getTimedMetadataSchemeIdUri() { return timedMetadataSchemeIdUri; } public final void setTimedMetadataSchemeIdUri(String timedMetadataSchemeIdUri) { this.timedMetadataSchemeIdUri = timedMetadataSchemeIdUri; } @Override public final Builder timedMetadataSchemeIdUri(String timedMetadataSchemeIdUri) { this.timedMetadataSchemeIdUri = timedMetadataSchemeIdUri; return this; } public final String getTimedMetadataValue() { return timedMetadataValue; } public final void setTimedMetadataValue(String timedMetadataValue) { this.timedMetadataValue = timedMetadataValue; } @Override public final Builder timedMetadataValue(String timedMetadataValue) { this.timedMetadataValue = timedMetadataValue; return this; } @Override public MpdSettings build() { return new MpdSettings(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy