(inputClippings);
}
/**
* Contains sets of start and end times that together specify a portion of the input to be used in the outputs. If
* you provide only a start time, the clip will be the entire input from that point to the end. If you provide only
* an end time, it will be the entire input up to that point. When you specify more than one input clip, the
* transcoding service creates the job outputs by stringing the clips together in the order you specify them.
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setInputClippings(java.util.Collection)} or {@link #withInputClippings(java.util.Collection)} if you want
* to override the existing values.
*
*
* @param inputClippings
* Contains sets of start and end times that together specify a portion of the input to be used in the
* outputs. If you provide only a start time, the clip will be the entire input from that point to the end.
* If you provide only an end time, it will be the entire input up to that point. When you specify more than
* one input clip, the transcoding service creates the job outputs by stringing the clips together in the
* order you specify them.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public InputTemplate withInputClippings(InputClipping... inputClippings) {
if (this.inputClippings == null) {
setInputClippings(new java.util.ArrayList(inputClippings.length));
}
for (InputClipping ele : inputClippings) {
this.inputClippings.add(ele);
}
return this;
}
/**
* Contains sets of start and end times that together specify a portion of the input to be used in the outputs. If
* you provide only a start time, the clip will be the entire input from that point to the end. If you provide only
* an end time, it will be the entire input up to that point. When you specify more than one input clip, the
* transcoding service creates the job outputs by stringing the clips together in the order you specify them.
*
* @param inputClippings
* Contains sets of start and end times that together specify a portion of the input to be used in the
* outputs. If you provide only a start time, the clip will be the entire input from that point to the end.
* If you provide only an end time, it will be the entire input up to that point. When you specify more than
* one input clip, the transcoding service creates the job outputs by stringing the clips together in the
* order you specify them.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public InputTemplate withInputClippings(java.util.Collection inputClippings) {
setInputClippings(inputClippings);
return this;
}
/**
* When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF. MediaConvert
* doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better preservation of video
* quality when you do deinterlacing and frame rate conversion. If you don't specify, the default value is Auto. Auto
* is the correct setting for all inputs that are not PsF. Don't set this value to PsF when your input is interlaced.
* Doing so creates horizontal interlacing artifacts.
*
* @param inputScanType
* When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF.
* MediaConvert doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better
* preservation of video quality when you do deinterlacing and frame rate conversion. If you don't specify,
* the default value is Auto. Auto is the correct setting for all inputs that are not PsF. Don't set this
* value to PsF when your input is interlaced. Doing so creates horizontal interlacing artifacts.
* @see InputScanType
*/
public void setInputScanType(String inputScanType) {
this.inputScanType = inputScanType;
}
/**
* When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF. MediaConvert
* doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better preservation of video
* quality when you do deinterlacing and frame rate conversion. If you don't specify, the default value is Auto. Auto
* is the correct setting for all inputs that are not PsF. Don't set this value to PsF when your input is interlaced.
* Doing so creates horizontal interlacing artifacts.
*
* @return When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF.
* MediaConvert doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better
* preservation of video quality when you do deinterlacing and frame rate conversion. If you don't specify,
* the default value is Auto. Auto is the correct setting for all inputs that are not PsF. Don't set this
* value to PsF when your input is interlaced. Doing so creates horizontal interlacing artifacts.
* @see InputScanType
*/
public String getInputScanType() {
return this.inputScanType;
}
/**
* When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF. MediaConvert
* doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better preservation of video
* quality when you do deinterlacing and frame rate conversion. If you don't specify, the default value is Auto. Auto
* is the correct setting for all inputs that are not PsF. Don't set this value to PsF when your input is interlaced.
* Doing so creates horizontal interlacing artifacts.
*
* @param inputScanType
* When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF.
* MediaConvert doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better
* preservation of video quality when you do deinterlacing and frame rate conversion. If you don't specify,
* the default value is Auto. Auto is the correct setting for all inputs that are not PsF. Don't set this
* value to PsF when your input is interlaced. Doing so creates horizontal interlacing artifacts.
* @return Returns a reference to this object so that method calls can be chained together.
* @see InputScanType
*/
public InputTemplate withInputScanType(String inputScanType) {
setInputScanType(inputScanType);
return this;
}
/**
* When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF. MediaConvert
* doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better preservation of video
* quality when you do deinterlacing and frame rate conversion. If you don't specify, the default value is Auto. Auto
* is the correct setting for all inputs that are not PsF. Don't set this value to PsF when your input is interlaced.
* Doing so creates horizontal interlacing artifacts.
*
* @param inputScanType
* When you have a progressive segmented frame (PsF) input, use this setting to flag the input as PsF.
* MediaConvert doesn't automatically detect PsF. Therefore, flagging your input as PsF results in better
* preservation of video quality when you do deinterlacing and frame rate conversion. If you don't specify,
* the default value is Auto. Auto is the correct setting for all inputs that are not PsF. Don't set this
* value to PsF when your input is interlaced. Doing so creates horizontal interlacing artifacts.
* @return Returns a reference to this object so that method calls can be chained together.
* @see InputScanType
*/
public InputTemplate withInputScanType(InputScanType inputScanType) {
this.inputScanType = inputScanType.toString();
return this;
}
/**
* Use Selection placement to define the video area in your output frame. The area outside of the rectangle that you
* specify here is black. If you specify a value here, it will override any value that you specify in the output
* setting Selection placement. If you specify a value here, this will override any AFD values in your input, even if
* you set Respond to AFD to Respond. If you specify a value here, this will ignore anything that you specify for the
* setting Scaling Behavior.
*
* @param position
* Use Selection placement to define the video area in your output frame. The area outside of the rectangle
* that you specify here is black. If you specify a value here, it will override any value that you specify
* in the output setting Selection placement. If you specify a value here, this will override any AFD values
* in your input, even if you set Respond to AFD to Respond. If you specify a value here, this will ignore
* anything that you specify for the setting Scaling Behavior.
*/
public void setPosition(Rectangle position) {
this.position = position;
}
/**
* Use Selection placement to define the video area in your output frame. The area outside of the rectangle that you
* specify here is black. If you specify a value here, it will override any value that you specify in the output
* setting Selection placement. If you specify a value here, this will override any AFD values in your input, even if
* you set Respond to AFD to Respond. If you specify a value here, this will ignore anything that you specify for the
* setting Scaling Behavior.
*
* @return Use Selection placement to define the video area in your output frame. The area outside of the rectangle
* that you specify here is black. If you specify a value here, it will override any value that you specify
* in the output setting Selection placement. If you specify a value here, this will override any AFD values
* in your input, even if you set Respond to AFD to Respond. If you specify a value here, this will ignore
* anything that you specify for the setting Scaling Behavior.
*/
public Rectangle getPosition() {
return this.position;
}
/**
* Use Selection placement to define the video area in your output frame. The area outside of the rectangle that you
* specify here is black. If you specify a value here, it will override any value that you specify in the output
* setting Selection placement. If you specify a value here, this will override any AFD values in your input, even if
* you set Respond to AFD to Respond. If you specify a value here, this will ignore anything that you specify for the
* setting Scaling Behavior.
*
* @param position
* Use Selection placement to define the video area in your output frame. The area outside of the rectangle
* that you specify here is black. If you specify a value here, it will override any value that you specify
* in the output setting Selection placement. If you specify a value here, this will override any AFD values
* in your input, even if you set Respond to AFD to Respond. If you specify a value here, this will ignore
* anything that you specify for the setting Scaling Behavior.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public InputTemplate withPosition(Rectangle position) {
setPosition(position);
return this;
}
/**
* Use Program to select a specific program from within a multi-program transport stream. Note that Quad 4K is not
* currently supported. Default is the first program within the transport stream. If the program you specify doesn't
* exist, the transcoding service will use this default.
*
* @param programNumber
* Use Program to select a specific program from within a multi-program transport stream. Note that Quad 4K
* is not currently supported. Default is the first program within the transport stream. If the program you
* specify doesn't exist, the transcoding service will use this default.
*/
public void setProgramNumber(Integer programNumber) {
this.programNumber = programNumber;
}
/**
* Use Program to select a specific program from within a multi-program transport stream. Note that Quad 4K is not
* currently supported. Default is the first program within the transport stream. If the program you specify doesn't
* exist, the transcoding service will use this default.
*
* @return Use Program to select a specific program from within a multi-program transport stream. Note that Quad 4K
* is not currently supported. Default is the first program within the transport stream. If the program you
* specify doesn't exist, the transcoding service will use this default.
*/
public Integer getProgramNumber() {
return this.programNumber;
}
/**
* Use Program to select a specific program from within a multi-program transport stream. Note that Quad 4K is not
* currently supported. Default is the first program within the transport stream. If the program you specify doesn't
* exist, the transcoding service will use this default.
*
* @param programNumber
* Use Program to select a specific program from within a multi-program transport stream. Note that Quad 4K
* is not currently supported. Default is the first program within the transport stream. If the program you
* specify doesn't exist, the transcoding service will use this default.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public InputTemplate withProgramNumber(Integer programNumber) {
setProgramNumber(programNumber);
return this;
}
/**
* Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI - Scan
* all PIDs for audio and video. Use PSI - Scan only PSI data.
*
* @param psiControl
* Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI -
* Scan all PIDs for audio and video. Use PSI - Scan only PSI data.
* @see InputPsiControl
*/
public void setPsiControl(String psiControl) {
this.psiControl = psiControl;
}
/**
* Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI - Scan
* all PIDs for audio and video. Use PSI - Scan only PSI data.
*
* @return Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI
* - Scan all PIDs for audio and video. Use PSI - Scan only PSI data.
* @see InputPsiControl
*/
public String getPsiControl() {
return this.psiControl;
}
/**
* Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI - Scan
* all PIDs for audio and video. Use PSI - Scan only PSI data.
*
* @param psiControl
* Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI -
* Scan all PIDs for audio and video. Use PSI - Scan only PSI data.
* @return Returns a reference to this object so that method calls can be chained together.
* @see InputPsiControl
*/
public InputTemplate withPsiControl(String psiControl) {
setPsiControl(psiControl);
return this;
}
/**
* Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI - Scan
* all PIDs for audio and video. Use PSI - Scan only PSI data.
*
* @param psiControl
* Set PSI control for transport stream inputs to specify which data the demux process to scans. Ignore PSI -
* Scan all PIDs for audio and video. Use PSI - Scan only PSI data.
* @return Returns a reference to this object so that method calls can be chained together.
* @see InputPsiControl
*/
public InputTemplate withPsiControl(InputPsiControl psiControl) {
this.psiControl = psiControl.toString();
return this;
}
/**
* Use this Timecode source setting, located under the input settings, to specify how the service counts input video
* frames. This input frame count affects only the behavior of features that apply to a single input at a time, such
* as input clipping and synchronizing some captions formats. Choose Embedded to use the timecodes in your input
* video. Choose Start at zero to start the first frame at zero. Choose Specified start to start the first frame at
* the timecode that you specify in the setting Start timecode. If you don't specify a value for Timecode source, the
* service will use Embedded by default. For more information about timecodes, see
* https://docs.aws.amazon.com/console/mediaconvert/timecode.
*
* @param timecodeSource
* Use this Timecode source setting, located under the input settings, to specify how the service counts
* input video frames. This input frame count affects only the behavior of features that apply to a single
* input at a time, such as input clipping and synchronizing some captions formats. Choose Embedded to use
* the timecodes in your input video. Choose Start at zero to start the first frame at zero. Choose Specified
* start to start the first frame at the timecode that you specify in the setting Start timecode. If you
* don't specify a value for Timecode source, the service will use Embedded by default. For more information
* about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
* @see InputTimecodeSource
*/
public void setTimecodeSource(String timecodeSource) {
this.timecodeSource = timecodeSource;
}
/**
* Use this Timecode source setting, located under the input settings, to specify how the service counts input video
* frames. This input frame count affects only the behavior of features that apply to a single input at a time, such
* as input clipping and synchronizing some captions formats. Choose Embedded to use the timecodes in your input
* video. Choose Start at zero to start the first frame at zero. Choose Specified start to start the first frame at
* the timecode that you specify in the setting Start timecode. If you don't specify a value for Timecode source, the
* service will use Embedded by default. For more information about timecodes, see
* https://docs.aws.amazon.com/console/mediaconvert/timecode.
*
* @return Use this Timecode source setting, located under the input settings, to specify how the service counts
* input video frames. This input frame count affects only the behavior of features that apply to a single
* input at a time, such as input clipping and synchronizing some captions formats. Choose Embedded to use
* the timecodes in your input video. Choose Start at zero to start the first frame at zero. Choose
* Specified start to start the first frame at the timecode that you specify in the setting Start timecode.
* If you don't specify a value for Timecode source, the service will use Embedded by default. For more
* information about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
* @see InputTimecodeSource
*/
public String getTimecodeSource() {
return this.timecodeSource;
}
/**
* Use this Timecode source setting, located under the input settings, to specify how the service counts input video
* frames. This input frame count affects only the behavior of features that apply to a single input at a time, such
* as input clipping and synchronizing some captions formats. Choose Embedded to use the timecodes in your input
* video. Choose Start at zero to start the first frame at zero. Choose Specified start to start the first frame at
* the timecode that you specify in the setting Start timecode. If you don't specify a value for Timecode source, the
* service will use Embedded by default. For more information about timecodes, see
* https://docs.aws.amazon.com/console/mediaconvert/timecode.
*
* @param timecodeSource
* Use this Timecode source setting, located under the input settings, to specify how the service counts
* input video frames. This input frame count affects only the behavior of features that apply to a single
* input at a time, such as input clipping and synchronizing some captions formats. Choose Embedded to use
* the timecodes in your input video. Choose Start at zero to start the first frame at zero. Choose Specified
* start to start the first frame at the timecode that you specify in the setting Start timecode. If you
* don't specify a value for Timecode source, the service will use Embedded by default. For more information
* about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
* @return Returns a reference to this object so that method calls can be chained together.
* @see InputTimecodeSource
*/
public InputTemplate withTimecodeSource(String timecodeSource) {
setTimecodeSource(timecodeSource);
return this;
}
/**
* Use this Timecode source setting, located under the input settings, to specify how the service counts input video
* frames. This input frame count affects only the behavior of features that apply to a single input at a time, such
* as input clipping and synchronizing some captions formats. Choose Embedded to use the timecodes in your input
* video. Choose Start at zero to start the first frame at zero. Choose Specified start to start the first frame at
* the timecode that you specify in the setting Start timecode. If you don't specify a value for Timecode source, the
* service will use Embedded by default. For more information about timecodes, see
* https://docs.aws.amazon.com/console/mediaconvert/timecode.
*
* @param timecodeSource
* Use this Timecode source setting, located under the input settings, to specify how the service counts
* input video frames. This input frame count affects only the behavior of features that apply to a single
* input at a time, such as input clipping and synchronizing some captions formats. Choose Embedded to use
* the timecodes in your input video. Choose Start at zero to start the first frame at zero. Choose Specified
* start to start the first frame at the timecode that you specify in the setting Start timecode. If you
* don't specify a value for Timecode source, the service will use Embedded by default. For more information
* about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
* @return Returns a reference to this object so that method calls can be chained together.
* @see InputTimecodeSource
*/
public InputTemplate withTimecodeSource(InputTimecodeSource timecodeSource) {
this.timecodeSource = timecodeSource.toString();
return this;
}
/**
* Specify the timecode that you want the service to use for this input's initial frame. To use this setting, you
* must set the Timecode source setting, located under the input settings, to Specified start. For more information
* about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
*
* @param timecodeStart
* Specify the timecode that you want the service to use for this input's initial frame. To use this setting,
* you must set the Timecode source setting, located under the input settings, to Specified start. For more
* information about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
*/
public void setTimecodeStart(String timecodeStart) {
this.timecodeStart = timecodeStart;
}
/**
* Specify the timecode that you want the service to use for this input's initial frame. To use this setting, you
* must set the Timecode source setting, located under the input settings, to Specified start. For more information
* about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
*
* @return Specify the timecode that you want the service to use for this input's initial frame. To use this
* setting, you must set the Timecode source setting, located under the input settings, to Specified start.
* For more information about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
*/
public String getTimecodeStart() {
return this.timecodeStart;
}
/**
* Specify the timecode that you want the service to use for this input's initial frame. To use this setting, you
* must set the Timecode source setting, located under the input settings, to Specified start. For more information
* about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
*
* @param timecodeStart
* Specify the timecode that you want the service to use for this input's initial frame. To use this setting,
* you must set the Timecode source setting, located under the input settings, to Specified start. For more
* information about timecodes, see https://docs.aws.amazon.com/console/mediaconvert/timecode.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public InputTemplate withTimecodeStart(String timecodeStart) {
setTimecodeStart(timecodeStart);
return this;
}
/**
* Input video selectors contain the video settings for the input. Each of your inputs can have up to one video
* selector.
*
* @param videoSelector
* Input video selectors contain the video settings for the input. Each of your inputs can have up to one
* video selector.
*/
public void setVideoSelector(VideoSelector videoSelector) {
this.videoSelector = videoSelector;
}
/**
* Input video selectors contain the video settings for the input. Each of your inputs can have up to one video
* selector.
*
* @return Input video selectors contain the video settings for the input. Each of your inputs can have up to one
* video selector.
*/
public VideoSelector getVideoSelector() {
return this.videoSelector;
}
/**
* Input video selectors contain the video settings for the input. Each of your inputs can have up to one video
* selector.
*
* @param videoSelector
* Input video selectors contain the video settings for the input. Each of your inputs can have up to one
* video selector.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public InputTemplate withVideoSelector(VideoSelector videoSelector) {
setVideoSelector(videoSelector);
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 (getAdvancedInputFilter() != null)
sb.append("AdvancedInputFilter: ").append(getAdvancedInputFilter()).append(",");
if (getAdvancedInputFilterSettings() != null)
sb.append("AdvancedInputFilterSettings: ").append(getAdvancedInputFilterSettings()).append(",");
if (getAudioSelectorGroups() != null)
sb.append("AudioSelectorGroups: ").append(getAudioSelectorGroups()).append(",");
if (getAudioSelectors() != null)
sb.append("AudioSelectors: ").append(getAudioSelectors()).append(",");
if (getCaptionSelectors() != null)
sb.append("CaptionSelectors: ").append(getCaptionSelectors()).append(",");
if (getCrop() != null)
sb.append("Crop: ").append(getCrop()).append(",");
if (getDeblockFilter() != null)
sb.append("DeblockFilter: ").append(getDeblockFilter()).append(",");
if (getDenoiseFilter() != null)
sb.append("DenoiseFilter: ").append(getDenoiseFilter()).append(",");
if (getDolbyVisionMetadataXml() != null)
sb.append("DolbyVisionMetadataXml: ").append(getDolbyVisionMetadataXml()).append(",");
if (getFilterEnable() != null)
sb.append("FilterEnable: ").append(getFilterEnable()).append(",");
if (getFilterStrength() != null)
sb.append("FilterStrength: ").append(getFilterStrength()).append(",");
if (getImageInserter() != null)
sb.append("ImageInserter: ").append(getImageInserter()).append(",");
if (getInputClippings() != null)
sb.append("InputClippings: ").append(getInputClippings()).append(",");
if (getInputScanType() != null)
sb.append("InputScanType: ").append(getInputScanType()).append(",");
if (getPosition() != null)
sb.append("Position: ").append(getPosition()).append(",");
if (getProgramNumber() != null)
sb.append("ProgramNumber: ").append(getProgramNumber()).append(",");
if (getPsiControl() != null)
sb.append("PsiControl: ").append(getPsiControl()).append(",");
if (getTimecodeSource() != null)
sb.append("TimecodeSource: ").append(getTimecodeSource()).append(",");
if (getTimecodeStart() != null)
sb.append("TimecodeStart: ").append(getTimecodeStart()).append(",");
if (getVideoSelector() != null)
sb.append("VideoSelector: ").append(getVideoSelector());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof InputTemplate == false)
return false;
InputTemplate other = (InputTemplate) obj;
if (other.getAdvancedInputFilter() == null ^ this.getAdvancedInputFilter() == null)
return false;
if (other.getAdvancedInputFilter() != null && other.getAdvancedInputFilter().equals(this.getAdvancedInputFilter()) == false)
return false;
if (other.getAdvancedInputFilterSettings() == null ^ this.getAdvancedInputFilterSettings() == null)
return false;
if (other.getAdvancedInputFilterSettings() != null && other.getAdvancedInputFilterSettings().equals(this.getAdvancedInputFilterSettings()) == false)
return false;
if (other.getAudioSelectorGroups() == null ^ this.getAudioSelectorGroups() == null)
return false;
if (other.getAudioSelectorGroups() != null && other.getAudioSelectorGroups().equals(this.getAudioSelectorGroups()) == false)
return false;
if (other.getAudioSelectors() == null ^ this.getAudioSelectors() == null)
return false;
if (other.getAudioSelectors() != null && other.getAudioSelectors().equals(this.getAudioSelectors()) == false)
return false;
if (other.getCaptionSelectors() == null ^ this.getCaptionSelectors() == null)
return false;
if (other.getCaptionSelectors() != null && other.getCaptionSelectors().equals(this.getCaptionSelectors()) == false)
return false;
if (other.getCrop() == null ^ this.getCrop() == null)
return false;
if (other.getCrop() != null && other.getCrop().equals(this.getCrop()) == false)
return false;
if (other.getDeblockFilter() == null ^ this.getDeblockFilter() == null)
return false;
if (other.getDeblockFilter() != null && other.getDeblockFilter().equals(this.getDeblockFilter()) == false)
return false;
if (other.getDenoiseFilter() == null ^ this.getDenoiseFilter() == null)
return false;
if (other.getDenoiseFilter() != null && other.getDenoiseFilter().equals(this.getDenoiseFilter()) == false)
return false;
if (other.getDolbyVisionMetadataXml() == null ^ this.getDolbyVisionMetadataXml() == null)
return false;
if (other.getDolbyVisionMetadataXml() != null && other.getDolbyVisionMetadataXml().equals(this.getDolbyVisionMetadataXml()) == false)
return false;
if (other.getFilterEnable() == null ^ this.getFilterEnable() == null)
return false;
if (other.getFilterEnable() != null && other.getFilterEnable().equals(this.getFilterEnable()) == false)
return false;
if (other.getFilterStrength() == null ^ this.getFilterStrength() == null)
return false;
if (other.getFilterStrength() != null && other.getFilterStrength().equals(this.getFilterStrength()) == false)
return false;
if (other.getImageInserter() == null ^ this.getImageInserter() == null)
return false;
if (other.getImageInserter() != null && other.getImageInserter().equals(this.getImageInserter()) == false)
return false;
if (other.getInputClippings() == null ^ this.getInputClippings() == null)
return false;
if (other.getInputClippings() != null && other.getInputClippings().equals(this.getInputClippings()) == false)
return false;
if (other.getInputScanType() == null ^ this.getInputScanType() == null)
return false;
if (other.getInputScanType() != null && other.getInputScanType().equals(this.getInputScanType()) == false)
return false;
if (other.getPosition() == null ^ this.getPosition() == null)
return false;
if (other.getPosition() != null && other.getPosition().equals(this.getPosition()) == false)
return false;
if (other.getProgramNumber() == null ^ this.getProgramNumber() == null)
return false;
if (other.getProgramNumber() != null && other.getProgramNumber().equals(this.getProgramNumber()) == false)
return false;
if (other.getPsiControl() == null ^ this.getPsiControl() == null)
return false;
if (other.getPsiControl() != null && other.getPsiControl().equals(this.getPsiControl()) == false)
return false;
if (other.getTimecodeSource() == null ^ this.getTimecodeSource() == null)
return false;
if (other.getTimecodeSource() != null && other.getTimecodeSource().equals(this.getTimecodeSource()) == false)
return false;
if (other.getTimecodeStart() == null ^ this.getTimecodeStart() == null)
return false;
if (other.getTimecodeStart() != null && other.getTimecodeStart().equals(this.getTimecodeStart()) == false)
return false;
if (other.getVideoSelector() == null ^ this.getVideoSelector() == null)
return false;
if (other.getVideoSelector() != null && other.getVideoSelector().equals(this.getVideoSelector()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAdvancedInputFilter() == null) ? 0 : getAdvancedInputFilter().hashCode());
hashCode = prime * hashCode + ((getAdvancedInputFilterSettings() == null) ? 0 : getAdvancedInputFilterSettings().hashCode());
hashCode = prime * hashCode + ((getAudioSelectorGroups() == null) ? 0 : getAudioSelectorGroups().hashCode());
hashCode = prime * hashCode + ((getAudioSelectors() == null) ? 0 : getAudioSelectors().hashCode());
hashCode = prime * hashCode + ((getCaptionSelectors() == null) ? 0 : getCaptionSelectors().hashCode());
hashCode = prime * hashCode + ((getCrop() == null) ? 0 : getCrop().hashCode());
hashCode = prime * hashCode + ((getDeblockFilter() == null) ? 0 : getDeblockFilter().hashCode());
hashCode = prime * hashCode + ((getDenoiseFilter() == null) ? 0 : getDenoiseFilter().hashCode());
hashCode = prime * hashCode + ((getDolbyVisionMetadataXml() == null) ? 0 : getDolbyVisionMetadataXml().hashCode());
hashCode = prime * hashCode + ((getFilterEnable() == null) ? 0 : getFilterEnable().hashCode());
hashCode = prime * hashCode + ((getFilterStrength() == null) ? 0 : getFilterStrength().hashCode());
hashCode = prime * hashCode + ((getImageInserter() == null) ? 0 : getImageInserter().hashCode());
hashCode = prime * hashCode + ((getInputClippings() == null) ? 0 : getInputClippings().hashCode());
hashCode = prime * hashCode + ((getInputScanType() == null) ? 0 : getInputScanType().hashCode());
hashCode = prime * hashCode + ((getPosition() == null) ? 0 : getPosition().hashCode());
hashCode = prime * hashCode + ((getProgramNumber() == null) ? 0 : getProgramNumber().hashCode());
hashCode = prime * hashCode + ((getPsiControl() == null) ? 0 : getPsiControl().hashCode());
hashCode = prime * hashCode + ((getTimecodeSource() == null) ? 0 : getTimecodeSource().hashCode());
hashCode = prime * hashCode + ((getTimecodeStart() == null) ? 0 : getTimecodeStart().hashCode());
hashCode = prime * hashCode + ((getVideoSelector() == null) ? 0 : getVideoSelector().hashCode());
return hashCode;
}
@Override
public InputTemplate clone() {
try {
return (InputTemplate) 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.InputTemplateMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}