com.amazonaws.services.mediaconvert.model.ContainerSettings Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk-mediaconvert Show documentation
Show all versions of aws-java-sdk-mediaconvert Show documentation
The AWS Java SDK for AWS Elemental MediaConvert module holds the client classes that are used for communicating with AWS Elemental MediaConvert Service
/*
* Copyright 2019-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.mediaconvert.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
* Container specific settings.
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class ContainerSettings implements Serializable, Cloneable, StructuredPojo {
/** These settings relate to the fragmented MP4 container for the segments in your CMAF outputs. */
private CmfcSettings cmfcSettings;
/**
* Container for this output. Some containers require a container settings object. If not specified, the default
* object will be created.
*/
private String container;
/** Settings for F4v container */
private F4vSettings f4vSettings;
/**
* MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is MPEG-2
* Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each transport stream
* program contains subsets of data, including audio, video, and metadata. Each of these subsets of data has a
* numerical label called a packet identifier (PID). Each transport stream program corresponds to one MediaConvert
* output. The PMT lists the types of data in a program along with their PID. Downstream systems and players use the
* program map table to look up the PID for each type of data it accesses and then uses the PIDs to locate specific
* data within the asset.
*/
private M2tsSettings m2tsSettings;
/**
* These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in your HLS
* outputs.
*/
private M3u8Settings m3u8Settings;
/** These settings relate to your QuickTime MOV output container. */
private MovSettings movSettings;
/**
* These settings relate to your MP4 output container. You can create audio only outputs with this container. For
* more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html
* #output-codecs-and-containers-supported-for-audio-only.
*/
private Mp4Settings mp4Settings;
/** These settings relate to the fragmented MP4 container for the segments in your DASH outputs. */
private MpdSettings mpdSettings;
/** These settings relate to your MXF output container. */
private MxfSettings mxfSettings;
/**
* These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
*
* @param cmfcSettings
* These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
*/
public void setCmfcSettings(CmfcSettings cmfcSettings) {
this.cmfcSettings = cmfcSettings;
}
/**
* These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
*
* @return These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
*/
public CmfcSettings getCmfcSettings() {
return this.cmfcSettings;
}
/**
* These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
*
* @param cmfcSettings
* These settings relate to the fragmented MP4 container for the segments in your CMAF outputs.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withCmfcSettings(CmfcSettings cmfcSettings) {
setCmfcSettings(cmfcSettings);
return this;
}
/**
* Container for this output. Some containers require a container settings object. If not specified, the default
* object will be created.
*
* @param container
* Container for this output. Some containers require a container settings object. If not specified, the
* default object will be created.
* @see ContainerType
*/
public void setContainer(String container) {
this.container = container;
}
/**
* Container for this output. Some containers require a container settings object. If not specified, the default
* object will be created.
*
* @return Container for this output. Some containers require a container settings object. If not specified, the
* default object will be created.
* @see ContainerType
*/
public String getContainer() {
return this.container;
}
/**
* Container for this output. Some containers require a container settings object. If not specified, the default
* object will be created.
*
* @param container
* Container for this output. Some containers require a container settings object. If not specified, the
* default object will be created.
* @return Returns a reference to this object so that method calls can be chained together.
* @see ContainerType
*/
public ContainerSettings withContainer(String container) {
setContainer(container);
return this;
}
/**
* Container for this output. Some containers require a container settings object. If not specified, the default
* object will be created.
*
* @param container
* Container for this output. Some containers require a container settings object. If not specified, the
* default object will be created.
* @return Returns a reference to this object so that method calls can be chained together.
* @see ContainerType
*/
public ContainerSettings withContainer(ContainerType container) {
this.container = container.toString();
return this;
}
/**
* Settings for F4v container
*
* @param f4vSettings
* Settings for F4v container
*/
public void setF4vSettings(F4vSettings f4vSettings) {
this.f4vSettings = f4vSettings;
}
/**
* Settings for F4v container
*
* @return Settings for F4v container
*/
public F4vSettings getF4vSettings() {
return this.f4vSettings;
}
/**
* Settings for F4v container
*
* @param f4vSettings
* Settings for F4v container
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withF4vSettings(F4vSettings f4vSettings) {
setF4vSettings(f4vSettings);
return this;
}
/**
* MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is MPEG-2
* Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each transport stream
* program contains subsets of data, including audio, video, and metadata. Each of these subsets of data has a
* numerical label called a packet identifier (PID). Each transport stream program corresponds to one MediaConvert
* output. The PMT lists the types of data in a program along with their PID. Downstream systems and players use the
* program map table to look up the PID for each type of data it accesses and then uses the PIDs to locate specific
* data within the asset.
*
* @param m2tsSettings
* MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is
* MPEG-2 Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each
* transport stream program contains subsets of data, including audio, video, and metadata. Each of these
* subsets of data has a numerical label called a packet identifier (PID). Each transport stream program
* corresponds to one MediaConvert output. The PMT lists the types of data in a program along with their PID.
* Downstream systems and players use the program map table to look up the PID for each type of data it
* accesses and then uses the PIDs to locate specific data within the asset.
*/
public void setM2tsSettings(M2tsSettings m2tsSettings) {
this.m2tsSettings = m2tsSettings;
}
/**
* MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is MPEG-2
* Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each transport stream
* program contains subsets of data, including audio, video, and metadata. Each of these subsets of data has a
* numerical label called a packet identifier (PID). Each transport stream program corresponds to one MediaConvert
* output. The PMT lists the types of data in a program along with their PID. Downstream systems and players use the
* program map table to look up the PID for each type of data it accesses and then uses the PIDs to locate specific
* data within the asset.
*
* @return MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container
* is MPEG-2 Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT).
* Each transport stream program contains subsets of data, including audio, video, and metadata. Each of
* these subsets of data has a numerical label called a packet identifier (PID). Each transport stream
* program corresponds to one MediaConvert output. The PMT lists the types of data in a program along with
* their PID. Downstream systems and players use the program map table to look up the PID for each type of
* data it accesses and then uses the PIDs to locate specific data within the asset.
*/
public M2tsSettings getM2tsSettings() {
return this.m2tsSettings;
}
/**
* MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is MPEG-2
* Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each transport stream
* program contains subsets of data, including audio, video, and metadata. Each of these subsets of data has a
* numerical label called a packet identifier (PID). Each transport stream program corresponds to one MediaConvert
* output. The PMT lists the types of data in a program along with their PID. Downstream systems and players use the
* program map table to look up the PID for each type of data it accesses and then uses the PIDs to locate specific
* data within the asset.
*
* @param m2tsSettings
* MPEG-2 TS container settings. These apply to outputs in a File output group when the output's container is
* MPEG-2 Transport Stream (M2TS). In these assets, data is organized by the program map table (PMT). Each
* transport stream program contains subsets of data, including audio, video, and metadata. Each of these
* subsets of data has a numerical label called a packet identifier (PID). Each transport stream program
* corresponds to one MediaConvert output. The PMT lists the types of data in a program along with their PID.
* Downstream systems and players use the program map table to look up the PID for each type of data it
* accesses and then uses the PIDs to locate specific data within the asset.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withM2tsSettings(M2tsSettings m2tsSettings) {
setM2tsSettings(m2tsSettings);
return this;
}
/**
* These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in your HLS
* outputs.
*
* @param m3u8Settings
* These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in
* your HLS outputs.
*/
public void setM3u8Settings(M3u8Settings m3u8Settings) {
this.m3u8Settings = m3u8Settings;
}
/**
* These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in your HLS
* outputs.
*
* @return These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in
* your HLS outputs.
*/
public M3u8Settings getM3u8Settings() {
return this.m3u8Settings;
}
/**
* These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in your HLS
* outputs.
*
* @param m3u8Settings
* These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the MPEG2-TS segments in
* your HLS outputs.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withM3u8Settings(M3u8Settings m3u8Settings) {
setM3u8Settings(m3u8Settings);
return this;
}
/**
* These settings relate to your QuickTime MOV output container.
*
* @param movSettings
* These settings relate to your QuickTime MOV output container.
*/
public void setMovSettings(MovSettings movSettings) {
this.movSettings = movSettings;
}
/**
* These settings relate to your QuickTime MOV output container.
*
* @return These settings relate to your QuickTime MOV output container.
*/
public MovSettings getMovSettings() {
return this.movSettings;
}
/**
* These settings relate to your QuickTime MOV output container.
*
* @param movSettings
* These settings relate to your QuickTime MOV output container.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withMovSettings(MovSettings movSettings) {
setMovSettings(movSettings);
return this;
}
/**
* These settings relate to your MP4 output container. You can create audio only outputs with this container. For
* more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html
* #output-codecs-and-containers-supported-for-audio-only.
*
* @param mp4Settings
* These settings relate to your MP4 output container. You can create audio only outputs with this container.
* For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio
* -only.html#output-codecs-and-containers-supported-for-audio-only.
*/
public void setMp4Settings(Mp4Settings mp4Settings) {
this.mp4Settings = mp4Settings;
}
/**
* These settings relate to your MP4 output container. You can create audio only outputs with this container. For
* more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html
* #output-codecs-and-containers-supported-for-audio-only.
*
* @return These settings relate to your MP4 output container. You can create audio only outputs with this
* container. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers
* -audio-only.html#output-codecs-and-containers-supported-for-audio-only.
*/
public Mp4Settings getMp4Settings() {
return this.mp4Settings;
}
/**
* These settings relate to your MP4 output container. You can create audio only outputs with this container. For
* more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio-only.html
* #output-codecs-and-containers-supported-for-audio-only.
*
* @param mp4Settings
* These settings relate to your MP4 output container. You can create audio only outputs with this container.
* For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/supported-codecs-containers-audio
* -only.html#output-codecs-and-containers-supported-for-audio-only.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withMp4Settings(Mp4Settings mp4Settings) {
setMp4Settings(mp4Settings);
return this;
}
/**
* These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
*
* @param mpdSettings
* These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
*/
public void setMpdSettings(MpdSettings mpdSettings) {
this.mpdSettings = mpdSettings;
}
/**
* These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
*
* @return These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
*/
public MpdSettings getMpdSettings() {
return this.mpdSettings;
}
/**
* These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
*
* @param mpdSettings
* These settings relate to the fragmented MP4 container for the segments in your DASH outputs.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withMpdSettings(MpdSettings mpdSettings) {
setMpdSettings(mpdSettings);
return this;
}
/**
* These settings relate to your MXF output container.
*
* @param mxfSettings
* These settings relate to your MXF output container.
*/
public void setMxfSettings(MxfSettings mxfSettings) {
this.mxfSettings = mxfSettings;
}
/**
* These settings relate to your MXF output container.
*
* @return These settings relate to your MXF output container.
*/
public MxfSettings getMxfSettings() {
return this.mxfSettings;
}
/**
* These settings relate to your MXF output container.
*
* @param mxfSettings
* These settings relate to your MXF output container.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ContainerSettings withMxfSettings(MxfSettings mxfSettings) {
setMxfSettings(mxfSettings);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getCmfcSettings() != null)
sb.append("CmfcSettings: ").append(getCmfcSettings()).append(",");
if (getContainer() != null)
sb.append("Container: ").append(getContainer()).append(",");
if (getF4vSettings() != null)
sb.append("F4vSettings: ").append(getF4vSettings()).append(",");
if (getM2tsSettings() != null)
sb.append("M2tsSettings: ").append(getM2tsSettings()).append(",");
if (getM3u8Settings() != null)
sb.append("M3u8Settings: ").append(getM3u8Settings()).append(",");
if (getMovSettings() != null)
sb.append("MovSettings: ").append(getMovSettings()).append(",");
if (getMp4Settings() != null)
sb.append("Mp4Settings: ").append(getMp4Settings()).append(",");
if (getMpdSettings() != null)
sb.append("MpdSettings: ").append(getMpdSettings()).append(",");
if (getMxfSettings() != null)
sb.append("MxfSettings: ").append(getMxfSettings());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof ContainerSettings == false)
return false;
ContainerSettings other = (ContainerSettings) obj;
if (other.getCmfcSettings() == null ^ this.getCmfcSettings() == null)
return false;
if (other.getCmfcSettings() != null && other.getCmfcSettings().equals(this.getCmfcSettings()) == false)
return false;
if (other.getContainer() == null ^ this.getContainer() == null)
return false;
if (other.getContainer() != null && other.getContainer().equals(this.getContainer()) == false)
return false;
if (other.getF4vSettings() == null ^ this.getF4vSettings() == null)
return false;
if (other.getF4vSettings() != null && other.getF4vSettings().equals(this.getF4vSettings()) == false)
return false;
if (other.getM2tsSettings() == null ^ this.getM2tsSettings() == null)
return false;
if (other.getM2tsSettings() != null && other.getM2tsSettings().equals(this.getM2tsSettings()) == false)
return false;
if (other.getM3u8Settings() == null ^ this.getM3u8Settings() == null)
return false;
if (other.getM3u8Settings() != null && other.getM3u8Settings().equals(this.getM3u8Settings()) == false)
return false;
if (other.getMovSettings() == null ^ this.getMovSettings() == null)
return false;
if (other.getMovSettings() != null && other.getMovSettings().equals(this.getMovSettings()) == false)
return false;
if (other.getMp4Settings() == null ^ this.getMp4Settings() == null)
return false;
if (other.getMp4Settings() != null && other.getMp4Settings().equals(this.getMp4Settings()) == false)
return false;
if (other.getMpdSettings() == null ^ this.getMpdSettings() == null)
return false;
if (other.getMpdSettings() != null && other.getMpdSettings().equals(this.getMpdSettings()) == false)
return false;
if (other.getMxfSettings() == null ^ this.getMxfSettings() == null)
return false;
if (other.getMxfSettings() != null && other.getMxfSettings().equals(this.getMxfSettings()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getCmfcSettings() == null) ? 0 : getCmfcSettings().hashCode());
hashCode = prime * hashCode + ((getContainer() == null) ? 0 : getContainer().hashCode());
hashCode = prime * hashCode + ((getF4vSettings() == null) ? 0 : getF4vSettings().hashCode());
hashCode = prime * hashCode + ((getM2tsSettings() == null) ? 0 : getM2tsSettings().hashCode());
hashCode = prime * hashCode + ((getM3u8Settings() == null) ? 0 : getM3u8Settings().hashCode());
hashCode = prime * hashCode + ((getMovSettings() == null) ? 0 : getMovSettings().hashCode());
hashCode = prime * hashCode + ((getMp4Settings() == null) ? 0 : getMp4Settings().hashCode());
hashCode = prime * hashCode + ((getMpdSettings() == null) ? 0 : getMpdSettings().hashCode());
hashCode = prime * hashCode + ((getMxfSettings() == null) ? 0 : getMxfSettings().hashCode());
return hashCode;
}
@Override
public ContainerSettings clone() {
try {
return (ContainerSettings) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.mediaconvert.model.transform.ContainerSettingsMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}