
software.amazon.awssdk.services.mediaconvert.model.DashIsoGroupSettings Maven / Gradle / Ivy
/*
* 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.Collection;
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.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
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.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
* Settings related to your DASH output package. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html.
*/
@Generated("software.amazon.awssdk:codegen")
public final class DashIsoGroupSettings implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField> ADDITIONAL_MANIFESTS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("AdditionalManifests")
.getter(getter(DashIsoGroupSettings::additionalManifests))
.setter(setter(Builder::additionalManifests))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("additionalManifests").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(DashAdditionalManifest::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField AUDIO_CHANNEL_CONFIG_SCHEME_ID_URI_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("AudioChannelConfigSchemeIdUri")
.getter(getter(DashIsoGroupSettings::audioChannelConfigSchemeIdUriAsString))
.setter(setter(Builder::audioChannelConfigSchemeIdUri))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("audioChannelConfigSchemeIdUri")
.build()).build();
private static final SdkField BASE_URL_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("BaseUrl").getter(getter(DashIsoGroupSettings::baseUrl)).setter(setter(Builder::baseUrl))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("baseUrl").build()).build();
private static final SdkField DASH_I_FRAME_TRICK_PLAY_NAME_MODIFIER_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("DashIFrameTrickPlayNameModifier")
.getter(getter(DashIsoGroupSettings::dashIFrameTrickPlayNameModifier))
.setter(setter(Builder::dashIFrameTrickPlayNameModifier))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("dashIFrameTrickPlayNameModifier")
.build()).build();
private static final SdkField DASH_MANIFEST_STYLE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DashManifestStyle").getter(getter(DashIsoGroupSettings::dashManifestStyleAsString))
.setter(setter(Builder::dashManifestStyle))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("dashManifestStyle").build()).build();
private static final SdkField DESTINATION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Destination").getter(getter(DashIsoGroupSettings::destination)).setter(setter(Builder::destination))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("destination").build()).build();
private static final SdkField DESTINATION_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DestinationSettings")
.getter(getter(DashIsoGroupSettings::destinationSettings)).setter(setter(Builder::destinationSettings))
.constructor(DestinationSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("destinationSettings").build())
.build();
private static final SdkField ENCRYPTION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("Encryption")
.getter(getter(DashIsoGroupSettings::encryption)).setter(setter(Builder::encryption))
.constructor(DashIsoEncryptionSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("encryption").build()).build();
private static final SdkField FRAGMENT_LENGTH_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("FragmentLength").getter(getter(DashIsoGroupSettings::fragmentLength))
.setter(setter(Builder::fragmentLength))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("fragmentLength").build()).build();
private static final SdkField HBBTV_COMPLIANCE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("HbbtvCompliance").getter(getter(DashIsoGroupSettings::hbbtvComplianceAsString))
.setter(setter(Builder::hbbtvCompliance))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("hbbtvCompliance").build()).build();
private static final SdkField IMAGE_BASED_TRICK_PLAY_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ImageBasedTrickPlay").getter(getter(DashIsoGroupSettings::imageBasedTrickPlayAsString))
.setter(setter(Builder::imageBasedTrickPlay))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("imageBasedTrickPlay").build())
.build();
private static final SdkField IMAGE_BASED_TRICK_PLAY_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.memberName("ImageBasedTrickPlaySettings")
.getter(getter(DashIsoGroupSettings::imageBasedTrickPlaySettings))
.setter(setter(Builder::imageBasedTrickPlaySettings))
.constructor(DashIsoImageBasedTrickPlaySettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("imageBasedTrickPlaySettings")
.build()).build();
private static final SdkField MIN_BUFFER_TIME_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("MinBufferTime").getter(getter(DashIsoGroupSettings::minBufferTime))
.setter(setter(Builder::minBufferTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("minBufferTime").build()).build();
private static final SdkField MIN_FINAL_SEGMENT_LENGTH_FIELD = SdkField. builder(MarshallingType.DOUBLE)
.memberName("MinFinalSegmentLength").getter(getter(DashIsoGroupSettings::minFinalSegmentLength))
.setter(setter(Builder::minFinalSegmentLength))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("minFinalSegmentLength").build())
.build();
private static final SdkField MPD_MANIFEST_BANDWIDTH_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("MpdManifestBandwidthType").getter(getter(DashIsoGroupSettings::mpdManifestBandwidthTypeAsString))
.setter(setter(Builder::mpdManifestBandwidthType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("mpdManifestBandwidthType").build())
.build();
private static final SdkField MPD_PROFILE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("MpdProfile").getter(getter(DashIsoGroupSettings::mpdProfileAsString))
.setter(setter(Builder::mpdProfile))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("mpdProfile").build()).build();
private static final SdkField PTS_OFFSET_HANDLING_FOR_B_FRAMES_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("PtsOffsetHandlingForBFrames")
.getter(getter(DashIsoGroupSettings::ptsOffsetHandlingForBFramesAsString))
.setter(setter(Builder::ptsOffsetHandlingForBFrames))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ptsOffsetHandlingForBFrames")
.build()).build();
private static final SdkField SEGMENT_CONTROL_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SegmentControl").getter(getter(DashIsoGroupSettings::segmentControlAsString))
.setter(setter(Builder::segmentControl))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("segmentControl").build()).build();
private static final SdkField SEGMENT_LENGTH_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("SegmentLength").getter(getter(DashIsoGroupSettings::segmentLength))
.setter(setter(Builder::segmentLength))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("segmentLength").build()).build();
private static final SdkField SEGMENT_LENGTH_CONTROL_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SegmentLengthControl").getter(getter(DashIsoGroupSettings::segmentLengthControlAsString))
.setter(setter(Builder::segmentLengthControl))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("segmentLengthControl").build())
.build();
private static final SdkField VIDEO_COMPOSITION_OFFSETS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("VideoCompositionOffsets").getter(getter(DashIsoGroupSettings::videoCompositionOffsetsAsString))
.setter(setter(Builder::videoCompositionOffsets))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("videoCompositionOffsets").build())
.build();
private static final SdkField WRITE_SEGMENT_TIMELINE_IN_REPRESENTATION_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("WriteSegmentTimelineInRepresentation")
.getter(getter(DashIsoGroupSettings::writeSegmentTimelineInRepresentationAsString))
.setter(setter(Builder::writeSegmentTimelineInRepresentation))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("writeSegmentTimelineInRepresentation").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(ADDITIONAL_MANIFESTS_FIELD,
AUDIO_CHANNEL_CONFIG_SCHEME_ID_URI_FIELD, BASE_URL_FIELD, DASH_I_FRAME_TRICK_PLAY_NAME_MODIFIER_FIELD,
DASH_MANIFEST_STYLE_FIELD, DESTINATION_FIELD, DESTINATION_SETTINGS_FIELD, ENCRYPTION_FIELD, FRAGMENT_LENGTH_FIELD,
HBBTV_COMPLIANCE_FIELD, IMAGE_BASED_TRICK_PLAY_FIELD, IMAGE_BASED_TRICK_PLAY_SETTINGS_FIELD, MIN_BUFFER_TIME_FIELD,
MIN_FINAL_SEGMENT_LENGTH_FIELD, MPD_MANIFEST_BANDWIDTH_TYPE_FIELD, MPD_PROFILE_FIELD,
PTS_OFFSET_HANDLING_FOR_B_FRAMES_FIELD, SEGMENT_CONTROL_FIELD, SEGMENT_LENGTH_FIELD, SEGMENT_LENGTH_CONTROL_FIELD,
VIDEO_COMPOSITION_OFFSETS_FIELD, WRITE_SEGMENT_TIMELINE_IN_REPRESENTATION_FIELD));
private static final long serialVersionUID = 1L;
private final List additionalManifests;
private final String audioChannelConfigSchemeIdUri;
private final String baseUrl;
private final String dashIFrameTrickPlayNameModifier;
private final String dashManifestStyle;
private final String destination;
private final DestinationSettings destinationSettings;
private final DashIsoEncryptionSettings encryption;
private final Integer fragmentLength;
private final String hbbtvCompliance;
private final String imageBasedTrickPlay;
private final DashIsoImageBasedTrickPlaySettings imageBasedTrickPlaySettings;
private final Integer minBufferTime;
private final Double minFinalSegmentLength;
private final String mpdManifestBandwidthType;
private final String mpdProfile;
private final String ptsOffsetHandlingForBFrames;
private final String segmentControl;
private final Integer segmentLength;
private final String segmentLengthControl;
private final String videoCompositionOffsets;
private final String writeSegmentTimelineInRepresentation;
private DashIsoGroupSettings(BuilderImpl builder) {
this.additionalManifests = builder.additionalManifests;
this.audioChannelConfigSchemeIdUri = builder.audioChannelConfigSchemeIdUri;
this.baseUrl = builder.baseUrl;
this.dashIFrameTrickPlayNameModifier = builder.dashIFrameTrickPlayNameModifier;
this.dashManifestStyle = builder.dashManifestStyle;
this.destination = builder.destination;
this.destinationSettings = builder.destinationSettings;
this.encryption = builder.encryption;
this.fragmentLength = builder.fragmentLength;
this.hbbtvCompliance = builder.hbbtvCompliance;
this.imageBasedTrickPlay = builder.imageBasedTrickPlay;
this.imageBasedTrickPlaySettings = builder.imageBasedTrickPlaySettings;
this.minBufferTime = builder.minBufferTime;
this.minFinalSegmentLength = builder.minFinalSegmentLength;
this.mpdManifestBandwidthType = builder.mpdManifestBandwidthType;
this.mpdProfile = builder.mpdProfile;
this.ptsOffsetHandlingForBFrames = builder.ptsOffsetHandlingForBFrames;
this.segmentControl = builder.segmentControl;
this.segmentLength = builder.segmentLength;
this.segmentLengthControl = builder.segmentLengthControl;
this.videoCompositionOffsets = builder.videoCompositionOffsets;
this.writeSegmentTimelineInRepresentation = builder.writeSegmentTimelineInRepresentation;
}
/**
* For responses, this returns true if the service returned a value for the AdditionalManifests property. This DOES
* NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasAdditionalManifests() {
return additionalManifests != null && !(additionalManifests instanceof SdkAutoConstructList);
}
/**
* By default, the service creates one .mpd DASH manifest for each DASH ISO output group in your job. This default
* manifest references every output in the output group. To create additional DASH manifests that reference a subset
* of the outputs in the output group, specify a list of them here.
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAdditionalManifests} method.
*
*
* @return By default, the service creates one .mpd DASH manifest for each DASH ISO output group in your job. This
* default manifest references every output in the output group. To create additional DASH manifests that
* reference a subset of the outputs in the output group, specify a list of them here.
*/
public final List additionalManifests() {
return additionalManifests;
}
/**
* Use this setting only when your audio codec is a Dolby one (AC3, EAC3, or Atmos) and your downstream workflow
* requires that your DASH manifest use the Dolby channel configuration tag, rather than the MPEG one. For example,
* you might need to use this to make dynamic ad insertion work. Specify which audio channel configuration scheme ID
* URI MediaConvert writes in your DASH manifest. Keep the default value, MPEG channel configuration, to have
* MediaConvert write this: urn:mpeg:mpegB:cicp:ChannelConfiguration. Choose Dolby channel configuration to have
* MediaConvert write this instead: tag:dolby.com,2014:dash:audio_channel_configuration:2011.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #audioChannelConfigSchemeIdUri} will return
* {@link DashIsoGroupAudioChannelConfigSchemeIdUri#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service
* is available from {@link #audioChannelConfigSchemeIdUriAsString}.
*
*
* @return Use this setting only when your audio codec is a Dolby one (AC3, EAC3, or Atmos) and your downstream
* workflow requires that your DASH manifest use the Dolby channel configuration tag, rather than the MPEG
* one. For example, you might need to use this to make dynamic ad insertion work. Specify which audio
* channel configuration scheme ID URI MediaConvert writes in your DASH manifest. Keep the default value,
* MPEG channel configuration, to have MediaConvert write this: urn:mpeg:mpegB:cicp:ChannelConfiguration.
* Choose Dolby channel configuration to have MediaConvert write this instead:
* tag:dolby.com,2014:dash:audio_channel_configuration:2011.
* @see DashIsoGroupAudioChannelConfigSchemeIdUri
*/
public final DashIsoGroupAudioChannelConfigSchemeIdUri audioChannelConfigSchemeIdUri() {
return DashIsoGroupAudioChannelConfigSchemeIdUri.fromValue(audioChannelConfigSchemeIdUri);
}
/**
* Use this setting only when your audio codec is a Dolby one (AC3, EAC3, or Atmos) and your downstream workflow
* requires that your DASH manifest use the Dolby channel configuration tag, rather than the MPEG one. For example,
* you might need to use this to make dynamic ad insertion work. Specify which audio channel configuration scheme ID
* URI MediaConvert writes in your DASH manifest. Keep the default value, MPEG channel configuration, to have
* MediaConvert write this: urn:mpeg:mpegB:cicp:ChannelConfiguration. Choose Dolby channel configuration to have
* MediaConvert write this instead: tag:dolby.com,2014:dash:audio_channel_configuration:2011.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #audioChannelConfigSchemeIdUri} will return
* {@link DashIsoGroupAudioChannelConfigSchemeIdUri#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service
* is available from {@link #audioChannelConfigSchemeIdUriAsString}.
*
*
* @return Use this setting only when your audio codec is a Dolby one (AC3, EAC3, or Atmos) and your downstream
* workflow requires that your DASH manifest use the Dolby channel configuration tag, rather than the MPEG
* one. For example, you might need to use this to make dynamic ad insertion work. Specify which audio
* channel configuration scheme ID URI MediaConvert writes in your DASH manifest. Keep the default value,
* MPEG channel configuration, to have MediaConvert write this: urn:mpeg:mpegB:cicp:ChannelConfiguration.
* Choose Dolby channel configuration to have MediaConvert write this instead:
* tag:dolby.com,2014:dash:audio_channel_configuration:2011.
* @see DashIsoGroupAudioChannelConfigSchemeIdUri
*/
public final String audioChannelConfigSchemeIdUriAsString() {
return audioChannelConfigSchemeIdUri;
}
/**
* A partial URI prefix that will be put in the manifest (.mpd) file at the top level BaseURL element. Can be used
* if streams are delivered from a different URL than the manifest file.
*
* @return A partial URI prefix that will be put in the manifest (.mpd) file at the top level BaseURL element. Can
* be used if streams are delivered from a different URL than the manifest file.
*/
public final String baseUrl() {
return baseUrl;
}
/**
* Specify whether MediaConvert generates I-frame only video segments for DASH trick play, also known as trick mode.
* When specified, the I-frame only video segments are included within an additional AdaptationSet in your DASH
* output manifest. To generate I-frame only video segments: Enter a name as a text string, up to 256 character
* long. This name is appended to the end of this output group's base filename, that you specify as part of your
* destination URI, and used for the I-frame only video segment files. You may also include format identifiers. For
* more information, see:
* https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
* #using-settings-variables-with-streaming-outputs To not generate I-frame only video segments: Leave blank.
*
* @return Specify whether MediaConvert generates I-frame only video segments for DASH trick play, also known as
* trick mode. When specified, the I-frame only video segments are included within an additional
* AdaptationSet in your DASH output manifest. To generate I-frame only video segments: Enter a name as a
* text string, up to 256 character long. This name is appended to the end of this output group's base
* filename, that you specify as part of your destination URI, and used for the I-frame only video segment
* files. You may also include format identifiers. For more information, see:
* https://docs.aws.amazon.com/mediaconvert
* /latest/ug/using-variables-in-your-job-settings.html#using-settings-variables-with-streaming-outputs To
* not generate I-frame only video segments: Leave blank.
*/
public final String dashIFrameTrickPlayNameModifier() {
return dashIFrameTrickPlayNameModifier;
}
/**
* Specify how MediaConvert writes SegmentTimeline in your output DASH manifest. To write a SegmentTimeline in each
* video Representation: Keep the default value, Basic. To write a common SegmentTimeline in the video
* AdaptationSet: Choose Compact. Note that MediaConvert will still write a SegmentTimeline in any Representation
* that does not share a common timeline. To write a video AdaptationSet for each different output framerate, and a
* common SegmentTimeline in each AdaptationSet: Choose Distinct.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #dashManifestStyle}
* will return {@link DashManifestStyle#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #dashManifestStyleAsString}.
*
*
* @return Specify how MediaConvert writes SegmentTimeline in your output DASH manifest. To write a SegmentTimeline
* in each video Representation: Keep the default value, Basic. To write a common SegmentTimeline in the
* video AdaptationSet: Choose Compact. Note that MediaConvert will still write a SegmentTimeline in any
* Representation that does not share a common timeline. To write a video AdaptationSet for each different
* output framerate, and a common SegmentTimeline in each AdaptationSet: Choose Distinct.
* @see DashManifestStyle
*/
public final DashManifestStyle dashManifestStyle() {
return DashManifestStyle.fromValue(dashManifestStyle);
}
/**
* Specify how MediaConvert writes SegmentTimeline in your output DASH manifest. To write a SegmentTimeline in each
* video Representation: Keep the default value, Basic. To write a common SegmentTimeline in the video
* AdaptationSet: Choose Compact. Note that MediaConvert will still write a SegmentTimeline in any Representation
* that does not share a common timeline. To write a video AdaptationSet for each different output framerate, and a
* common SegmentTimeline in each AdaptationSet: Choose Distinct.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #dashManifestStyle}
* will return {@link DashManifestStyle#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #dashManifestStyleAsString}.
*
*
* @return Specify how MediaConvert writes SegmentTimeline in your output DASH manifest. To write a SegmentTimeline
* in each video Representation: Keep the default value, Basic. To write a common SegmentTimeline in the
* video AdaptationSet: Choose Compact. Note that MediaConvert will still write a SegmentTimeline in any
* Representation that does not share a common timeline. To write a video AdaptationSet for each different
* output framerate, and a common SegmentTimeline in each AdaptationSet: Choose Distinct.
* @see DashManifestStyle
*/
public final String dashManifestStyleAsString() {
return dashManifestStyle;
}
/**
* Use Destination to specify the S3 output location and the output filename base. Destination accepts format
* identifiers. If you do not specify the base filename in the URI, the service will use the filename of the input
* file. If your job has multiple inputs, the service uses the filename of the first input file.
*
* @return Use Destination to specify the S3 output location and the output filename base. Destination accepts
* format identifiers. If you do not specify the base filename in the URI, the service will use the filename
* of the input file. If your job has multiple inputs, the service uses the filename of the first input
* file.
*/
public final String destination() {
return destination;
}
/**
* Settings associated with the destination. Will vary based on the type of destination
*
* @return Settings associated with the destination. Will vary based on the type of destination
*/
public final DestinationSettings destinationSettings() {
return destinationSettings;
}
/**
* DRM settings.
*
* @return DRM settings.
*/
public final DashIsoEncryptionSettings encryption() {
return encryption;
}
/**
* Length of fragments to generate (in seconds). Fragment length must be compatible with GOP size and Framerate.
* Note that fragments will end on the next keyframe after this number of seconds, so actual fragment length may be
* longer. When Emit Single File is checked, the fragmentation is internal to a single output file and it does not
* cause the creation of many output files as in other output types.
*
* @return Length of fragments to generate (in seconds). Fragment length must be compatible with GOP size and
* Framerate. Note that fragments will end on the next keyframe after this number of seconds, so actual
* fragment length may be longer. When Emit Single File is checked, the fragmentation is internal to a
* single output file and it does not cause the creation of many output files as in other output types.
*/
public final Integer fragmentLength() {
return fragmentLength;
}
/**
* Supports HbbTV specification as indicated
*
* If the service returns an enum value that is not available in the current SDK version, {@link #hbbtvCompliance}
* will return {@link DashIsoHbbtvCompliance#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #hbbtvComplianceAsString}.
*
*
* @return Supports HbbTV specification as indicated
* @see DashIsoHbbtvCompliance
*/
public final DashIsoHbbtvCompliance hbbtvCompliance() {
return DashIsoHbbtvCompliance.fromValue(hbbtvCompliance);
}
/**
* Supports HbbTV specification as indicated
*
* If the service returns an enum value that is not available in the current SDK version, {@link #hbbtvCompliance}
* will return {@link DashIsoHbbtvCompliance#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #hbbtvComplianceAsString}.
*
*
* @return Supports HbbTV specification as indicated
* @see DashIsoHbbtvCompliance
*/
public final String hbbtvComplianceAsString() {
return hbbtvCompliance;
}
/**
* Specify whether MediaConvert generates images for trick play. Keep the default value, None, to not generate any
* images. Choose Thumbnail to generate tiled thumbnails. Choose Thumbnail and full frame to generate tiled
* thumbnails and full-resolution images of single frames. MediaConvert adds an entry in the .mpd manifest for each
* set of images that you generate. A common application for these images is Roku trick mode. The thumbnails and
* full-frame images that MediaConvert creates with this feature are compatible with this Roku specification:
* https://developer.roku.com/docs/developer-program/media-playback/trick-mode/hls-and-dash.md
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #imageBasedTrickPlay} will return {@link DashIsoImageBasedTrickPlay#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #imageBasedTrickPlayAsString}.
*
*
* @return Specify whether MediaConvert generates images for trick play. Keep the default value, None, to not
* generate any images. Choose Thumbnail to generate tiled thumbnails. Choose Thumbnail and full frame to
* generate tiled thumbnails and full-resolution images of single frames. MediaConvert adds an entry in the
* .mpd manifest for each set of images that you generate. A common application for these images is Roku
* trick mode. The thumbnails and full-frame images that MediaConvert creates with this feature are
* compatible with this Roku specification:
* https://developer.roku.com/docs/developer-program/media-playback/trick-mode/hls-and-dash.md
* @see DashIsoImageBasedTrickPlay
*/
public final DashIsoImageBasedTrickPlay imageBasedTrickPlay() {
return DashIsoImageBasedTrickPlay.fromValue(imageBasedTrickPlay);
}
/**
* Specify whether MediaConvert generates images for trick play. Keep the default value, None, to not generate any
* images. Choose Thumbnail to generate tiled thumbnails. Choose Thumbnail and full frame to generate tiled
* thumbnails and full-resolution images of single frames. MediaConvert adds an entry in the .mpd manifest for each
* set of images that you generate. A common application for these images is Roku trick mode. The thumbnails and
* full-frame images that MediaConvert creates with this feature are compatible with this Roku specification:
* https://developer.roku.com/docs/developer-program/media-playback/trick-mode/hls-and-dash.md
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #imageBasedTrickPlay} will return {@link DashIsoImageBasedTrickPlay#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #imageBasedTrickPlayAsString}.
*
*
* @return Specify whether MediaConvert generates images for trick play. Keep the default value, None, to not
* generate any images. Choose Thumbnail to generate tiled thumbnails. Choose Thumbnail and full frame to
* generate tiled thumbnails and full-resolution images of single frames. MediaConvert adds an entry in the
* .mpd manifest for each set of images that you generate. A common application for these images is Roku
* trick mode. The thumbnails and full-frame images that MediaConvert creates with this feature are
* compatible with this Roku specification:
* https://developer.roku.com/docs/developer-program/media-playback/trick-mode/hls-and-dash.md
* @see DashIsoImageBasedTrickPlay
*/
public final String imageBasedTrickPlayAsString() {
return imageBasedTrickPlay;
}
/**
* Tile and thumbnail settings applicable when imageBasedTrickPlay is ADVANCED
*
* @return Tile and thumbnail settings applicable when imageBasedTrickPlay is ADVANCED
*/
public final DashIsoImageBasedTrickPlaySettings imageBasedTrickPlaySettings() {
return imageBasedTrickPlaySettings;
}
/**
* Minimum time of initially buffered media that is needed to ensure smooth playout.
*
* @return Minimum time of initially buffered media that is needed to ensure smooth playout.
*/
public final Integer minBufferTime() {
return minBufferTime;
}
/**
* Keep this setting at the default value of 0, unless you are troubleshooting a problem with how devices play back
* the end of your video asset. If you know that player devices are hanging on the final segment of your video
* because the length of your final segment is too short, use this setting to specify a minimum final segment
* length, in seconds. Choose a value that is greater than or equal to 1 and less than your segment length. When you
* specify a value for this setting, the encoder will combine any final segment that is shorter than the length that
* you specify with the previous segment. For example, your segment length is 3 seconds and your final segment is .5
* seconds without a minimum final segment length; when you set the minimum final segment length to 1, your final
* segment is 3.5 seconds.
*
* @return Keep this setting at the default value of 0, unless you are troubleshooting a problem with how devices
* play back the end of your video asset. If you know that player devices are hanging on the final segment
* of your video because the length of your final segment is too short, use this setting to specify a
* minimum final segment length, in seconds. Choose a value that is greater than or equal to 1 and less than
* your segment length. When you specify a value for this setting, the encoder will combine any final
* segment that is shorter than the length that you specify with the previous segment. For example, your
* segment length is 3 seconds and your final segment is .5 seconds without a minimum final segment length;
* when you set the minimum final segment length to 1, your final segment is 3.5 seconds.
*/
public final Double minFinalSegmentLength() {
return minFinalSegmentLength;
}
/**
* Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We
* recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player
* configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second.
* Average: Use the calculated average bitrate of the encoded video output, in bits per second.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #mpdManifestBandwidthType} will return {@link DashIsoMpdManifestBandwidthType#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #mpdManifestBandwidthTypeAsString}.
*
*
* @return Specify how the value for bandwidth is determined for each video Representation in your output MPD
* manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your
* downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video
* output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in
* bits per second.
* @see DashIsoMpdManifestBandwidthType
*/
public final DashIsoMpdManifestBandwidthType mpdManifestBandwidthType() {
return DashIsoMpdManifestBandwidthType.fromValue(mpdManifestBandwidthType);
}
/**
* Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We
* recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player
* configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second.
* Average: Use the calculated average bitrate of the encoded video output, in bits per second.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #mpdManifestBandwidthType} will return {@link DashIsoMpdManifestBandwidthType#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #mpdManifestBandwidthTypeAsString}.
*
*
* @return Specify how the value for bandwidth is determined for each video Representation in your output MPD
* manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your
* downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video
* output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in
* bits per second.
* @see DashIsoMpdManifestBandwidthType
*/
public final String mpdManifestBandwidthTypeAsString() {
return mpdManifestBandwidthType;
}
/**
* Specify whether your DASH profile is on-demand or main. When you choose Main profile, the service signals
* urn:mpeg:dash:profile:isoff-main:2011 in your .mpd DASH manifest. When you choose On-demand, the service signals
* urn:mpeg:dash:profile:isoff-on-demand:2011 in your .mpd. When you choose On-demand, you must also set the output
* group setting Segment control to Single file.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #mpdProfile} will
* return {@link DashIsoMpdProfile#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #mpdProfileAsString}.
*
*
* @return Specify whether your DASH profile is on-demand or main. When you choose Main profile, the service signals
* urn:mpeg:dash:profile:isoff-main:2011 in your .mpd DASH manifest. When you choose On-demand, the service
* signals urn:mpeg:dash:profile:isoff-on-demand:2011 in your .mpd. When you choose On-demand, you must also
* set the output group setting Segment control to Single file.
* @see DashIsoMpdProfile
*/
public final DashIsoMpdProfile mpdProfile() {
return DashIsoMpdProfile.fromValue(mpdProfile);
}
/**
* Specify whether your DASH profile is on-demand or main. When you choose Main profile, the service signals
* urn:mpeg:dash:profile:isoff-main:2011 in your .mpd DASH manifest. When you choose On-demand, the service signals
* urn:mpeg:dash:profile:isoff-on-demand:2011 in your .mpd. When you choose On-demand, you must also set the output
* group setting Segment control to Single file.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #mpdProfile} will
* return {@link DashIsoMpdProfile#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #mpdProfileAsString}.
*
*
* @return Specify whether your DASH profile is on-demand or main. When you choose Main profile, the service signals
* urn:mpeg:dash:profile:isoff-main:2011 in your .mpd DASH manifest. When you choose On-demand, the service
* signals urn:mpeg:dash:profile:isoff-on-demand:2011 in your .mpd. When you choose On-demand, you must also
* set the output group setting Segment control to Single file.
* @see DashIsoMpdProfile
*/
public final String mpdProfileAsString() {
return mpdProfile;
}
/**
* Use this setting only when your output video stream has B-frames, which causes the initial presentation time
* stamp (PTS) to be offset from the initial decode time stamp (DTS). Specify how MediaConvert handles PTS when
* writing time stamps in output DASH manifests. Choose Match initial PTS when you want MediaConvert to use the
* initial PTS as the first time stamp in the manifest. Choose Zero-based to have MediaConvert ignore the initial
* PTS in the video stream and instead write the initial time stamp as zero in the manifest. For outputs that don't
* have B-frames, the time stamps in your DASH manifests start at zero regardless of your choice here.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #ptsOffsetHandlingForBFrames} will return
* {@link DashIsoPtsOffsetHandlingForBFrames#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #ptsOffsetHandlingForBFramesAsString}.
*
*
* @return Use this setting only when your output video stream has B-frames, which causes the initial presentation
* time stamp (PTS) to be offset from the initial decode time stamp (DTS). Specify how MediaConvert handles
* PTS when writing time stamps in output DASH manifests. Choose Match initial PTS when you want
* MediaConvert to use the initial PTS as the first time stamp in the manifest. Choose Zero-based to have
* MediaConvert ignore the initial PTS in the video stream and instead write the initial time stamp as zero
* in the manifest. For outputs that don't have B-frames, the time stamps in your DASH manifests start at
* zero regardless of your choice here.
* @see DashIsoPtsOffsetHandlingForBFrames
*/
public final DashIsoPtsOffsetHandlingForBFrames ptsOffsetHandlingForBFrames() {
return DashIsoPtsOffsetHandlingForBFrames.fromValue(ptsOffsetHandlingForBFrames);
}
/**
* Use this setting only when your output video stream has B-frames, which causes the initial presentation time
* stamp (PTS) to be offset from the initial decode time stamp (DTS). Specify how MediaConvert handles PTS when
* writing time stamps in output DASH manifests. Choose Match initial PTS when you want MediaConvert to use the
* initial PTS as the first time stamp in the manifest. Choose Zero-based to have MediaConvert ignore the initial
* PTS in the video stream and instead write the initial time stamp as zero in the manifest. For outputs that don't
* have B-frames, the time stamps in your DASH manifests start at zero regardless of your choice here.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #ptsOffsetHandlingForBFrames} will return
* {@link DashIsoPtsOffsetHandlingForBFrames#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #ptsOffsetHandlingForBFramesAsString}.
*
*
* @return Use this setting only when your output video stream has B-frames, which causes the initial presentation
* time stamp (PTS) to be offset from the initial decode time stamp (DTS). Specify how MediaConvert handles
* PTS when writing time stamps in output DASH manifests. Choose Match initial PTS when you want
* MediaConvert to use the initial PTS as the first time stamp in the manifest. Choose Zero-based to have
* MediaConvert ignore the initial PTS in the video stream and instead write the initial time stamp as zero
* in the manifest. For outputs that don't have B-frames, the time stamps in your DASH manifests start at
* zero regardless of your choice here.
* @see DashIsoPtsOffsetHandlingForBFrames
*/
public final String ptsOffsetHandlingForBFramesAsString() {
return ptsOffsetHandlingForBFrames;
}
/**
* When set to SINGLE_FILE, a single output file is generated, which is internally segmented using the Fragment
* Length and Segment Length. When set to SEGMENTED_FILES, separate segment files will be created.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #segmentControl}
* will return {@link DashIsoSegmentControl#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #segmentControlAsString}.
*
*
* @return When set to SINGLE_FILE, a single output file is generated, which is internally segmented using the
* Fragment Length and Segment Length. When set to SEGMENTED_FILES, separate segment files will be created.
* @see DashIsoSegmentControl
*/
public final DashIsoSegmentControl segmentControl() {
return DashIsoSegmentControl.fromValue(segmentControl);
}
/**
* When set to SINGLE_FILE, a single output file is generated, which is internally segmented using the Fragment
* Length and Segment Length. When set to SEGMENTED_FILES, separate segment files will be created.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #segmentControl}
* will return {@link DashIsoSegmentControl#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #segmentControlAsString}.
*
*
* @return When set to SINGLE_FILE, a single output file is generated, which is internally segmented using the
* Fragment Length and Segment Length. When set to SEGMENTED_FILES, separate segment files will be created.
* @see DashIsoSegmentControl
*/
public final String segmentControlAsString() {
return segmentControl;
}
/**
* Specify the length, in whole seconds, of each segment. When you don't specify a value, MediaConvert defaults to
* 30. Related settings: Use Segment length control to specify whether the encoder enforces this value strictly. Use
* Segment control to specify whether MediaConvert creates separate segment files or one content file that has
* metadata to mark the segment boundaries.
*
* @return Specify the length, in whole seconds, of each segment. When you don't specify a value, MediaConvert
* defaults to 30. Related settings: Use Segment length control to specify whether the encoder enforces this
* value strictly. Use Segment control to specify whether MediaConvert creates separate segment files or one
* content file that has metadata to mark the segment boundaries.
*/
public final Integer segmentLength() {
return segmentLength;
}
/**
* Specify how you want MediaConvert to determine the segment length. Choose Exact to have the encoder use the exact
* length that you specify with the setting Segment length. This might result in extra I-frames. Choose Multiple of
* GOP to have the encoder round up the segment lengths to match the next GOP boundary.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #segmentLengthControl} will return {@link DashIsoSegmentLengthControl#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #segmentLengthControlAsString}.
*
*
* @return Specify how you want MediaConvert to determine the segment length. Choose Exact to have the encoder use
* the exact length that you specify with the setting Segment length. This might result in extra I-frames.
* Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.
* @see DashIsoSegmentLengthControl
*/
public final DashIsoSegmentLengthControl segmentLengthControl() {
return DashIsoSegmentLengthControl.fromValue(segmentLengthControl);
}
/**
* Specify how you want MediaConvert to determine the segment length. Choose Exact to have the encoder use the exact
* length that you specify with the setting Segment length. This might result in extra I-frames. Choose Multiple of
* GOP to have the encoder round up the segment lengths to match the next GOP boundary.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #segmentLengthControl} will return {@link DashIsoSegmentLengthControl#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #segmentLengthControlAsString}.
*
*
* @return Specify how you want MediaConvert to determine the segment length. Choose Exact to have the encoder use
* the exact length that you specify with the setting Segment length. This might result in extra I-frames.
* Choose Multiple of GOP to have the encoder round up the segment lengths to match the next GOP boundary.
* @see DashIsoSegmentLengthControl
*/
public final String segmentLengthControlAsString() {
return segmentLengthControl;
}
/**
* Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player
* compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be
* greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4
* video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to
* zero, and sample composition time offsets will increment using signed integers.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #videoCompositionOffsets} will return {@link DashIsoVideoCompositionOffsets#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #videoCompositionOffsetsAsString}.
*
*
* @return Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player
* compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time
* may be greater than zero, and sample composition time offsets will increment using unsigned integers. For
* strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation
* time will be equal to zero, and sample composition time offsets will increment using signed integers.
* @see DashIsoVideoCompositionOffsets
*/
public final DashIsoVideoCompositionOffsets videoCompositionOffsets() {
return DashIsoVideoCompositionOffsets.fromValue(videoCompositionOffsets);
}
/**
* Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player
* compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be
* greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4
* video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to
* zero, and sample composition time offsets will increment using signed integers.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #videoCompositionOffsets} will return {@link DashIsoVideoCompositionOffsets#UNKNOWN_TO_SDK_VERSION}. The
* raw value returned by the service is available from {@link #videoCompositionOffsetsAsString}.
*
*
* @return Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player
* compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time
* may be greater than zero, and sample composition time offsets will increment using unsigned integers. For
* strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation
* time will be equal to zero, and sample composition time offsets will increment using signed integers.
* @see DashIsoVideoCompositionOffsets
*/
public final String videoCompositionOffsetsAsString() {
return videoCompositionOffsets;
}
/**
* If you get an HTTP error in the 400 range when you play back your DASH output, enable this setting and run your
* transcoding job again. When you enable this setting, the service writes precise segment durations in the DASH
* manifest. The segment duration information appears inside the SegmentTimeline element, inside SegmentTemplate at
* the Representation level. When you don't enable this setting, the service writes approximate segment durations in
* your DASH manifest.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #writeSegmentTimelineInRepresentation} will return
* {@link DashIsoWriteSegmentTimelineInRepresentation#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service
* is available from {@link #writeSegmentTimelineInRepresentationAsString}.
*
*
* @return If you get an HTTP error in the 400 range when you play back your DASH output, enable this setting and
* run your transcoding job again. When you enable this setting, the service writes precise segment
* durations in the DASH manifest. The segment duration information appears inside the SegmentTimeline
* element, inside SegmentTemplate at the Representation level. When you don't enable this setting, the
* service writes approximate segment durations in your DASH manifest.
* @see DashIsoWriteSegmentTimelineInRepresentation
*/
public final DashIsoWriteSegmentTimelineInRepresentation writeSegmentTimelineInRepresentation() {
return DashIsoWriteSegmentTimelineInRepresentation.fromValue(writeSegmentTimelineInRepresentation);
}
/**
* If you get an HTTP error in the 400 range when you play back your DASH output, enable this setting and run your
* transcoding job again. When you enable this setting, the service writes precise segment durations in the DASH
* manifest. The segment duration information appears inside the SegmentTimeline element, inside SegmentTemplate at
* the Representation level. When you don't enable this setting, the service writes approximate segment durations in
* your DASH manifest.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #writeSegmentTimelineInRepresentation} will return
* {@link DashIsoWriteSegmentTimelineInRepresentation#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service
* is available from {@link #writeSegmentTimelineInRepresentationAsString}.
*
*
* @return If you get an HTTP error in the 400 range when you play back your DASH output, enable this setting and
* run your transcoding job again. When you enable this setting, the service writes precise segment
* durations in the DASH manifest. The segment duration information appears inside the SegmentTimeline
* element, inside SegmentTemplate at the Representation level. When you don't enable this setting, the
* service writes approximate segment durations in your DASH manifest.
* @see DashIsoWriteSegmentTimelineInRepresentation
*/
public final String writeSegmentTimelineInRepresentationAsString() {
return writeSegmentTimelineInRepresentation;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(hasAdditionalManifests() ? additionalManifests() : null);
hashCode = 31 * hashCode + Objects.hashCode(audioChannelConfigSchemeIdUriAsString());
hashCode = 31 * hashCode + Objects.hashCode(baseUrl());
hashCode = 31 * hashCode + Objects.hashCode(dashIFrameTrickPlayNameModifier());
hashCode = 31 * hashCode + Objects.hashCode(dashManifestStyleAsString());
hashCode = 31 * hashCode + Objects.hashCode(destination());
hashCode = 31 * hashCode + Objects.hashCode(destinationSettings());
hashCode = 31 * hashCode + Objects.hashCode(encryption());
hashCode = 31 * hashCode + Objects.hashCode(fragmentLength());
hashCode = 31 * hashCode + Objects.hashCode(hbbtvComplianceAsString());
hashCode = 31 * hashCode + Objects.hashCode(imageBasedTrickPlayAsString());
hashCode = 31 * hashCode + Objects.hashCode(imageBasedTrickPlaySettings());
hashCode = 31 * hashCode + Objects.hashCode(minBufferTime());
hashCode = 31 * hashCode + Objects.hashCode(minFinalSegmentLength());
hashCode = 31 * hashCode + Objects.hashCode(mpdManifestBandwidthTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(mpdProfileAsString());
hashCode = 31 * hashCode + Objects.hashCode(ptsOffsetHandlingForBFramesAsString());
hashCode = 31 * hashCode + Objects.hashCode(segmentControlAsString());
hashCode = 31 * hashCode + Objects.hashCode(segmentLength());
hashCode = 31 * hashCode + Objects.hashCode(segmentLengthControlAsString());
hashCode = 31 * hashCode + Objects.hashCode(videoCompositionOffsetsAsString());
hashCode = 31 * hashCode + Objects.hashCode(writeSegmentTimelineInRepresentationAsString());
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 DashIsoGroupSettings)) {
return false;
}
DashIsoGroupSettings other = (DashIsoGroupSettings) obj;
return hasAdditionalManifests() == other.hasAdditionalManifests()
&& Objects.equals(additionalManifests(), other.additionalManifests())
&& Objects.equals(audioChannelConfigSchemeIdUriAsString(), other.audioChannelConfigSchemeIdUriAsString())
&& Objects.equals(baseUrl(), other.baseUrl())
&& Objects.equals(dashIFrameTrickPlayNameModifier(), other.dashIFrameTrickPlayNameModifier())
&& Objects.equals(dashManifestStyleAsString(), other.dashManifestStyleAsString())
&& Objects.equals(destination(), other.destination())
&& Objects.equals(destinationSettings(), other.destinationSettings())
&& Objects.equals(encryption(), other.encryption())
&& Objects.equals(fragmentLength(), other.fragmentLength())
&& Objects.equals(hbbtvComplianceAsString(), other.hbbtvComplianceAsString())
&& Objects.equals(imageBasedTrickPlayAsString(), other.imageBasedTrickPlayAsString())
&& Objects.equals(imageBasedTrickPlaySettings(), other.imageBasedTrickPlaySettings())
&& Objects.equals(minBufferTime(), other.minBufferTime())
&& Objects.equals(minFinalSegmentLength(), other.minFinalSegmentLength())
&& Objects.equals(mpdManifestBandwidthTypeAsString(), other.mpdManifestBandwidthTypeAsString())
&& Objects.equals(mpdProfileAsString(), other.mpdProfileAsString())
&& Objects.equals(ptsOffsetHandlingForBFramesAsString(), other.ptsOffsetHandlingForBFramesAsString())
&& Objects.equals(segmentControlAsString(), other.segmentControlAsString())
&& Objects.equals(segmentLength(), other.segmentLength())
&& Objects.equals(segmentLengthControlAsString(), other.segmentLengthControlAsString())
&& Objects.equals(videoCompositionOffsetsAsString(), other.videoCompositionOffsetsAsString())
&& Objects.equals(writeSegmentTimelineInRepresentationAsString(),
other.writeSegmentTimelineInRepresentationAsString());
}
/**
* 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("DashIsoGroupSettings")
.add("AdditionalManifests", hasAdditionalManifests() ? additionalManifests() : null)
.add("AudioChannelConfigSchemeIdUri", audioChannelConfigSchemeIdUriAsString()).add("BaseUrl", baseUrl())
.add("DashIFrameTrickPlayNameModifier", dashIFrameTrickPlayNameModifier())
.add("DashManifestStyle", dashManifestStyleAsString()).add("Destination", destination())
.add("DestinationSettings", destinationSettings()).add("Encryption", encryption())
.add("FragmentLength", fragmentLength()).add("HbbtvCompliance", hbbtvComplianceAsString())
.add("ImageBasedTrickPlay", imageBasedTrickPlayAsString())
.add("ImageBasedTrickPlaySettings", imageBasedTrickPlaySettings()).add("MinBufferTime", minBufferTime())
.add("MinFinalSegmentLength", minFinalSegmentLength())
.add("MpdManifestBandwidthType", mpdManifestBandwidthTypeAsString()).add("MpdProfile", mpdProfileAsString())
.add("PtsOffsetHandlingForBFrames", ptsOffsetHandlingForBFramesAsString())
.add("SegmentControl", segmentControlAsString()).add("SegmentLength", segmentLength())
.add("SegmentLengthControl", segmentLengthControlAsString())
.add("VideoCompositionOffsets", videoCompositionOffsetsAsString())
.add("WriteSegmentTimelineInRepresentation", writeSegmentTimelineInRepresentationAsString()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "AdditionalManifests":
return Optional.ofNullable(clazz.cast(additionalManifests()));
case "AudioChannelConfigSchemeIdUri":
return Optional.ofNullable(clazz.cast(audioChannelConfigSchemeIdUriAsString()));
case "BaseUrl":
return Optional.ofNullable(clazz.cast(baseUrl()));
case "DashIFrameTrickPlayNameModifier":
return Optional.ofNullable(clazz.cast(dashIFrameTrickPlayNameModifier()));
case "DashManifestStyle":
return Optional.ofNullable(clazz.cast(dashManifestStyleAsString()));
case "Destination":
return Optional.ofNullable(clazz.cast(destination()));
case "DestinationSettings":
return Optional.ofNullable(clazz.cast(destinationSettings()));
case "Encryption":
return Optional.ofNullable(clazz.cast(encryption()));
case "FragmentLength":
return Optional.ofNullable(clazz.cast(fragmentLength()));
case "HbbtvCompliance":
return Optional.ofNullable(clazz.cast(hbbtvComplianceAsString()));
case "ImageBasedTrickPlay":
return Optional.ofNullable(clazz.cast(imageBasedTrickPlayAsString()));
case "ImageBasedTrickPlaySettings":
return Optional.ofNullable(clazz.cast(imageBasedTrickPlaySettings()));
case "MinBufferTime":
return Optional.ofNullable(clazz.cast(minBufferTime()));
case "MinFinalSegmentLength":
return Optional.ofNullable(clazz.cast(minFinalSegmentLength()));
case "MpdManifestBandwidthType":
return Optional.ofNullable(clazz.cast(mpdManifestBandwidthTypeAsString()));
case "MpdProfile":
return Optional.ofNullable(clazz.cast(mpdProfileAsString()));
case "PtsOffsetHandlingForBFrames":
return Optional.ofNullable(clazz.cast(ptsOffsetHandlingForBFramesAsString()));
case "SegmentControl":
return Optional.ofNullable(clazz.cast(segmentControlAsString()));
case "SegmentLength":
return Optional.ofNullable(clazz.cast(segmentLength()));
case "SegmentLengthControl":
return Optional.ofNullable(clazz.cast(segmentLengthControlAsString()));
case "VideoCompositionOffsets":
return Optional.ofNullable(clazz.cast(videoCompositionOffsetsAsString()));
case "WriteSegmentTimelineInRepresentation":
return Optional.ofNullable(clazz.cast(writeSegmentTimelineInRepresentationAsString()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function