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

com.amazonaws.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: 1.12.778
Show newest version
/*
 * Copyright 2019-2024 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 com.amazonaws.services.mediaconvert.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 * These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
 * 
 * @see AWS API
 *      Documentation
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class MpdSettings implements Serializable, Cloneable, StructuredPojo {

    /**
     * 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: 
     */
    private String 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.
     */
    private String 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.
     */
    private String 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.
     */
    private String 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.
     */
    private String 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.
     */
    private String 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.
     */
    private String 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.
     */
    private String 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.
     */
    private String 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.
     */
    private 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.
     */
    private String 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: 
     * 
     * @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
     */

    public void setAccessibilityCaptionHints(String accessibilityCaptionHints) {
        this.accessibilityCaptionHints = 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: 
     * 
     * @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 String getAccessibilityCaptionHints() {
        return this.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: 
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdAccessibilityCaptionHints
     */

    public MpdSettings withAccessibilityCaptionHints(String accessibilityCaptionHints) {
        setAccessibilityCaptionHints(accessibilityCaptionHints);
        return this;
    }

    /**
     * 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: 
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdAccessibilityCaptionHints
     */

    public MpdSettings withAccessibilityCaptionHints(MpdAccessibilityCaptionHints accessibilityCaptionHints) {
        this.accessibilityCaptionHints = accessibilityCaptionHints.toString();
        return this;
    }

    /**
     * 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
     */

    public void setAudioDuration(String audioDuration) {
        this.audioDuration = 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.
     * 
     * @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 String getAudioDuration() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdAudioDuration
     */

    public MpdSettings withAudioDuration(String audioDuration) {
        setAudioDuration(audioDuration);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdAudioDuration
     */

    public MpdSettings withAudioDuration(MpdAudioDuration audioDuration) {
        this.audioDuration = audioDuration.toString();
        return this;
    }

    /**
     * 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
     */

    public void setCaptionContainerType(String captionContainerType) {
        this.captionContainerType = 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.
     * 
     * @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 String getCaptionContainerType() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdCaptionContainerType
     */

    public MpdSettings withCaptionContainerType(String captionContainerType) {
        setCaptionContainerType(captionContainerType);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdCaptionContainerType
     */

    public MpdSettings withCaptionContainerType(MpdCaptionContainerType captionContainerType) {
        this.captionContainerType = captionContainerType.toString();
        return this;
    }

    /**
     * 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
     */

    public void setKlvMetadata(String klvMetadata) {
        this.klvMetadata = 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.
     * 
     * @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 String getKlvMetadata() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdKlvMetadata
     */

    public MpdSettings withKlvMetadata(String klvMetadata) {
        setKlvMetadata(klvMetadata);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdKlvMetadata
     */

    public MpdSettings withKlvMetadata(MpdKlvMetadata klvMetadata) {
        this.klvMetadata = klvMetadata.toString();
        return this;
    }

    /**
     * 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
     */

    public void setManifestMetadataSignaling(String manifestMetadataSignaling) {
        this.manifestMetadataSignaling = 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.
     * 
     * @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 String getManifestMetadataSignaling() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdManifestMetadataSignaling
     */

    public MpdSettings withManifestMetadataSignaling(String manifestMetadataSignaling) {
        setManifestMetadataSignaling(manifestMetadataSignaling);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdManifestMetadataSignaling
     */

    public MpdSettings withManifestMetadataSignaling(MpdManifestMetadataSignaling manifestMetadataSignaling) {
        this.manifestMetadataSignaling = manifestMetadataSignaling.toString();
        return this;
    }

    /**
     * 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
     */

    public void setScte35Esam(String scte35Esam) {
        this.scte35Esam = 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.
     * 
     * @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 String getScte35Esam() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdScte35Esam
     */

    public MpdSettings withScte35Esam(String scte35Esam) {
        setScte35Esam(scte35Esam);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdScte35Esam
     */

    public MpdSettings withScte35Esam(MpdScte35Esam scte35Esam) {
        this.scte35Esam = scte35Esam.toString();
        return this;
    }

    /**
     * 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
     */

    public void setScte35Source(String scte35Source) {
        this.scte35Source = 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.
     * 
     * @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 String getScte35Source() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdScte35Source
     */

    public MpdSettings withScte35Source(String scte35Source) {
        setScte35Source(scte35Source);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdScte35Source
     */

    public MpdSettings withScte35Source(MpdScte35Source scte35Source) {
        this.scte35Source = scte35Source.toString();
        return this;
    }

    /**
     * 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
     */

    public void setTimedMetadata(String timedMetadata) {
        this.timedMetadata = 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.
     * 
     * @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 String getTimedMetadata() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdTimedMetadata
     */

    public MpdSettings withTimedMetadata(String timedMetadata) {
        setTimedMetadata(timedMetadata);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdTimedMetadata
     */

    public MpdSettings withTimedMetadata(MpdTimedMetadata timedMetadata) {
        this.timedMetadata = timedMetadata.toString();
        return this;
    }

    /**
     * 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
     */

    public void setTimedMetadataBoxVersion(String timedMetadataBoxVersion) {
        this.timedMetadataBoxVersion = 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.
     * 
     * @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 String getTimedMetadataBoxVersion() {
        return this.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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdTimedMetadataBoxVersion
     */

    public MpdSettings withTimedMetadataBoxVersion(String timedMetadataBoxVersion) {
        setTimedMetadataBoxVersion(timedMetadataBoxVersion);
        return this;
    }

    /**
     * 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MpdTimedMetadataBoxVersion
     */

    public MpdSettings withTimedMetadataBoxVersion(MpdTimedMetadataBoxVersion timedMetadataBoxVersion) {
        this.timedMetadataBoxVersion = timedMetadataBoxVersion.toString();
        return this;
    }

    /**
     * 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.
     */

    public void setTimedMetadataSchemeIdUri(String timedMetadataSchemeIdUri) {
        this.timedMetadataSchemeIdUri = 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 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 String getTimedMetadataSchemeIdUri() {
        return this.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.
     * 
     * @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.
     */

    public MpdSettings withTimedMetadataSchemeIdUri(String timedMetadataSchemeIdUri) {
        setTimedMetadataSchemeIdUri(timedMetadataSchemeIdUri);
        return this;
    }

    /**
     * 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.
     */

    public void setTimedMetadataValue(String timedMetadataValue) {
        this.timedMetadataValue = 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 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 String getTimedMetadataValue() {
        return this.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.
     * 
     * @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.
     */

    public MpdSettings withTimedMetadataValue(String timedMetadataValue) {
        setTimedMetadataValue(timedMetadataValue);
        return this;
    }

    /**
     * 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.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getAccessibilityCaptionHints() != null)
            sb.append("AccessibilityCaptionHints: ").append(getAccessibilityCaptionHints()).append(",");
        if (getAudioDuration() != null)
            sb.append("AudioDuration: ").append(getAudioDuration()).append(",");
        if (getCaptionContainerType() != null)
            sb.append("CaptionContainerType: ").append(getCaptionContainerType()).append(",");
        if (getKlvMetadata() != null)
            sb.append("KlvMetadata: ").append(getKlvMetadata()).append(",");
        if (getManifestMetadataSignaling() != null)
            sb.append("ManifestMetadataSignaling: ").append(getManifestMetadataSignaling()).append(",");
        if (getScte35Esam() != null)
            sb.append("Scte35Esam: ").append(getScte35Esam()).append(",");
        if (getScte35Source() != null)
            sb.append("Scte35Source: ").append(getScte35Source()).append(",");
        if (getTimedMetadata() != null)
            sb.append("TimedMetadata: ").append(getTimedMetadata()).append(",");
        if (getTimedMetadataBoxVersion() != null)
            sb.append("TimedMetadataBoxVersion: ").append(getTimedMetadataBoxVersion()).append(",");
        if (getTimedMetadataSchemeIdUri() != null)
            sb.append("TimedMetadataSchemeIdUri: ").append(getTimedMetadataSchemeIdUri()).append(",");
        if (getTimedMetadataValue() != null)
            sb.append("TimedMetadataValue: ").append(getTimedMetadataValue());
        sb.append("}");
        return sb.toString();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof MpdSettings == false)
            return false;
        MpdSettings other = (MpdSettings) obj;
        if (other.getAccessibilityCaptionHints() == null ^ this.getAccessibilityCaptionHints() == null)
            return false;
        if (other.getAccessibilityCaptionHints() != null && other.getAccessibilityCaptionHints().equals(this.getAccessibilityCaptionHints()) == false)
            return false;
        if (other.getAudioDuration() == null ^ this.getAudioDuration() == null)
            return false;
        if (other.getAudioDuration() != null && other.getAudioDuration().equals(this.getAudioDuration()) == false)
            return false;
        if (other.getCaptionContainerType() == null ^ this.getCaptionContainerType() == null)
            return false;
        if (other.getCaptionContainerType() != null && other.getCaptionContainerType().equals(this.getCaptionContainerType()) == false)
            return false;
        if (other.getKlvMetadata() == null ^ this.getKlvMetadata() == null)
            return false;
        if (other.getKlvMetadata() != null && other.getKlvMetadata().equals(this.getKlvMetadata()) == false)
            return false;
        if (other.getManifestMetadataSignaling() == null ^ this.getManifestMetadataSignaling() == null)
            return false;
        if (other.getManifestMetadataSignaling() != null && other.getManifestMetadataSignaling().equals(this.getManifestMetadataSignaling()) == false)
            return false;
        if (other.getScte35Esam() == null ^ this.getScte35Esam() == null)
            return false;
        if (other.getScte35Esam() != null && other.getScte35Esam().equals(this.getScte35Esam()) == false)
            return false;
        if (other.getScte35Source() == null ^ this.getScte35Source() == null)
            return false;
        if (other.getScte35Source() != null && other.getScte35Source().equals(this.getScte35Source()) == false)
            return false;
        if (other.getTimedMetadata() == null ^ this.getTimedMetadata() == null)
            return false;
        if (other.getTimedMetadata() != null && other.getTimedMetadata().equals(this.getTimedMetadata()) == false)
            return false;
        if (other.getTimedMetadataBoxVersion() == null ^ this.getTimedMetadataBoxVersion() == null)
            return false;
        if (other.getTimedMetadataBoxVersion() != null && other.getTimedMetadataBoxVersion().equals(this.getTimedMetadataBoxVersion()) == false)
            return false;
        if (other.getTimedMetadataSchemeIdUri() == null ^ this.getTimedMetadataSchemeIdUri() == null)
            return false;
        if (other.getTimedMetadataSchemeIdUri() != null && other.getTimedMetadataSchemeIdUri().equals(this.getTimedMetadataSchemeIdUri()) == false)
            return false;
        if (other.getTimedMetadataValue() == null ^ this.getTimedMetadataValue() == null)
            return false;
        if (other.getTimedMetadataValue() != null && other.getTimedMetadataValue().equals(this.getTimedMetadataValue()) == false)
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;

        hashCode = prime * hashCode + ((getAccessibilityCaptionHints() == null) ? 0 : getAccessibilityCaptionHints().hashCode());
        hashCode = prime * hashCode + ((getAudioDuration() == null) ? 0 : getAudioDuration().hashCode());
        hashCode = prime * hashCode + ((getCaptionContainerType() == null) ? 0 : getCaptionContainerType().hashCode());
        hashCode = prime * hashCode + ((getKlvMetadata() == null) ? 0 : getKlvMetadata().hashCode());
        hashCode = prime * hashCode + ((getManifestMetadataSignaling() == null) ? 0 : getManifestMetadataSignaling().hashCode());
        hashCode = prime * hashCode + ((getScte35Esam() == null) ? 0 : getScte35Esam().hashCode());
        hashCode = prime * hashCode + ((getScte35Source() == null) ? 0 : getScte35Source().hashCode());
        hashCode = prime * hashCode + ((getTimedMetadata() == null) ? 0 : getTimedMetadata().hashCode());
        hashCode = prime * hashCode + ((getTimedMetadataBoxVersion() == null) ? 0 : getTimedMetadataBoxVersion().hashCode());
        hashCode = prime * hashCode + ((getTimedMetadataSchemeIdUri() == null) ? 0 : getTimedMetadataSchemeIdUri().hashCode());
        hashCode = prime * hashCode + ((getTimedMetadataValue() == null) ? 0 : getTimedMetadataValue().hashCode());
        return hashCode;
    }

    @Override
    public MpdSettings clone() {
        try {
            return (MpdSettings) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
        }
    }

    @com.amazonaws.annotation.SdkInternalApi
    @Override
    public void marshall(ProtocolMarshaller protocolMarshaller) {
        com.amazonaws.services.mediaconvert.model.transform.MpdSettingsMarshaller.getInstance().marshall(this, protocolMarshaller);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy