software.amazon.awssdk.services.mediaconvert.model.HlsGroupSettings Maven / Gradle / Ivy
Show all versions of mediaconvert Show documentation
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package software.amazon.awssdk.services.mediaconvert.model;
import java.io.Serializable;
import java.util.Arrays;
import java.util.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 HLS 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 HlsGroupSettings implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField> AD_MARKERS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("AdMarkers")
.getter(getter(HlsGroupSettings::adMarkersAsStrings))
.setter(setter(Builder::adMarkersWithStrings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("adMarkers").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField> ADDITIONAL_MANIFESTS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("AdditionalManifests")
.getter(getter(HlsGroupSettings::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(HlsAdditionalManifest::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField AUDIO_ONLY_HEADER_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("AudioOnlyHeader").getter(getter(HlsGroupSettings::audioOnlyHeaderAsString))
.setter(setter(Builder::audioOnlyHeader))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("audioOnlyHeader").build()).build();
private static final SdkField BASE_URL_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("BaseUrl").getter(getter(HlsGroupSettings::baseUrl)).setter(setter(Builder::baseUrl))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("baseUrl").build()).build();
private static final SdkField> CAPTION_LANGUAGE_MAPPINGS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("CaptionLanguageMappings")
.getter(getter(HlsGroupSettings::captionLanguageMappings))
.setter(setter(Builder::captionLanguageMappings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("captionLanguageMappings").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(HlsCaptionLanguageMapping::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField CAPTION_LANGUAGE_SETTING_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("CaptionLanguageSetting").getter(getter(HlsGroupSettings::captionLanguageSettingAsString))
.setter(setter(Builder::captionLanguageSetting))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("captionLanguageSetting").build())
.build();
private static final SdkField CAPTION_SEGMENT_LENGTH_CONTROL_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("CaptionSegmentLengthControl")
.getter(getter(HlsGroupSettings::captionSegmentLengthControlAsString))
.setter(setter(Builder::captionSegmentLengthControl))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("captionSegmentLengthControl")
.build()).build();
private static final SdkField CLIENT_CACHE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClientCache").getter(getter(HlsGroupSettings::clientCacheAsString)).setter(setter(Builder::clientCache))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("clientCache").build()).build();
private static final SdkField CODEC_SPECIFICATION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("CodecSpecification").getter(getter(HlsGroupSettings::codecSpecificationAsString))
.setter(setter(Builder::codecSpecification))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("codecSpecification").build())
.build();
private static final SdkField DESTINATION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Destination").getter(getter(HlsGroupSettings::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(HlsGroupSettings::destinationSettings)).setter(setter(Builder::destinationSettings))
.constructor(DestinationSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("destinationSettings").build())
.build();
private static final SdkField DIRECTORY_STRUCTURE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("DirectoryStructure").getter(getter(HlsGroupSettings::directoryStructureAsString))
.setter(setter(Builder::directoryStructure))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("directoryStructure").build())
.build();
private static final SdkField ENCRYPTION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("Encryption")
.getter(getter(HlsGroupSettings::encryption)).setter(setter(Builder::encryption))
.constructor(HlsEncryptionSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("encryption").build()).build();
private static final SdkField IMAGE_BASED_TRICK_PLAY_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ImageBasedTrickPlay").getter(getter(HlsGroupSettings::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(HlsGroupSettings::imageBasedTrickPlaySettings))
.setter(setter(Builder::imageBasedTrickPlaySettings))
.constructor(HlsImageBasedTrickPlaySettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("imageBasedTrickPlaySettings")
.build()).build();
private static final SdkField MANIFEST_COMPRESSION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ManifestCompression").getter(getter(HlsGroupSettings::manifestCompressionAsString))
.setter(setter(Builder::manifestCompression))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("manifestCompression").build())
.build();
private static final SdkField MANIFEST_DURATION_FORMAT_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ManifestDurationFormat").getter(getter(HlsGroupSettings::manifestDurationFormatAsString))
.setter(setter(Builder::manifestDurationFormat))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("manifestDurationFormat").build())
.build();
private static final SdkField MIN_FINAL_SEGMENT_LENGTH_FIELD = SdkField. builder(MarshallingType.DOUBLE)
.memberName("MinFinalSegmentLength").getter(getter(HlsGroupSettings::minFinalSegmentLength))
.setter(setter(Builder::minFinalSegmentLength))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("minFinalSegmentLength").build())
.build();
private static final SdkField MIN_SEGMENT_LENGTH_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("MinSegmentLength").getter(getter(HlsGroupSettings::minSegmentLength))
.setter(setter(Builder::minSegmentLength))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("minSegmentLength").build()).build();
private static final SdkField OUTPUT_SELECTION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("OutputSelection").getter(getter(HlsGroupSettings::outputSelectionAsString))
.setter(setter(Builder::outputSelection))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("outputSelection").build()).build();
private static final SdkField PROGRAM_DATE_TIME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ProgramDateTime").getter(getter(HlsGroupSettings::programDateTimeAsString))
.setter(setter(Builder::programDateTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("programDateTime").build()).build();
private static final SdkField PROGRAM_DATE_TIME_PERIOD_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("ProgramDateTimePeriod").getter(getter(HlsGroupSettings::programDateTimePeriod))
.setter(setter(Builder::programDateTimePeriod))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("programDateTimePeriod").build())
.build();
private static final SdkField PROGRESSIVE_WRITE_HLS_MANIFEST_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("ProgressiveWriteHlsManifest")
.getter(getter(HlsGroupSettings::progressiveWriteHlsManifestAsString))
.setter(setter(Builder::progressiveWriteHlsManifest))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("progressiveWriteHlsManifest")
.build()).build();
private static final SdkField SEGMENT_CONTROL_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SegmentControl").getter(getter(HlsGroupSettings::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(HlsGroupSettings::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(HlsGroupSettings::segmentLengthControlAsString))
.setter(setter(Builder::segmentLengthControl))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("segmentLengthControl").build())
.build();
private static final SdkField SEGMENTS_PER_SUBDIRECTORY_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("SegmentsPerSubdirectory").getter(getter(HlsGroupSettings::segmentsPerSubdirectory))
.setter(setter(Builder::segmentsPerSubdirectory))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("segmentsPerSubdirectory").build())
.build();
private static final SdkField STREAM_INF_RESOLUTION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("StreamInfResolution").getter(getter(HlsGroupSettings::streamInfResolutionAsString))
.setter(setter(Builder::streamInfResolution))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("streamInfResolution").build())
.build();
private static final SdkField TARGET_DURATION_COMPATIBILITY_MODE_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("TargetDurationCompatibilityMode")
.getter(getter(HlsGroupSettings::targetDurationCompatibilityModeAsString))
.setter(setter(Builder::targetDurationCompatibilityMode))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("targetDurationCompatibilityMode")
.build()).build();
private static final SdkField TIMED_METADATA_ID3_FRAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("TimedMetadataId3Frame").getter(getter(HlsGroupSettings::timedMetadataId3FrameAsString))
.setter(setter(Builder::timedMetadataId3Frame))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timedMetadataId3Frame").build())
.build();
private static final SdkField TIMED_METADATA_ID3_PERIOD_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("TimedMetadataId3Period").getter(getter(HlsGroupSettings::timedMetadataId3Period))
.setter(setter(Builder::timedMetadataId3Period))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timedMetadataId3Period").build())
.build();
private static final SdkField TIMESTAMP_DELTA_MILLISECONDS_FIELD = SdkField
. builder(MarshallingType.INTEGER)
.memberName("TimestampDeltaMilliseconds")
.getter(getter(HlsGroupSettings::timestampDeltaMilliseconds))
.setter(setter(Builder::timestampDeltaMilliseconds))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timestampDeltaMilliseconds").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(AD_MARKERS_FIELD,
ADDITIONAL_MANIFESTS_FIELD, AUDIO_ONLY_HEADER_FIELD, BASE_URL_FIELD, CAPTION_LANGUAGE_MAPPINGS_FIELD,
CAPTION_LANGUAGE_SETTING_FIELD, CAPTION_SEGMENT_LENGTH_CONTROL_FIELD, CLIENT_CACHE_FIELD, CODEC_SPECIFICATION_FIELD,
DESTINATION_FIELD, DESTINATION_SETTINGS_FIELD, DIRECTORY_STRUCTURE_FIELD, ENCRYPTION_FIELD,
IMAGE_BASED_TRICK_PLAY_FIELD, IMAGE_BASED_TRICK_PLAY_SETTINGS_FIELD, MANIFEST_COMPRESSION_FIELD,
MANIFEST_DURATION_FORMAT_FIELD, MIN_FINAL_SEGMENT_LENGTH_FIELD, MIN_SEGMENT_LENGTH_FIELD, OUTPUT_SELECTION_FIELD,
PROGRAM_DATE_TIME_FIELD, PROGRAM_DATE_TIME_PERIOD_FIELD, PROGRESSIVE_WRITE_HLS_MANIFEST_FIELD, SEGMENT_CONTROL_FIELD,
SEGMENT_LENGTH_FIELD, SEGMENT_LENGTH_CONTROL_FIELD, SEGMENTS_PER_SUBDIRECTORY_FIELD, STREAM_INF_RESOLUTION_FIELD,
TARGET_DURATION_COMPATIBILITY_MODE_FIELD, TIMED_METADATA_ID3_FRAME_FIELD, TIMED_METADATA_ID3_PERIOD_FIELD,
TIMESTAMP_DELTA_MILLISECONDS_FIELD));
private static final long serialVersionUID = 1L;
private final List adMarkers;
private final List additionalManifests;
private final String audioOnlyHeader;
private final String baseUrl;
private final List captionLanguageMappings;
private final String captionLanguageSetting;
private final String captionSegmentLengthControl;
private final String clientCache;
private final String codecSpecification;
private final String destination;
private final DestinationSettings destinationSettings;
private final String directoryStructure;
private final HlsEncryptionSettings encryption;
private final String imageBasedTrickPlay;
private final HlsImageBasedTrickPlaySettings imageBasedTrickPlaySettings;
private final String manifestCompression;
private final String manifestDurationFormat;
private final Double minFinalSegmentLength;
private final Integer minSegmentLength;
private final String outputSelection;
private final String programDateTime;
private final Integer programDateTimePeriod;
private final String progressiveWriteHlsManifest;
private final String segmentControl;
private final Integer segmentLength;
private final String segmentLengthControl;
private final Integer segmentsPerSubdirectory;
private final String streamInfResolution;
private final String targetDurationCompatibilityMode;
private final String timedMetadataId3Frame;
private final Integer timedMetadataId3Period;
private final Integer timestampDeltaMilliseconds;
private HlsGroupSettings(BuilderImpl builder) {
this.adMarkers = builder.adMarkers;
this.additionalManifests = builder.additionalManifests;
this.audioOnlyHeader = builder.audioOnlyHeader;
this.baseUrl = builder.baseUrl;
this.captionLanguageMappings = builder.captionLanguageMappings;
this.captionLanguageSetting = builder.captionLanguageSetting;
this.captionSegmentLengthControl = builder.captionSegmentLengthControl;
this.clientCache = builder.clientCache;
this.codecSpecification = builder.codecSpecification;
this.destination = builder.destination;
this.destinationSettings = builder.destinationSettings;
this.directoryStructure = builder.directoryStructure;
this.encryption = builder.encryption;
this.imageBasedTrickPlay = builder.imageBasedTrickPlay;
this.imageBasedTrickPlaySettings = builder.imageBasedTrickPlaySettings;
this.manifestCompression = builder.manifestCompression;
this.manifestDurationFormat = builder.manifestDurationFormat;
this.minFinalSegmentLength = builder.minFinalSegmentLength;
this.minSegmentLength = builder.minSegmentLength;
this.outputSelection = builder.outputSelection;
this.programDateTime = builder.programDateTime;
this.programDateTimePeriod = builder.programDateTimePeriod;
this.progressiveWriteHlsManifest = builder.progressiveWriteHlsManifest;
this.segmentControl = builder.segmentControl;
this.segmentLength = builder.segmentLength;
this.segmentLengthControl = builder.segmentLengthControl;
this.segmentsPerSubdirectory = builder.segmentsPerSubdirectory;
this.streamInfResolution = builder.streamInfResolution;
this.targetDurationCompatibilityMode = builder.targetDurationCompatibilityMode;
this.timedMetadataId3Frame = builder.timedMetadataId3Frame;
this.timedMetadataId3Period = builder.timedMetadataId3Period;
this.timestampDeltaMilliseconds = builder.timestampDeltaMilliseconds;
}
/**
* Choose one or more ad marker types to decorate your Apple HLS manifest. This setting does not determine whether
* SCTE-35 markers appear in the outputs themselves.
*
* 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 #hasAdMarkers} method.
*
*
* @return Choose one or more ad marker types to decorate your Apple HLS manifest. This setting does not determine
* whether SCTE-35 markers appear in the outputs themselves.
*/
public final List adMarkers() {
return ___listOfHlsAdMarkersCopier.copyStringToEnum(adMarkers);
}
/**
* For responses, this returns true if the service returned a value for the AdMarkers 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 hasAdMarkers() {
return adMarkers != null && !(adMarkers instanceof SdkAutoConstructList);
}
/**
* Choose one or more ad marker types to decorate your Apple HLS manifest. This setting does not determine whether
* SCTE-35 markers appear in the outputs themselves.
*
* 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 #hasAdMarkers} method.
*
*
* @return Choose one or more ad marker types to decorate your Apple HLS manifest. This setting does not determine
* whether SCTE-35 markers appear in the outputs themselves.
*/
public final List adMarkersAsStrings() {
return adMarkers;
}
/**
* 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 top-level .m3u8 HLS manifest for each HLS output group in your job. This
* default manifest references every output in the output group. To create additional top-level 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 top-level .m3u8 HLS manifest for each HLS output group in your job.
* This default manifest references every output in the output group. To create additional top-level
* manifests that reference a subset of the outputs in the output group, specify a list of them here.
*/
public final List additionalManifests() {
return additionalManifests;
}
/**
* Ignore this setting unless you are using FairPlay DRM with Verimatrix and you encounter playback issues. Keep the
* default value, Include, to output audio-only headers. Choose Exclude to remove the audio-only headers from your
* audio segments.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #audioOnlyHeader}
* will return {@link HlsAudioOnlyHeader#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #audioOnlyHeaderAsString}.
*
*
* @return Ignore this setting unless you are using FairPlay DRM with Verimatrix and you encounter playback issues.
* Keep the default value, Include, to output audio-only headers. Choose Exclude to remove the audio-only
* headers from your audio segments.
* @see HlsAudioOnlyHeader
*/
public final HlsAudioOnlyHeader audioOnlyHeader() {
return HlsAudioOnlyHeader.fromValue(audioOnlyHeader);
}
/**
* Ignore this setting unless you are using FairPlay DRM with Verimatrix and you encounter playback issues. Keep the
* default value, Include, to output audio-only headers. Choose Exclude to remove the audio-only headers from your
* audio segments.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #audioOnlyHeader}
* will return {@link HlsAudioOnlyHeader#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #audioOnlyHeaderAsString}.
*
*
* @return Ignore this setting unless you are using FairPlay DRM with Verimatrix and you encounter playback issues.
* Keep the default value, Include, to output audio-only headers. Choose Exclude to remove the audio-only
* headers from your audio segments.
* @see HlsAudioOnlyHeader
*/
public final String audioOnlyHeaderAsString() {
return audioOnlyHeader;
}
/**
* A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base manifest
* is delivered from a different URL than the main .m3u8 file.
*
* @return A partial URI prefix that will be prepended to each output in the media .m3u8 file. Can be used if base
* manifest is delivered from a different URL than the main .m3u8 file.
*/
public final String baseUrl() {
return baseUrl;
}
/**
* For responses, this returns true if the service returned a value for the CaptionLanguageMappings 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 hasCaptionLanguageMappings() {
return captionLanguageMappings != null && !(captionLanguageMappings instanceof SdkAutoConstructList);
}
/**
* Language to be used on Caption outputs
*
* 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 #hasCaptionLanguageMappings} method.
*
*
* @return Language to be used on Caption outputs
*/
public final List captionLanguageMappings() {
return captionLanguageMappings;
}
/**
* Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at
* least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
* specify. Make sure to specify the languages in the order in which they appear in the original source (if the
* source is embedded format) or the order of the caption selectors (if the source is other than embedded).
* Otherwise, languages in the manifest will not match up properly with the output captions. None: Include
* CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line from the manifest.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #captionLanguageSetting} will return {@link HlsCaptionLanguageSetting#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #captionLanguageSettingAsString}.
*
*
* @return Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest.
* Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
* Language Code you specify. Make sure to specify the languages in the order in which they appear in the
* original source (if the source is embedded format) or the order of the caption selectors (if the source
* is other than embedded). Otherwise, languages in the manifest will not match up properly with the output
* captions. None: Include CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line
* from the manifest.
* @see HlsCaptionLanguageSetting
*/
public final HlsCaptionLanguageSetting captionLanguageSetting() {
return HlsCaptionLanguageSetting.fromValue(captionLanguageSetting);
}
/**
* Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at
* least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
* specify. Make sure to specify the languages in the order in which they appear in the original source (if the
* source is embedded format) or the order of the caption selectors (if the source is other than embedded).
* Otherwise, languages in the manifest will not match up properly with the output captions. None: Include
* CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line from the manifest.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #captionLanguageSetting} will return {@link HlsCaptionLanguageSetting#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #captionLanguageSettingAsString}.
*
*
* @return Applies only to 608 Embedded output captions. Insert: Include CLOSED-CAPTIONS lines in the manifest.
* Specify at least one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
* Language Code you specify. Make sure to specify the languages in the order in which they appear in the
* original source (if the source is embedded format) or the order of the caption selectors (if the source
* is other than embedded). Otherwise, languages in the manifest will not match up properly with the output
* captions. None: Include CLOSED-CAPTIONS=NONE line in the manifest. Omit: Omit any CLOSED-CAPTIONS line
* from the manifest.
* @see HlsCaptionLanguageSetting
*/
public final String captionLanguageSettingAsString() {
return captionLanguageSetting;
}
/**
* Set Caption segment length control to Match video to create caption segments that align with the video segments
* from the first video output in this output group. For example, if the video segments are 2 seconds long, your
* WebVTT segments will also be 2 seconds long. Keep the default setting, Large segments to create caption segments
* that are 300 seconds long.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #captionSegmentLengthControl} will return {@link HlsCaptionSegmentLengthControl#UNKNOWN_TO_SDK_VERSION}.
* The raw value returned by the service is available from {@link #captionSegmentLengthControlAsString}.
*
*
* @return Set Caption segment length control to Match video to create caption segments that align with the video
* segments from the first video output in this output group. For example, if the video segments are 2
* seconds long, your WebVTT segments will also be 2 seconds long. Keep the default setting, Large segments
* to create caption segments that are 300 seconds long.
* @see HlsCaptionSegmentLengthControl
*/
public final HlsCaptionSegmentLengthControl captionSegmentLengthControl() {
return HlsCaptionSegmentLengthControl.fromValue(captionSegmentLengthControl);
}
/**
* Set Caption segment length control to Match video to create caption segments that align with the video segments
* from the first video output in this output group. For example, if the video segments are 2 seconds long, your
* WebVTT segments will also be 2 seconds long. Keep the default setting, Large segments to create caption segments
* that are 300 seconds long.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #captionSegmentLengthControl} will return {@link HlsCaptionSegmentLengthControl#UNKNOWN_TO_SDK_VERSION}.
* The raw value returned by the service is available from {@link #captionSegmentLengthControlAsString}.
*
*
* @return Set Caption segment length control to Match video to create caption segments that align with the video
* segments from the first video output in this output group. For example, if the video segments are 2
* seconds long, your WebVTT segments will also be 2 seconds long. Keep the default setting, Large segments
* to create caption segments that are 300 seconds long.
* @see HlsCaptionSegmentLengthControl
*/
public final String captionSegmentLengthControlAsString() {
return captionSegmentLengthControl;
}
/**
* Disable this setting only when your workflow requires the #EXT-X-ALLOW-CACHE:no tag. Otherwise, keep the default
* value Enabled and control caching in your video distribution set up. For example, use the Cache-Control http
* header.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #clientCache} will
* return {@link HlsClientCache#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #clientCacheAsString}.
*
*
* @return Disable this setting only when your workflow requires the #EXT-X-ALLOW-CACHE:no tag. Otherwise, keep the
* default value Enabled and control caching in your video distribution set up. For example, use the
* Cache-Control http header.
* @see HlsClientCache
*/
public final HlsClientCache clientCache() {
return HlsClientCache.fromValue(clientCache);
}
/**
* Disable this setting only when your workflow requires the #EXT-X-ALLOW-CACHE:no tag. Otherwise, keep the default
* value Enabled and control caching in your video distribution set up. For example, use the Cache-Control http
* header.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #clientCache} will
* return {@link HlsClientCache#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #clientCacheAsString}.
*
*
* @return Disable this setting only when your workflow requires the #EXT-X-ALLOW-CACHE:no tag. Otherwise, keep the
* default value Enabled and control caching in your video distribution set up. For example, use the
* Cache-Control http header.
* @see HlsClientCache
*/
public final String clientCacheAsString() {
return clientCache;
}
/**
* Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #codecSpecification} will return {@link HlsCodecSpecification#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #codecSpecificationAsString}.
*
*
* @return Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.
* @see HlsCodecSpecification
*/
public final HlsCodecSpecification codecSpecification() {
return HlsCodecSpecification.fromValue(codecSpecification);
}
/**
* Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #codecSpecification} will return {@link HlsCodecSpecification#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #codecSpecificationAsString}.
*
*
* @return Specification to use (RFC-6381 or the default RFC-4281) during m3u8 playlist generation.
* @see HlsCodecSpecification
*/
public final String codecSpecificationAsString() {
return codecSpecification;
}
/**
* 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;
}
/**
* Indicates whether segments should be placed in subdirectories.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #directoryStructure} will return {@link HlsDirectoryStructure#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #directoryStructureAsString}.
*
*
* @return Indicates whether segments should be placed in subdirectories.
* @see HlsDirectoryStructure
*/
public final HlsDirectoryStructure directoryStructure() {
return HlsDirectoryStructure.fromValue(directoryStructure);
}
/**
* Indicates whether segments should be placed in subdirectories.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #directoryStructure} will return {@link HlsDirectoryStructure#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #directoryStructureAsString}.
*
*
* @return Indicates whether segments should be placed in subdirectories.
* @see HlsDirectoryStructure
*/
public final String directoryStructureAsString() {
return directoryStructure;
}
/**
* DRM settings.
*
* @return DRM settings.
*/
public final HlsEncryptionSettings encryption() {
return encryption;
}
/**
* 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 creates a child manifest for each set of
* images that you generate and adds corresponding entries to the parent manifest. 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 HlsImageBasedTrickPlay#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 creates a child
* manifest for each set of images that you generate and adds corresponding entries to the parent manifest.
* 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 HlsImageBasedTrickPlay
*/
public final HlsImageBasedTrickPlay imageBasedTrickPlay() {
return HlsImageBasedTrickPlay.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 creates a child manifest for each set of
* images that you generate and adds corresponding entries to the parent manifest. 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 HlsImageBasedTrickPlay#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 creates a child
* manifest for each set of images that you generate and adds corresponding entries to the parent manifest.
* 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 HlsImageBasedTrickPlay
*/
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 HlsImageBasedTrickPlaySettings imageBasedTrickPlaySettings() {
return imageBasedTrickPlaySettings;
}
/**
* When set to GZIP, compresses HLS playlist.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #manifestCompression} will return {@link HlsManifestCompression#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #manifestCompressionAsString}.
*
*
* @return When set to GZIP, compresses HLS playlist.
* @see HlsManifestCompression
*/
public final HlsManifestCompression manifestCompression() {
return HlsManifestCompression.fromValue(manifestCompression);
}
/**
* When set to GZIP, compresses HLS playlist.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #manifestCompression} will return {@link HlsManifestCompression#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #manifestCompressionAsString}.
*
*
* @return When set to GZIP, compresses HLS playlist.
* @see HlsManifestCompression
*/
public final String manifestCompressionAsString() {
return manifestCompression;
}
/**
* Indicates whether the output manifest should use floating point values for segment duration.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #manifestDurationFormat} will return {@link HlsManifestDurationFormat#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #manifestDurationFormatAsString}.
*
*
* @return Indicates whether the output manifest should use floating point values for segment duration.
* @see HlsManifestDurationFormat
*/
public final HlsManifestDurationFormat manifestDurationFormat() {
return HlsManifestDurationFormat.fromValue(manifestDurationFormat);
}
/**
* Indicates whether the output manifest should use floating point values for segment duration.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #manifestDurationFormat} will return {@link HlsManifestDurationFormat#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #manifestDurationFormatAsString}.
*
*
* @return Indicates whether the output manifest should use floating point values for segment duration.
* @see HlsManifestDurationFormat
*/
public final String manifestDurationFormatAsString() {
return manifestDurationFormat;
}
/**
* 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;
}
/**
* When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a nearby
* avail and extending the segment size if needed.
*
* @return When set, Minimum Segment Size is enforced by looking ahead and back within the specified range for a
* nearby avail and extending the segment size if needed.
*/
public final Integer minSegmentLength() {
return minSegmentLength;
}
/**
* Indicates whether the .m3u8 manifest file should be generated for this HLS output group.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #outputSelection}
* will return {@link HlsOutputSelection#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #outputSelectionAsString}.
*
*
* @return Indicates whether the .m3u8 manifest file should be generated for this HLS output group.
* @see HlsOutputSelection
*/
public final HlsOutputSelection outputSelection() {
return HlsOutputSelection.fromValue(outputSelection);
}
/**
* Indicates whether the .m3u8 manifest file should be generated for this HLS output group.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #outputSelection}
* will return {@link HlsOutputSelection#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #outputSelectionAsString}.
*
*
* @return Indicates whether the .m3u8 manifest file should be generated for this HLS output group.
* @see HlsOutputSelection
*/
public final String outputSelectionAsString() {
return outputSelection;
}
/**
* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows:
* either the program date and time are initialized using the input timecode source, or the time is initialized
* using the input timecode source and the date is initialized using the timestamp_offset.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #programDateTime}
* will return {@link HlsProgramDateTime#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #programDateTimeAsString}.
*
*
* @return Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as
* follows: either the program date and time are initialized using the input timecode source, or the time is
* initialized using the input timecode source and the date is initialized using the timestamp_offset.
* @see HlsProgramDateTime
*/
public final HlsProgramDateTime programDateTime() {
return HlsProgramDateTime.fromValue(programDateTime);
}
/**
* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as follows:
* either the program date and time are initialized using the input timecode source, or the time is initialized
* using the input timecode source and the date is initialized using the timestamp_offset.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #programDateTime}
* will return {@link HlsProgramDateTime#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #programDateTimeAsString}.
*
*
* @return Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest files. The value is calculated as
* follows: either the program date and time are initialized using the input timecode source, or the time is
* initialized using the input timecode source and the date is initialized using the timestamp_offset.
* @see HlsProgramDateTime
*/
public final String programDateTimeAsString() {
return programDateTime;
}
/**
* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
*
* @return Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
*/
public final Integer programDateTimePeriod() {
return programDateTimePeriod;
}
/**
* Specify whether MediaConvert generates HLS manifests while your job is running or when your job is complete. To
* generate HLS manifests while your job is running: Choose Enabled. Use if you want to play back your content as
* soon as it's available. MediaConvert writes the parent and child manifests after the first three media segments
* are written to your destination S3 bucket. It then writes new updated manifests after each additional segment is
* written. The parent manifest includes the latest BANDWIDTH and AVERAGE-BANDWIDTH attributes, and child manifests
* include the latest available media segment. When your job completes, the final child playlists include an
* EXT-X-ENDLIST tag. To generate HLS manifests only when your job completes: Choose Disabled.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #progressiveWriteHlsManifest} will return {@link HlsProgressiveWriteHlsManifest#UNKNOWN_TO_SDK_VERSION}.
* The raw value returned by the service is available from {@link #progressiveWriteHlsManifestAsString}.
*
*
* @return Specify whether MediaConvert generates HLS manifests while your job is running or when your job is
* complete. To generate HLS manifests while your job is running: Choose Enabled. Use if you want to play
* back your content as soon as it's available. MediaConvert writes the parent and child manifests after the
* first three media segments are written to your destination S3 bucket. It then writes new updated
* manifests after each additional segment is written. The parent manifest includes the latest BANDWIDTH and
* AVERAGE-BANDWIDTH attributes, and child manifests include the latest available media segment. When your
* job completes, the final child playlists include an EXT-X-ENDLIST tag. To generate HLS manifests only
* when your job completes: Choose Disabled.
* @see HlsProgressiveWriteHlsManifest
*/
public final HlsProgressiveWriteHlsManifest progressiveWriteHlsManifest() {
return HlsProgressiveWriteHlsManifest.fromValue(progressiveWriteHlsManifest);
}
/**
* Specify whether MediaConvert generates HLS manifests while your job is running or when your job is complete. To
* generate HLS manifests while your job is running: Choose Enabled. Use if you want to play back your content as
* soon as it's available. MediaConvert writes the parent and child manifests after the first three media segments
* are written to your destination S3 bucket. It then writes new updated manifests after each additional segment is
* written. The parent manifest includes the latest BANDWIDTH and AVERAGE-BANDWIDTH attributes, and child manifests
* include the latest available media segment. When your job completes, the final child playlists include an
* EXT-X-ENDLIST tag. To generate HLS manifests only when your job completes: Choose Disabled.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #progressiveWriteHlsManifest} will return {@link HlsProgressiveWriteHlsManifest#UNKNOWN_TO_SDK_VERSION}.
* The raw value returned by the service is available from {@link #progressiveWriteHlsManifestAsString}.
*
*
* @return Specify whether MediaConvert generates HLS manifests while your job is running or when your job is
* complete. To generate HLS manifests while your job is running: Choose Enabled. Use if you want to play
* back your content as soon as it's available. MediaConvert writes the parent and child manifests after the
* first three media segments are written to your destination S3 bucket. It then writes new updated
* manifests after each additional segment is written. The parent manifest includes the latest BANDWIDTH and
* AVERAGE-BANDWIDTH attributes, and child manifests include the latest available media segment. When your
* job completes, the final child playlists include an EXT-X-ENDLIST tag. To generate HLS manifests only
* when your job completes: Choose Disabled.
* @see HlsProgressiveWriteHlsManifest
*/
public final String progressiveWriteHlsManifestAsString() {
return progressiveWriteHlsManifest;
}
/**
* When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags to index
* segment for playback.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #segmentControl}
* will return {@link HlsSegmentControl#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #segmentControlAsString}.
*
*
* @return When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags
* to index segment for playback.
* @see HlsSegmentControl
*/
public final HlsSegmentControl segmentControl() {
return HlsSegmentControl.fromValue(segmentControl);
}
/**
* When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags to index
* segment for playback.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #segmentControl}
* will return {@link HlsSegmentControl#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #segmentControlAsString}.
*
*
* @return When set to SINGLE_FILE, emits program as a single media resource (.ts) file, uses #EXT-X-BYTERANGE tags
* to index segment for playback.
* @see HlsSegmentControl
*/
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
* 10. 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 10. 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 HlsSegmentLengthControl#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 HlsSegmentLengthControl
*/
public final HlsSegmentLengthControl segmentLengthControl() {
return HlsSegmentLengthControl.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 HlsSegmentLengthControl#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 HlsSegmentLengthControl
*/
public final String segmentLengthControlAsString() {
return segmentLengthControl;
}
/**
* Specify the number of segments to write to a subdirectory before starting a new one. You must also set Directory
* structure to Subdirectory per stream for this setting to have an effect.
*
* @return Specify the number of segments to write to a subdirectory before starting a new one. You must also set
* Directory structure to Subdirectory per stream for this setting to have an effect.
*/
public final Integer segmentsPerSubdirectory() {
return segmentsPerSubdirectory;
}
/**
* Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #streamInfResolution} will return {@link HlsStreamInfResolution#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #streamInfResolutionAsString}.
*
*
* @return Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.
* @see HlsStreamInfResolution
*/
public final HlsStreamInfResolution streamInfResolution() {
return HlsStreamInfResolution.fromValue(streamInfResolution);
}
/**
* Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #streamInfResolution} will return {@link HlsStreamInfResolution#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #streamInfResolutionAsString}.
*
*
* @return Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF tag of variant manifest.
* @see HlsStreamInfResolution
*/
public final String streamInfResolutionAsString() {
return streamInfResolution;
}
/**
* When set to LEGACY, the segment target duration is always rounded up to the nearest integer value above its
* current value in seconds. When set to SPEC\\_COMPLIANT, the segment target duration is rounded up to the nearest
* integer value if fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down if less than 0.5 (<
* 0.5). You may need to use LEGACY if your client needs to ensure that the target duration is always longer than
* the actual duration of the segment. Some older players may experience interrupted playback when the actual
* duration of a track in a segment is longer than the target duration.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #targetDurationCompatibilityMode} will return
* {@link HlsTargetDurationCompatibilityMode#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #targetDurationCompatibilityModeAsString}.
*
*
* @return When set to LEGACY, the segment target duration is always rounded up to the nearest integer value above
* its current value in seconds. When set to SPEC\\_COMPLIANT, the segment target duration is rounded up to
* the nearest integer value if fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down
* if less than 0.5 (< 0.5). You may need to use LEGACY if your client needs to ensure that the target
* duration is always longer than the actual duration of the segment. Some older players may experience
* interrupted playback when the actual duration of a track in a segment is longer than the target duration.
* @see HlsTargetDurationCompatibilityMode
*/
public final HlsTargetDurationCompatibilityMode targetDurationCompatibilityMode() {
return HlsTargetDurationCompatibilityMode.fromValue(targetDurationCompatibilityMode);
}
/**
* When set to LEGACY, the segment target duration is always rounded up to the nearest integer value above its
* current value in seconds. When set to SPEC\\_COMPLIANT, the segment target duration is rounded up to the nearest
* integer value if fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down if less than 0.5 (<
* 0.5). You may need to use LEGACY if your client needs to ensure that the target duration is always longer than
* the actual duration of the segment. Some older players may experience interrupted playback when the actual
* duration of a track in a segment is longer than the target duration.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #targetDurationCompatibilityMode} will return
* {@link HlsTargetDurationCompatibilityMode#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is
* available from {@link #targetDurationCompatibilityModeAsString}.
*
*
* @return When set to LEGACY, the segment target duration is always rounded up to the nearest integer value above
* its current value in seconds. When set to SPEC\\_COMPLIANT, the segment target duration is rounded up to
* the nearest integer value if fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down
* if less than 0.5 (< 0.5). You may need to use LEGACY if your client needs to ensure that the target
* duration is always longer than the actual duration of the segment. Some older players may experience
* interrupted playback when the actual duration of a track in a segment is longer than the target duration.
* @see HlsTargetDurationCompatibilityMode
*/
public final String targetDurationCompatibilityModeAsString() {
return targetDurationCompatibilityMode;
}
/**
* Specify the type of the ID3 frame to use for ID3 timestamps in your output. To include ID3 timestamps: Specify
* PRIV or TDRL and set ID3 metadata to Passthrough. To exclude ID3 timestamps: Set ID3 timestamp frame type to
* None.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #timedMetadataId3Frame} will return {@link HlsTimedMetadataId3Frame#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #timedMetadataId3FrameAsString}.
*
*
* @return Specify the type of the ID3 frame to use for ID3 timestamps in your output. To include ID3 timestamps:
* Specify PRIV or TDRL and set ID3 metadata to Passthrough. To exclude ID3 timestamps: Set ID3 timestamp
* frame type to None.
* @see HlsTimedMetadataId3Frame
*/
public final HlsTimedMetadataId3Frame timedMetadataId3Frame() {
return HlsTimedMetadataId3Frame.fromValue(timedMetadataId3Frame);
}
/**
* Specify the type of the ID3 frame to use for ID3 timestamps in your output. To include ID3 timestamps: Specify
* PRIV or TDRL and set ID3 metadata to Passthrough. To exclude ID3 timestamps: Set ID3 timestamp frame type to
* None.
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #timedMetadataId3Frame} will return {@link HlsTimedMetadataId3Frame#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #timedMetadataId3FrameAsString}.
*
*
* @return Specify the type of the ID3 frame to use for ID3 timestamps in your output. To include ID3 timestamps:
* Specify PRIV or TDRL and set ID3 metadata to Passthrough. To exclude ID3 timestamps: Set ID3 timestamp
* frame type to None.
* @see HlsTimedMetadataId3Frame
*/
public final String timedMetadataId3FrameAsString() {
return timedMetadataId3Frame;
}
/**
* Specify the interval in seconds to write ID3 timestamps in your output. The first timestamp starts at the output
* timecode and date, and increases incrementally with each ID3 timestamp. To use the default interval of 10
* seconds: Leave blank. To include this metadata in your output: Set ID3 timestamp frame type to PRIV or TDRL, and
* set ID3 metadata to Passthrough.
*
* @return Specify the interval in seconds to write ID3 timestamps in your output. The first timestamp starts at the
* output timecode and date, and increases incrementally with each ID3 timestamp. To use the default
* interval of 10 seconds: Leave blank. To include this metadata in your output: Set ID3 timestamp frame
* type to PRIV or TDRL, and set ID3 metadata to Passthrough.
*/
public final Integer timedMetadataId3Period() {
return timedMetadataId3Period;
}
/**
* Provides an extra millisecond delta offset to fine tune the timestamps.
*
* @return Provides an extra millisecond delta offset to fine tune the timestamps.
*/
public final Integer timestampDeltaMilliseconds() {
return timestampDeltaMilliseconds;
}
@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(hasAdMarkers() ? adMarkersAsStrings() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasAdditionalManifests() ? additionalManifests() : null);
hashCode = 31 * hashCode + Objects.hashCode(audioOnlyHeaderAsString());
hashCode = 31 * hashCode + Objects.hashCode(baseUrl());
hashCode = 31 * hashCode + Objects.hashCode(hasCaptionLanguageMappings() ? captionLanguageMappings() : null);
hashCode = 31 * hashCode + Objects.hashCode(captionLanguageSettingAsString());
hashCode = 31 * hashCode + Objects.hashCode(captionSegmentLengthControlAsString());
hashCode = 31 * hashCode + Objects.hashCode(clientCacheAsString());
hashCode = 31 * hashCode + Objects.hashCode(codecSpecificationAsString());
hashCode = 31 * hashCode + Objects.hashCode(destination());
hashCode = 31 * hashCode + Objects.hashCode(destinationSettings());
hashCode = 31 * hashCode + Objects.hashCode(directoryStructureAsString());
hashCode = 31 * hashCode + Objects.hashCode(encryption());
hashCode = 31 * hashCode + Objects.hashCode(imageBasedTrickPlayAsString());
hashCode = 31 * hashCode + Objects.hashCode(imageBasedTrickPlaySettings());
hashCode = 31 * hashCode + Objects.hashCode(manifestCompressionAsString());
hashCode = 31 * hashCode + Objects.hashCode(manifestDurationFormatAsString());
hashCode = 31 * hashCode + Objects.hashCode(minFinalSegmentLength());
hashCode = 31 * hashCode + Objects.hashCode(minSegmentLength());
hashCode = 31 * hashCode + Objects.hashCode(outputSelectionAsString());
hashCode = 31 * hashCode + Objects.hashCode(programDateTimeAsString());
hashCode = 31 * hashCode + Objects.hashCode(programDateTimePeriod());
hashCode = 31 * hashCode + Objects.hashCode(progressiveWriteHlsManifestAsString());
hashCode = 31 * hashCode + Objects.hashCode(segmentControlAsString());
hashCode = 31 * hashCode + Objects.hashCode(segmentLength());
hashCode = 31 * hashCode + Objects.hashCode(segmentLengthControlAsString());
hashCode = 31 * hashCode + Objects.hashCode(segmentsPerSubdirectory());
hashCode = 31 * hashCode + Objects.hashCode(streamInfResolutionAsString());
hashCode = 31 * hashCode + Objects.hashCode(targetDurationCompatibilityModeAsString());
hashCode = 31 * hashCode + Objects.hashCode(timedMetadataId3FrameAsString());
hashCode = 31 * hashCode + Objects.hashCode(timedMetadataId3Period());
hashCode = 31 * hashCode + Objects.hashCode(timestampDeltaMilliseconds());
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 HlsGroupSettings)) {
return false;
}
HlsGroupSettings other = (HlsGroupSettings) obj;
return hasAdMarkers() == other.hasAdMarkers() && Objects.equals(adMarkersAsStrings(), other.adMarkersAsStrings())
&& hasAdditionalManifests() == other.hasAdditionalManifests()
&& Objects.equals(additionalManifests(), other.additionalManifests())
&& Objects.equals(audioOnlyHeaderAsString(), other.audioOnlyHeaderAsString())
&& Objects.equals(baseUrl(), other.baseUrl())
&& hasCaptionLanguageMappings() == other.hasCaptionLanguageMappings()
&& Objects.equals(captionLanguageMappings(), other.captionLanguageMappings())
&& Objects.equals(captionLanguageSettingAsString(), other.captionLanguageSettingAsString())
&& Objects.equals(captionSegmentLengthControlAsString(), other.captionSegmentLengthControlAsString())
&& Objects.equals(clientCacheAsString(), other.clientCacheAsString())
&& Objects.equals(codecSpecificationAsString(), other.codecSpecificationAsString())
&& Objects.equals(destination(), other.destination())
&& Objects.equals(destinationSettings(), other.destinationSettings())
&& Objects.equals(directoryStructureAsString(), other.directoryStructureAsString())
&& Objects.equals(encryption(), other.encryption())
&& Objects.equals(imageBasedTrickPlayAsString(), other.imageBasedTrickPlayAsString())
&& Objects.equals(imageBasedTrickPlaySettings(), other.imageBasedTrickPlaySettings())
&& Objects.equals(manifestCompressionAsString(), other.manifestCompressionAsString())
&& Objects.equals(manifestDurationFormatAsString(), other.manifestDurationFormatAsString())
&& Objects.equals(minFinalSegmentLength(), other.minFinalSegmentLength())
&& Objects.equals(minSegmentLength(), other.minSegmentLength())
&& Objects.equals(outputSelectionAsString(), other.outputSelectionAsString())
&& Objects.equals(programDateTimeAsString(), other.programDateTimeAsString())
&& Objects.equals(programDateTimePeriod(), other.programDateTimePeriod())
&& Objects.equals(progressiveWriteHlsManifestAsString(), other.progressiveWriteHlsManifestAsString())
&& Objects.equals(segmentControlAsString(), other.segmentControlAsString())
&& Objects.equals(segmentLength(), other.segmentLength())
&& Objects.equals(segmentLengthControlAsString(), other.segmentLengthControlAsString())
&& Objects.equals(segmentsPerSubdirectory(), other.segmentsPerSubdirectory())
&& Objects.equals(streamInfResolutionAsString(), other.streamInfResolutionAsString())
&& Objects.equals(targetDurationCompatibilityModeAsString(), other.targetDurationCompatibilityModeAsString())
&& Objects.equals(timedMetadataId3FrameAsString(), other.timedMetadataId3FrameAsString())
&& Objects.equals(timedMetadataId3Period(), other.timedMetadataId3Period())
&& Objects.equals(timestampDeltaMilliseconds(), other.timestampDeltaMilliseconds());
}
/**
* 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("HlsGroupSettings").add("AdMarkers", hasAdMarkers() ? adMarkersAsStrings() : null)
.add("AdditionalManifests", hasAdditionalManifests() ? additionalManifests() : null)
.add("AudioOnlyHeader", audioOnlyHeaderAsString()).add("BaseUrl", baseUrl())
.add("CaptionLanguageMappings", hasCaptionLanguageMappings() ? captionLanguageMappings() : null)
.add("CaptionLanguageSetting", captionLanguageSettingAsString())
.add("CaptionSegmentLengthControl", captionSegmentLengthControlAsString())
.add("ClientCache", clientCacheAsString()).add("CodecSpecification", codecSpecificationAsString())
.add("Destination", destination()).add("DestinationSettings", destinationSettings())
.add("DirectoryStructure", directoryStructureAsString()).add("Encryption", encryption())
.add("ImageBasedTrickPlay", imageBasedTrickPlayAsString())
.add("ImageBasedTrickPlaySettings", imageBasedTrickPlaySettings())
.add("ManifestCompression", manifestCompressionAsString())
.add("ManifestDurationFormat", manifestDurationFormatAsString())
.add("MinFinalSegmentLength", minFinalSegmentLength()).add("MinSegmentLength", minSegmentLength())
.add("OutputSelection", outputSelectionAsString()).add("ProgramDateTime", programDateTimeAsString())
.add("ProgramDateTimePeriod", programDateTimePeriod())
.add("ProgressiveWriteHlsManifest", progressiveWriteHlsManifestAsString())
.add("SegmentControl", segmentControlAsString()).add("SegmentLength", segmentLength())
.add("SegmentLengthControl", segmentLengthControlAsString())
.add("SegmentsPerSubdirectory", segmentsPerSubdirectory())
.add("StreamInfResolution", streamInfResolutionAsString())
.add("TargetDurationCompatibilityMode", targetDurationCompatibilityModeAsString())
.add("TimedMetadataId3Frame", timedMetadataId3FrameAsString())
.add("TimedMetadataId3Period", timedMetadataId3Period())
.add("TimestampDeltaMilliseconds", timestampDeltaMilliseconds()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "AdMarkers":
return Optional.ofNullable(clazz.cast(adMarkersAsStrings()));
case "AdditionalManifests":
return Optional.ofNullable(clazz.cast(additionalManifests()));
case "AudioOnlyHeader":
return Optional.ofNullable(clazz.cast(audioOnlyHeaderAsString()));
case "BaseUrl":
return Optional.ofNullable(clazz.cast(baseUrl()));
case "CaptionLanguageMappings":
return Optional.ofNullable(clazz.cast(captionLanguageMappings()));
case "CaptionLanguageSetting":
return Optional.ofNullable(clazz.cast(captionLanguageSettingAsString()));
case "CaptionSegmentLengthControl":
return Optional.ofNullable(clazz.cast(captionSegmentLengthControlAsString()));
case "ClientCache":
return Optional.ofNullable(clazz.cast(clientCacheAsString()));
case "CodecSpecification":
return Optional.ofNullable(clazz.cast(codecSpecificationAsString()));
case "Destination":
return Optional.ofNullable(clazz.cast(destination()));
case "DestinationSettings":
return Optional.ofNullable(clazz.cast(destinationSettings()));
case "DirectoryStructure":
return Optional.ofNullable(clazz.cast(directoryStructureAsString()));
case "Encryption":
return Optional.ofNullable(clazz.cast(encryption()));
case "ImageBasedTrickPlay":
return Optional.ofNullable(clazz.cast(imageBasedTrickPlayAsString()));
case "ImageBasedTrickPlaySettings":
return Optional.ofNullable(clazz.cast(imageBasedTrickPlaySettings()));
case "ManifestCompression":
return Optional.ofNullable(clazz.cast(manifestCompressionAsString()));
case "ManifestDurationFormat":
return Optional.ofNullable(clazz.cast(manifestDurationFormatAsString()));
case "MinFinalSegmentLength":
return Optional.ofNullable(clazz.cast(minFinalSegmentLength()));
case "MinSegmentLength":
return Optional.ofNullable(clazz.cast(minSegmentLength()));
case "OutputSelection":
return Optional.ofNullable(clazz.cast(outputSelectionAsString()));
case "ProgramDateTime":
return Optional.ofNullable(clazz.cast(programDateTimeAsString()));
case "ProgramDateTimePeriod":
return Optional.ofNullable(clazz.cast(programDateTimePeriod()));
case "ProgressiveWriteHlsManifest":
return Optional.ofNullable(clazz.cast(progressiveWriteHlsManifestAsString()));
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 "SegmentsPerSubdirectory":
return Optional.ofNullable(clazz.cast(segmentsPerSubdirectory()));
case "StreamInfResolution":
return Optional.ofNullable(clazz.cast(streamInfResolutionAsString()));
case "TargetDurationCompatibilityMode":
return Optional.ofNullable(clazz.cast(targetDurationCompatibilityModeAsString()));
case "TimedMetadataId3Frame":
return Optional.ofNullable(clazz.cast(timedMetadataId3FrameAsString()));
case "TimedMetadataId3Period":
return Optional.ofNullable(clazz.cast(timedMetadataId3Period()));
case "TimestampDeltaMilliseconds":
return Optional.ofNullable(clazz.cast(timestampDeltaMilliseconds()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function