/* * Copyright 2018-2023 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.medialive.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** * M2ts Settings * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class M2tsSettings implements Serializable, Cloneable, StructuredPojo { /** * When set to drop, output audio streams will be removed from the program if the selected input audio stream is * removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when not * connected to an active input stream. */ private String absentInputAudioBehavior; /** When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. */ private String arib; /** * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String aribCaptionsPid; /** * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. */ private String aribCaptionsPidControl; /** When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. */ private String audioBufferModel; /** The number of audio frames to insert for each PES packet. */ private Integer audioFramesPerPes; /** * Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, * and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each * PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ private String audioPids; /** * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream * type = 0x06. */ private String audioStreamType; /** * The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically * determine the appropriate bitrate. */ private Integer bitrate; /** * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network packet * timing. Or set to NONE, which might result in lower latency but will result in more variability in output network * packet timing. This variability might cause interruptions, jitter, or bursty behavior in your playback or * receiving devices. */ private String bufferModel; /** When set to enabled, generates captionServiceDescriptor in PMT. */ private String ccDescriptor; /** Inserts DVB Network Information Table (NIT) at the specified table repetition interval. */ private DvbNitSettings dvbNitSettings; /** Inserts DVB Service Description Table (SDT) at the specified table repetition interval. */ private DvbSdtSettings dvbSdtSettings; /** * Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can * be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ private String dvbSubPids; /** Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. */ private DvbTdtSettings dvbTdtSettings; /** * Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String dvbTeletextPid; /** If set to passthrough, passes any EBIF data from the input source to this output. */ private String ebif; /** * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The interval * between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. * Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the * video interval. */ private String ebpAudioInterval; /** * When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by * looking ahead at input video. If another EBP is going to come in within the specified time interval, the current * EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to * the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead * accurate. */ private Integer ebpLookaheadMs; /** * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the video PID * and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. */ private String ebpPlacement; /** This field is unused and deprecated. */ private String ecmPid; /** Include or exclude the ES Rate field in the PES header. */ private String esRateInPes; /** * Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String etvPlatformPid; /** * Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String etvSignalPid; /** The length in seconds of each fragment. Only used with EBP markers. */ private Double fragmentTime; /** If set to passthrough, passes any KLV data from the input source to this output. */ private String klv; /** * Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ private String klvDataPids; /** * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an * equivalent ID3 tag will be inserted in the output. */ private String nielsenId3Behavior; /** * Value in bits per second of extra null packets to insert into the transport stream. This can be used if a * downstream encryption system requires periodic null packets. */ private Double nullPacketBitrate; /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. */ private Integer patInterval; /** * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream * (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary * stream. */ private String pcrControl; /** Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. */ private Integer pcrPeriod; /** * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the * encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid * values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String pcrPid; /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. */ private Integer pmtInterval; /** * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String pmtPid; /** The value of the program number field in the Program Map Table. */ private Integer programNum; /** * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate setting acts * as the maximum bitrate when vbr is set. */ private String rateMode; /** * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ private String scte27Pids; /** Optionally pass SCTE-35 signals from the input source to this output. */ private String scte35Control; /** * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String scte35Pid; /** * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator bit in * the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes. * psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to * the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point * information to the adaptation field using a legacy proprietary format. */ private String segmentationMarkers; /** * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With * avails, it is possible that segments may be truncated, which can influence where future segmentation markers are * inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we will reset * the segmentation cadence. This means the subsequent segment will have a duration of $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we will * not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, * all segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a slight * exception to this rule. */ private String segmentationStyle; /** The length in seconds of each segment. Required unless markers is set to _none_. */ private Double segmentationTime; /** When set to passthrough, timed metadata will be passed through from input to output. */ private String timedMetadataBehavior; /** * Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String timedMetadataPid; /** The value of the transport stream ID field in the Program Map Table. */ private Integer transportStreamId; /** * Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ private String videoPid; /** * Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the amount of * time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video frame it * references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative pullup is not * supported, which means that you can't make the preroll shorter. Be aware that latency in the output will increase * by the pullup amount. */ private Double scte35PrerollPullupMilliseconds; /** * When set to drop, output audio streams will be removed from the program if the selected input audio stream is * removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when not * connected to an active input stream. * * @param absentInputAudioBehavior * When set to drop, output audio streams will be removed from the program if the selected input audio stream * is removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when * not connected to an active input stream. * @see M2tsAbsentInputAudioBehavior */ public void setAbsentInputAudioBehavior(String absentInputAudioBehavior) { this.absentInputAudioBehavior = absentInputAudioBehavior; } /** * When set to drop, output audio streams will be removed from the program if the selected input audio stream is * removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when not * connected to an active input stream. * * @return When set to drop, output audio streams will be removed from the program if the selected input audio * stream is removed from the input. This allows the output audio configuration to dynamically change based * on input configuration. If this is set to encodeSilence, all output audio streams will output encoded * silence when not connected to an active input stream. * @see M2tsAbsentInputAudioBehavior */ public String getAbsentInputAudioBehavior() { return this.absentInputAudioBehavior; } /** * When set to drop, output audio streams will be removed from the program if the selected input audio stream is * removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when not * connected to an active input stream. * * @param absentInputAudioBehavior * When set to drop, output audio streams will be removed from the program if the selected input audio stream * is removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when * not connected to an active input stream. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAbsentInputAudioBehavior */ public M2tsSettings withAbsentInputAudioBehavior(String absentInputAudioBehavior) { setAbsentInputAudioBehavior(absentInputAudioBehavior); return this; } /** * When set to drop, output audio streams will be removed from the program if the selected input audio stream is * removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when not * connected to an active input stream. * * @param absentInputAudioBehavior * When set to drop, output audio streams will be removed from the program if the selected input audio stream * is removed from the input. This allows the output audio configuration to dynamically change based on input * configuration. If this is set to encodeSilence, all output audio streams will output encoded silence when * not connected to an active input stream. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAbsentInputAudioBehavior */ public M2tsSettings withAbsentInputAudioBehavior(M2tsAbsentInputAudioBehavior absentInputAudioBehavior) { this.absentInputAudioBehavior = absentInputAudioBehavior.toString(); return this; } /** * When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * * @param arib * When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * @see M2tsArib */ public void setArib(String arib) { this.arib = arib; } /** * When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * * @return When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * @see M2tsArib */ public String getArib() { return this.arib; } /** * When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * * @param arib * When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsArib */ public M2tsSettings withArib(String arib) { setArib(arib); return this; } /** * When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * * @param arib * When set to enabled, uses ARIB-compliant field muxing and removes video descriptor. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsArib */ public M2tsSettings withArib(M2tsArib arib) { this.arib = arib.toString(); return this; } /** * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param aribCaptionsPid * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setAribCaptionsPid(String aribCaptionsPid) { this.aribCaptionsPid = aribCaptionsPid; } /** * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getAribCaptionsPid() { return this.aribCaptionsPid; } /** * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param aribCaptionsPid * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withAribCaptionsPid(String aribCaptionsPid) { setAribCaptionsPid(aribCaptionsPid); return this; } /** * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * * @param aribCaptionsPidControl * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * @see M2tsAribCaptionsPidControl */ public void setAribCaptionsPidControl(String aribCaptionsPidControl) { this.aribCaptionsPidControl = aribCaptionsPidControl; } /** * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * * @return If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * @see M2tsAribCaptionsPidControl */ public String getAribCaptionsPidControl() { return this.aribCaptionsPidControl; } /** * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * * @param aribCaptionsPidControl * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAribCaptionsPidControl */ public M2tsSettings withAribCaptionsPidControl(String aribCaptionsPidControl) { setAribCaptionsPidControl(aribCaptionsPidControl); return this; } /** * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * * @param aribCaptionsPidControl * If set to auto, pid number used for ARIB Captions will be auto-selected from unused pids. If set to * useConfigured, ARIB Captions will be on the configured pid number. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAribCaptionsPidControl */ public M2tsSettings withAribCaptionsPidControl(M2tsAribCaptionsPidControl aribCaptionsPidControl) { this.aribCaptionsPidControl = aribCaptionsPidControl.toString(); return this; } /** * When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * * @param audioBufferModel * When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * @see M2tsAudioBufferModel */ public void setAudioBufferModel(String audioBufferModel) { this.audioBufferModel = audioBufferModel; } /** * When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * * @return When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * @see M2tsAudioBufferModel */ public String getAudioBufferModel() { return this.audioBufferModel; } /** * When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * * @param audioBufferModel * When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAudioBufferModel */ public M2tsSettings withAudioBufferModel(String audioBufferModel) { setAudioBufferModel(audioBufferModel); return this; } /** * When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * * @param audioBufferModel * When set to dvb, uses DVB buffer model for Dolby Digital audio. When set to atsc, the ATSC model is used. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAudioBufferModel */ public M2tsSettings withAudioBufferModel(M2tsAudioBufferModel audioBufferModel) { this.audioBufferModel = audioBufferModel.toString(); return this; } /** * The number of audio frames to insert for each PES packet. * * @param audioFramesPerPes * The number of audio frames to insert for each PES packet. */ public void setAudioFramesPerPes(Integer audioFramesPerPes) { this.audioFramesPerPes = audioFramesPerPes; } /** * The number of audio frames to insert for each PES packet. * * @return The number of audio frames to insert for each PES packet. */ public Integer getAudioFramesPerPes() { return this.audioFramesPerPes; } /** * The number of audio frames to insert for each PES packet. * * @param audioFramesPerPes * The number of audio frames to insert for each PES packet. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withAudioFramesPerPes(Integer audioFramesPerPes) { setAudioFramesPerPes(audioFramesPerPes); return this; } /** * Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, * and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each * PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param audioPids * Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are * accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or * hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public void setAudioPids(String audioPids) { this.audioPids = audioPids; } /** * Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, * and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each * PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are * accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or * hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public String getAudioPids() { return this.audioPids; } /** * Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are accepted, * and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each * PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param audioPids * Packet Identifier (PID) of the elementary audio stream(s) in the transport stream. Multiple values are * accepted, and can be entered in ranges and/or by comma separation. Can be entered as decimal or * hexadecimal values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withAudioPids(String audioPids) { setAudioPids(audioPids); return this; } /** * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream * type = 0x06. * * @param audioStreamType * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses * stream type = 0x06. * @see M2tsAudioStreamType */ public void setAudioStreamType(String audioStreamType) { this.audioStreamType = audioStreamType; } /** * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream * type = 0x06. * * @return When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses * stream type = 0x06. * @see M2tsAudioStreamType */ public String getAudioStreamType() { return this.audioStreamType; } /** * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream * type = 0x06. * * @param audioStreamType * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses * stream type = 0x06. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAudioStreamType */ public M2tsSettings withAudioStreamType(String audioStreamType) { setAudioStreamType(audioStreamType); return this; } /** * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream * type = 0x06. * * @param audioStreamType * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for EAC3. When set to dvb, uses * stream type = 0x06. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAudioStreamType */ public M2tsSettings withAudioStreamType(M2tsAudioStreamType audioStreamType) { this.audioStreamType = audioStreamType.toString(); return this; } /** * The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically * determine the appropriate bitrate. * * @param bitrate * The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically * determine the appropriate bitrate. */ public void setBitrate(Integer bitrate) { this.bitrate = bitrate; } /** * The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically * determine the appropriate bitrate. * * @return The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically * determine the appropriate bitrate. */ public Integer getBitrate() { return this.bitrate; } /** * The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically * determine the appropriate bitrate. * * @param bitrate * The output bitrate of the transport stream in bits per second. Setting to 0 lets the muxer automatically * determine the appropriate bitrate. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withBitrate(Integer bitrate) { setBitrate(bitrate); return this; } /** * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network packet * timing. Or set to NONE, which might result in lower latency but will result in more variability in output network * packet timing. This variability might cause interruptions, jitter, or bursty behavior in your playback or * receiving devices. * * @param bufferModel * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network * packet timing. Or set to NONE, which might result in lower latency but will result in more variability in * output network packet timing. This variability might cause interruptions, jitter, or bursty behavior in * your playback or receiving devices. * @see M2tsBufferModel */ public void setBufferModel(String bufferModel) { this.bufferModel = bufferModel; } /** * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network packet * timing. Or set to NONE, which might result in lower latency but will result in more variability in output network * packet timing. This variability might cause interruptions, jitter, or bursty behavior in your playback or * receiving devices. * * @return Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network * packet timing. Or set to NONE, which might result in lower latency but will result in more variability in * output network packet timing. This variability might cause interruptions, jitter, or bursty behavior in * your playback or receiving devices. * @see M2tsBufferModel */ public String getBufferModel() { return this.bufferModel; } /** * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network packet * timing. Or set to NONE, which might result in lower latency but will result in more variability in output network * packet timing. This variability might cause interruptions, jitter, or bursty behavior in your playback or * receiving devices. * * @param bufferModel * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network * packet timing. Or set to NONE, which might result in lower latency but will result in more variability in * output network packet timing. This variability might cause interruptions, jitter, or bursty behavior in * your playback or receiving devices. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsBufferModel */ public M2tsSettings withBufferModel(String bufferModel) { setBufferModel(bufferModel); return this; } /** * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network packet * timing. Or set to NONE, which might result in lower latency but will result in more variability in output network * packet timing. This variability might cause interruptions, jitter, or bursty behavior in your playback or * receiving devices. * * @param bufferModel * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to ensure accurate network * packet timing. Or set to NONE, which might result in lower latency but will result in more variability in * output network packet timing. This variability might cause interruptions, jitter, or bursty behavior in * your playback or receiving devices. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsBufferModel */ public M2tsSettings withBufferModel(M2tsBufferModel bufferModel) { this.bufferModel = bufferModel.toString(); return this; } /** * When set to enabled, generates captionServiceDescriptor in PMT. * * @param ccDescriptor * When set to enabled, generates captionServiceDescriptor in PMT. * @see M2tsCcDescriptor */ public void setCcDescriptor(String ccDescriptor) { this.ccDescriptor = ccDescriptor; } /** * When set to enabled, generates captionServiceDescriptor in PMT. * * @return When set to enabled, generates captionServiceDescriptor in PMT. * @see M2tsCcDescriptor */ public String getCcDescriptor() { return this.ccDescriptor; } /** * When set to enabled, generates captionServiceDescriptor in PMT. * * @param ccDescriptor * When set to enabled, generates captionServiceDescriptor in PMT. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsCcDescriptor */ public M2tsSettings withCcDescriptor(String ccDescriptor) { setCcDescriptor(ccDescriptor); return this; } /** * When set to enabled, generates captionServiceDescriptor in PMT. * * @param ccDescriptor * When set to enabled, generates captionServiceDescriptor in PMT. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsCcDescriptor */ public M2tsSettings withCcDescriptor(M2tsCcDescriptor ccDescriptor) { this.ccDescriptor = ccDescriptor.toString(); return this; } /** * Inserts DVB Network Information Table (NIT) at the specified table repetition interval. * * @param dvbNitSettings * Inserts DVB Network Information Table (NIT) at the specified table repetition interval. */ public void setDvbNitSettings(DvbNitSettings dvbNitSettings) { this.dvbNitSettings = dvbNitSettings; } /** * Inserts DVB Network Information Table (NIT) at the specified table repetition interval. * * @return Inserts DVB Network Information Table (NIT) at the specified table repetition interval. */ public DvbNitSettings getDvbNitSettings() { return this.dvbNitSettings; } /** * Inserts DVB Network Information Table (NIT) at the specified table repetition interval. * * @param dvbNitSettings * Inserts DVB Network Information Table (NIT) at the specified table repetition interval. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withDvbNitSettings(DvbNitSettings dvbNitSettings) { setDvbNitSettings(dvbNitSettings); return this; } /** * Inserts DVB Service Description Table (SDT) at the specified table repetition interval. * * @param dvbSdtSettings * Inserts DVB Service Description Table (SDT) at the specified table repetition interval. */ public void setDvbSdtSettings(DvbSdtSettings dvbSdtSettings) { this.dvbSdtSettings = dvbSdtSettings; } /** * Inserts DVB Service Description Table (SDT) at the specified table repetition interval. * * @return Inserts DVB Service Description Table (SDT) at the specified table repetition interval. */ public DvbSdtSettings getDvbSdtSettings() { return this.dvbSdtSettings; } /** * Inserts DVB Service Description Table (SDT) at the specified table repetition interval. * * @param dvbSdtSettings * Inserts DVB Service Description Table (SDT) at the specified table repetition interval. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withDvbSdtSettings(DvbSdtSettings dvbSdtSettings) { setDvbSdtSettings(dvbSdtSettings); return this; } /** * Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can * be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param dvbSubPids * Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, * and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. * Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public void setDvbSubPids(String dvbSubPids) { this.dvbSubPids = dvbSubPids; } /** * Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can * be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, * and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. * Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public String getDvbSubPids() { return this.dvbSubPids; } /** * Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, and can * be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param dvbSubPids * Packet Identifier (PID) for input source DVB Subtitle data to this output. Multiple values are accepted, * and can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. * Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withDvbSubPids(String dvbSubPids) { setDvbSubPids(dvbSubPids); return this; } /** * Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. * * @param dvbTdtSettings * Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. */ public void setDvbTdtSettings(DvbTdtSettings dvbTdtSettings) { this.dvbTdtSettings = dvbTdtSettings; } /** * Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. * * @return Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. */ public DvbTdtSettings getDvbTdtSettings() { return this.dvbTdtSettings; } /** * Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. * * @param dvbTdtSettings * Inserts DVB Time and Date Table (TDT) at the specified table repetition interval. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withDvbTdtSettings(DvbTdtSettings dvbTdtSettings) { setDvbTdtSettings(dvbTdtSettings); return this; } /** * Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param dvbTeletextPid * Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setDvbTeletextPid(String dvbTeletextPid) { this.dvbTeletextPid = dvbTeletextPid; } /** * Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getDvbTeletextPid() { return this.dvbTeletextPid; } /** * Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param dvbTeletextPid * Packet Identifier (PID) for input source DVB Teletext data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withDvbTeletextPid(String dvbTeletextPid) { setDvbTeletextPid(dvbTeletextPid); return this; } /** * If set to passthrough, passes any EBIF data from the input source to this output. * * @param ebif * If set to passthrough, passes any EBIF data from the input source to this output. * @see M2tsEbifControl */ public void setEbif(String ebif) { this.ebif = ebif; } /** * If set to passthrough, passes any EBIF data from the input source to this output. * * @return If set to passthrough, passes any EBIF data from the input source to this output. * @see M2tsEbifControl */ public String getEbif() { return this.ebif; } /** * If set to passthrough, passes any EBIF data from the input source to this output. * * @param ebif * If set to passthrough, passes any EBIF data from the input source to this output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsEbifControl */ public M2tsSettings withEbif(String ebif) { setEbif(ebif); return this; } /** * If set to passthrough, passes any EBIF data from the input source to this output. * * @param ebif * If set to passthrough, passes any EBIF data from the input source to this output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsEbifControl */ public M2tsSettings withEbif(M2tsEbifControl ebif) { this.ebif = ebif.toString(); return this; } /** * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The interval * between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. * Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the * video interval. * * @param ebpAudioInterval * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The * interval between these additional markers will be fixed, and will be slightly shorter than the video EBP * marker interval. Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 * will always follow the video interval. * @see M2tsAudioInterval */ public void setEbpAudioInterval(String ebpAudioInterval) { this.ebpAudioInterval = ebpAudioInterval; } /** * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The interval * between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. * Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the * video interval. * * @return When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The * interval between these additional markers will be fixed, and will be slightly shorter than the video EBP * marker interval. Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 * will always follow the video interval. * @see M2tsAudioInterval */ public String getEbpAudioInterval() { return this.ebpAudioInterval; } /** * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The interval * between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. * Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the * video interval. * * @param ebpAudioInterval * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The * interval between these additional markers will be fixed, and will be slightly shorter than the video EBP * marker interval. Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 * will always follow the video interval. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAudioInterval */ public M2tsSettings withEbpAudioInterval(String ebpAudioInterval) { setEbpAudioInterval(ebpAudioInterval); return this; } /** * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The interval * between these additional markers will be fixed, and will be slightly shorter than the video EBP marker interval. * Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the * video interval. * * @param ebpAudioInterval * When videoAndFixedIntervals is selected, audio EBP markers will be added to partitions 3 and 4. The * interval between these additional markers will be fixed, and will be slightly shorter than the video EBP * marker interval. Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 * will always follow the video interval. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsAudioInterval */ public M2tsSettings withEbpAudioInterval(M2tsAudioInterval ebpAudioInterval) { this.ebpAudioInterval = ebpAudioInterval.toString(); return this; } /** * When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by * looking ahead at input video. If another EBP is going to come in within the specified time interval, the current * EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to * the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead * accurate. * * @param ebpLookaheadMs * When set, enforces that Encoder Boundary Points do not come within the specified time interval of each * other by looking ahead at input video. If another EBP is going to come in within the specified time * interval, the current EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead * value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient * latency to make the lookahead accurate. */ public void setEbpLookaheadMs(Integer ebpLookaheadMs) { this.ebpLookaheadMs = ebpLookaheadMs; } /** * When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by * looking ahead at input video. If another EBP is going to come in within the specified time interval, the current * EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to * the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead * accurate. * * @return When set, enforces that Encoder Boundary Points do not come within the specified time interval of each * other by looking ahead at input video. If another EBP is going to come in within the specified time * interval, the current EBP is not emitted, and the segment is "stretched" to the next marker. The * lookahead value does not add latency to the system. The Live Event must be configured elsewhere to create * sufficient latency to make the lookahead accurate. */ public Integer getEbpLookaheadMs() { return this.ebpLookaheadMs; } /** * When set, enforces that Encoder Boundary Points do not come within the specified time interval of each other by * looking ahead at input video. If another EBP is going to come in within the specified time interval, the current * EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead value does not add latency to * the system. The Live Event must be configured elsewhere to create sufficient latency to make the lookahead * accurate. * * @param ebpLookaheadMs * When set, enforces that Encoder Boundary Points do not come within the specified time interval of each * other by looking ahead at input video. If another EBP is going to come in within the specified time * interval, the current EBP is not emitted, and the segment is "stretched" to the next marker. The lookahead * value does not add latency to the system. The Live Event must be configured elsewhere to create sufficient * latency to make the lookahead accurate. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withEbpLookaheadMs(Integer ebpLookaheadMs) { setEbpLookaheadMs(ebpLookaheadMs); return this; } /** * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the video PID * and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * * @param ebpPlacement * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the * video PID and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * @see M2tsEbpPlacement */ public void setEbpPlacement(String ebpPlacement) { this.ebpPlacement = ebpPlacement; } /** * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the video PID * and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * * @return Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the * video PID and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * @see M2tsEbpPlacement */ public String getEbpPlacement() { return this.ebpPlacement; } /** * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the video PID * and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * * @param ebpPlacement * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the * video PID and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsEbpPlacement */ public M2tsSettings withEbpPlacement(String ebpPlacement) { setEbpPlacement(ebpPlacement); return this; } /** * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the video PID * and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * * @param ebpPlacement * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP markers will be placed on the * video PID and all audio PIDs. If set to videoPid, EBP markers will be placed on only the video PID. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsEbpPlacement */ public M2tsSettings withEbpPlacement(M2tsEbpPlacement ebpPlacement) { this.ebpPlacement = ebpPlacement.toString(); return this; } /** * This field is unused and deprecated. * * @param ecmPid * This field is unused and deprecated. */ public void setEcmPid(String ecmPid) { this.ecmPid = ecmPid; } /** * This field is unused and deprecated. * * @return This field is unused and deprecated. */ public String getEcmPid() { return this.ecmPid; } /** * This field is unused and deprecated. * * @param ecmPid * This field is unused and deprecated. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withEcmPid(String ecmPid) { setEcmPid(ecmPid); return this; } /** * Include or exclude the ES Rate field in the PES header. * * @param esRateInPes * Include or exclude the ES Rate field in the PES header. * @see M2tsEsRateInPes */ public void setEsRateInPes(String esRateInPes) { this.esRateInPes = esRateInPes; } /** * Include or exclude the ES Rate field in the PES header. * * @return Include or exclude the ES Rate field in the PES header. * @see M2tsEsRateInPes */ public String getEsRateInPes() { return this.esRateInPes; } /** * Include or exclude the ES Rate field in the PES header. * * @param esRateInPes * Include or exclude the ES Rate field in the PES header. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsEsRateInPes */ public M2tsSettings withEsRateInPes(String esRateInPes) { setEsRateInPes(esRateInPes); return this; } /** * Include or exclude the ES Rate field in the PES header. * * @param esRateInPes * Include or exclude the ES Rate field in the PES header. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsEsRateInPes */ public M2tsSettings withEsRateInPes(M2tsEsRateInPes esRateInPes) { this.esRateInPes = esRateInPes.toString(); return this; } /** * Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param etvPlatformPid * Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setEtvPlatformPid(String etvPlatformPid) { this.etvPlatformPid = etvPlatformPid; } /** * Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getEtvPlatformPid() { return this.etvPlatformPid; } /** * Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param etvPlatformPid * Packet Identifier (PID) for input source ETV Platform data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withEtvPlatformPid(String etvPlatformPid) { setEtvPlatformPid(etvPlatformPid); return this; } /** * Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param etvSignalPid * Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setEtvSignalPid(String etvSignalPid) { this.etvSignalPid = etvSignalPid; } /** * Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getEtvSignalPid() { return this.etvSignalPid; } /** * Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param etvSignalPid * Packet Identifier (PID) for input source ETV Signal data to this output. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withEtvSignalPid(String etvSignalPid) { setEtvSignalPid(etvSignalPid); return this; } /** * The length in seconds of each fragment. Only used with EBP markers. * * @param fragmentTime * The length in seconds of each fragment. Only used with EBP markers. */ public void setFragmentTime(Double fragmentTime) { this.fragmentTime = fragmentTime; } /** * The length in seconds of each fragment. Only used with EBP markers. * * @return The length in seconds of each fragment. Only used with EBP markers. */ public Double getFragmentTime() { return this.fragmentTime; } /** * The length in seconds of each fragment. Only used with EBP markers. * * @param fragmentTime * The length in seconds of each fragment. Only used with EBP markers. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withFragmentTime(Double fragmentTime) { setFragmentTime(fragmentTime); return this; } /** * If set to passthrough, passes any KLV data from the input source to this output. * * @param klv * If set to passthrough, passes any KLV data from the input source to this output. * @see M2tsKlv */ public void setKlv(String klv) { this.klv = klv; } /** * If set to passthrough, passes any KLV data from the input source to this output. * * @return If set to passthrough, passes any KLV data from the input source to this output. * @see M2tsKlv */ public String getKlv() { return this.klv; } /** * If set to passthrough, passes any KLV data from the input source to this output. * * @param klv * If set to passthrough, passes any KLV data from the input source to this output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsKlv */ public M2tsSettings withKlv(String klv) { setKlv(klv); return this; } /** * If set to passthrough, passes any KLV data from the input source to this output. * * @param klv * If set to passthrough, passes any KLV data from the input source to this output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsKlv */ public M2tsSettings withKlv(M2tsKlv klv) { this.klv = klv.toString(); return this; } /** * Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param klvDataPids * Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public void setKlvDataPids(String klvDataPids) { this.klvDataPids = klvDataPids; } /** * Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can * be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each * PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public String getKlvDataPids() { return this.klvDataPids; } /** * Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param klvDataPids * Packet Identifier (PID) for input source KLV data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withKlvDataPids(String klvDataPids) { setKlvDataPids(klvDataPids); return this; } /** * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an * equivalent ID3 tag will be inserted in the output. * * @param nielsenId3Behavior * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and * an equivalent ID3 tag will be inserted in the output. * @see M2tsNielsenId3Behavior */ public void setNielsenId3Behavior(String nielsenId3Behavior) { this.nielsenId3Behavior = nielsenId3Behavior; } /** * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an * equivalent ID3 tag will be inserted in the output. * * @return If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and * an equivalent ID3 tag will be inserted in the output. * @see M2tsNielsenId3Behavior */ public String getNielsenId3Behavior() { return this.nielsenId3Behavior; } /** * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an * equivalent ID3 tag will be inserted in the output. * * @param nielsenId3Behavior * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and * an equivalent ID3 tag will be inserted in the output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsNielsenId3Behavior */ public M2tsSettings withNielsenId3Behavior(String nielsenId3Behavior) { setNielsenId3Behavior(nielsenId3Behavior); return this; } /** * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and an * equivalent ID3 tag will be inserted in the output. * * @param nielsenId3Behavior * If set to passthrough, Nielsen inaudible tones for media tracking will be detected in the input audio and * an equivalent ID3 tag will be inserted in the output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsNielsenId3Behavior */ public M2tsSettings withNielsenId3Behavior(M2tsNielsenId3Behavior nielsenId3Behavior) { this.nielsenId3Behavior = nielsenId3Behavior.toString(); return this; } /** * Value in bits per second of extra null packets to insert into the transport stream. This can be used if a * downstream encryption system requires periodic null packets. * * @param nullPacketBitrate * Value in bits per second of extra null packets to insert into the transport stream. This can be used if a * downstream encryption system requires periodic null packets. */ public void setNullPacketBitrate(Double nullPacketBitrate) { this.nullPacketBitrate = nullPacketBitrate; } /** * Value in bits per second of extra null packets to insert into the transport stream. This can be used if a * downstream encryption system requires periodic null packets. * * @return Value in bits per second of extra null packets to insert into the transport stream. This can be used if a * downstream encryption system requires periodic null packets. */ public Double getNullPacketBitrate() { return this.nullPacketBitrate; } /** * Value in bits per second of extra null packets to insert into the transport stream. This can be used if a * downstream encryption system requires periodic null packets. * * @param nullPacketBitrate * Value in bits per second of extra null packets to insert into the transport stream. This can be used if a * downstream encryption system requires periodic null packets. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withNullPacketBitrate(Double nullPacketBitrate) { setNullPacketBitrate(nullPacketBitrate); return this; } /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. * * @param patInterval * The number of milliseconds between instances of this table in the output transport stream. Valid values * are 0, 10..1000. */ public void setPatInterval(Integer patInterval) { this.patInterval = patInterval; } /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. * * @return The number of milliseconds between instances of this table in the output transport stream. Valid values * are 0, 10..1000. */ public Integer getPatInterval() { return this.patInterval; } /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. * * @param patInterval * The number of milliseconds between instances of this table in the output transport stream. Valid values * are 0, 10..1000. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withPatInterval(Integer patInterval) { setPatInterval(patInterval); return this; } /** * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream * (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary * stream. * * @param pcrControl * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary * Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio * elementary stream. * @see M2tsPcrControl */ public void setPcrControl(String pcrControl) { this.pcrControl = pcrControl; } /** * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream * (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary * stream. * * @return When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized * Elementary Stream (PES) header. This parameter is effective only when the PCR PID is the same as the * video or audio elementary stream. * @see M2tsPcrControl */ public String getPcrControl() { return this.pcrControl; } /** * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream * (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary * stream. * * @param pcrControl * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary * Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio * elementary stream. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsPcrControl */ public M2tsSettings withPcrControl(String pcrControl) { setPcrControl(pcrControl); return this; } /** * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary Stream * (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio elementary * stream. * * @param pcrControl * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for every Packetized Elementary * Stream (PES) header. This parameter is effective only when the PCR PID is the same as the video or audio * elementary stream. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsPcrControl */ public M2tsSettings withPcrControl(M2tsPcrControl pcrControl) { this.pcrControl = pcrControl.toString(); return this; } /** * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. * * @param pcrPeriod * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. */ public void setPcrPeriod(Integer pcrPeriod) { this.pcrPeriod = pcrPeriod; } /** * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. * * @return Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. */ public Integer getPcrPeriod() { return this.pcrPeriod; } /** * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. * * @param pcrPeriod * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted into the transport stream. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withPcrPeriod(Integer pcrPeriod) { setPcrPeriod(pcrPeriod); return this; } /** * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the * encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid * values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param pcrPid * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is * given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setPcrPid(String pcrPid) { this.pcrPid = pcrPid; } /** * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the * encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid * values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is * given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getPcrPid() { return this.pcrPid; } /** * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is given, the * encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid * values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param pcrPid * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport stream. When no value is * given, the encoder will assign the same value as the Video PID. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withPcrPid(String pcrPid) { setPcrPid(pcrPid); return this; } /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. * * @param pmtInterval * The number of milliseconds between instances of this table in the output transport stream. Valid values * are 0, 10..1000. */ public void setPmtInterval(Integer pmtInterval) { this.pmtInterval = pmtInterval; } /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. * * @return The number of milliseconds between instances of this table in the output transport stream. Valid values * are 0, 10..1000. */ public Integer getPmtInterval() { return this.pmtInterval; } /** * The number of milliseconds between instances of this table in the output transport stream. Valid values are 0, * 10..1000. * * @param pmtInterval * The number of milliseconds between instances of this table in the output transport stream. Valid values * are 0, 10..1000. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withPmtInterval(Integer pmtInterval) { setPmtInterval(pmtInterval); return this; } /** * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param pmtPid * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a * decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setPmtPid(String pmtPid) { this.pmtPid = pmtPid; } /** * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a * decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getPmtPid() { return this.pmtPid; } /** * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param pmtPid * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream. Can be entered as a * decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withPmtPid(String pmtPid) { setPmtPid(pmtPid); return this; } /** * The value of the program number field in the Program Map Table. * * @param programNum * The value of the program number field in the Program Map Table. */ public void setProgramNum(Integer programNum) { this.programNum = programNum; } /** * The value of the program number field in the Program Map Table. * * @return The value of the program number field in the Program Map Table. */ public Integer getProgramNum() { return this.programNum; } /** * The value of the program number field in the Program Map Table. * * @param programNum * The value of the program number field in the Program Map Table. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withProgramNum(Integer programNum) { setProgramNum(programNum); return this; } /** * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate setting acts * as the maximum bitrate when vbr is set. * * @param rateMode * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate * setting acts as the maximum bitrate when vbr is set. * @see M2tsRateMode */ public void setRateMode(String rateMode) { this.rateMode = rateMode; } /** * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate setting acts * as the maximum bitrate when vbr is set. * * @return When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate * setting acts as the maximum bitrate when vbr is set. * @see M2tsRateMode */ public String getRateMode() { return this.rateMode; } /** * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate setting acts * as the maximum bitrate when vbr is set. * * @param rateMode * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate * setting acts as the maximum bitrate when vbr is set. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsRateMode */ public M2tsSettings withRateMode(String rateMode) { setRateMode(rateMode); return this; } /** * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate setting acts * as the maximum bitrate when vbr is set. * * @param rateMode * When vbr, does not insert null packets into transport stream to fill specified bitrate. The bitrate * setting acts as the maximum bitrate when vbr is set. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsRateMode */ public M2tsSettings withRateMode(M2tsRateMode rateMode) { this.rateMode = rateMode.toString(); return this; } /** * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param scte27Pids * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and * can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each * PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public void setScte27Pids(String scte27Pids) { this.scte27Pids = scte27Pids; } /** * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and * can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. * Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). */ public String getScte27Pids() { return this.scte27Pids; } /** * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and can be * entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * * @param scte27Pids * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple values are accepted, and * can be entered in ranges and/or by comma separation. Can be entered as decimal or hexadecimal values. Each * PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withScte27Pids(String scte27Pids) { setScte27Pids(scte27Pids); return this; } /** * Optionally pass SCTE-35 signals from the input source to this output. * * @param scte35Control * Optionally pass SCTE-35 signals from the input source to this output. * @see M2tsScte35Control */ public void setScte35Control(String scte35Control) { this.scte35Control = scte35Control; } /** * Optionally pass SCTE-35 signals from the input source to this output. * * @return Optionally pass SCTE-35 signals from the input source to this output. * @see M2tsScte35Control */ public String getScte35Control() { return this.scte35Control; } /** * Optionally pass SCTE-35 signals from the input source to this output. * * @param scte35Control * Optionally pass SCTE-35 signals from the input source to this output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsScte35Control */ public M2tsSettings withScte35Control(String scte35Control) { setScte35Control(scte35Control); return this; } /** * Optionally pass SCTE-35 signals from the input source to this output. * * @param scte35Control * Optionally pass SCTE-35 signals from the input source to this output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsScte35Control */ public M2tsSettings withScte35Control(M2tsScte35Control scte35Control) { this.scte35Control = scte35Control.toString(); return this; } /** * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param scte35Pid * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setScte35Pid(String scte35Pid) { this.scte35Pid = scte35Pid; } /** * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getScte35Pid() { return this.scte35Pid; } /** * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or hexadecimal * value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param scte35Pid * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withScte35Pid(String scte35Pid) { setScte35Pid(scte35Pid); return this; } /** * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator bit in * the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes. * psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to * the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point * information to the adaptation field using a legacy proprietary format. * * @param segmentationMarkers * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator * bit in the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data * bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point * information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds * Encoder Boundary Point information to the adaptation field using a legacy proprietary format. * @see M2tsSegmentationMarkers */ public void setSegmentationMarkers(String segmentationMarkers) { this.segmentationMarkers = segmentationMarkers; } /** * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator bit in * the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes. * psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to * the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point * information to the adaptation field using a legacy proprietary format. * * @return Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access * Indicator bit in the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the * private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder * Boundary Point information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. * ebpLegacy adds Encoder Boundary Point information to the adaptation field using a legacy proprietary * format. * @see M2tsSegmentationMarkers */ public String getSegmentationMarkers() { return this.segmentationMarkers; } /** * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator bit in * the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes. * psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to * the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point * information to the adaptation field using a legacy proprietary format. * * @param segmentationMarkers * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator * bit in the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data * bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point * information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds * Encoder Boundary Point information to the adaptation field using a legacy proprietary format. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsSegmentationMarkers */ public M2tsSettings withSegmentationMarkers(String segmentationMarkers) { setSegmentationMarkers(segmentationMarkers); return this; } /** * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator bit in * the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes. * psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to * the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point * information to the adaptation field using a legacy proprietary format. * * @param segmentationMarkers * Inserts segmentation markers at each segmentationTime period. raiSegstart sets the Random Access Indicator * bit in the adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private data * bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point * information to the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds * Encoder Boundary Point information to the adaptation field using a legacy proprietary format. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsSegmentationMarkers */ public M2tsSettings withSegmentationMarkers(M2tsSegmentationMarkers segmentationMarkers) { this.segmentationMarkers = segmentationMarkers.toString(); return this; } /** * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With * avails, it is possible that segments may be truncated, which can influence where future segmentation markers are * inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we will reset * the segmentation cadence. This means the subsequent segment will have a duration of $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we will * not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, * all segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a slight * exception to this rule. * * @param segmentationStyle * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. * With avails, it is possible that segments may be truncated, which can influence where future segmentation * markers are inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we * will reset the segmentation cadence. This means the subsequent segment will have a duration of * $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we * will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as * well. However, all segments after that will have a duration of $segmentationTime seconds. Note that EBP * lookahead is a slight exception to this rule. * @see M2tsSegmentationStyle */ public void setSegmentationStyle(String segmentationStyle) { this.segmentationStyle = segmentationStyle; } /** * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With * avails, it is possible that segments may be truncated, which can influence where future segmentation markers are * inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we will reset * the segmentation cadence. This means the subsequent segment will have a duration of $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we will * not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, * all segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a slight * exception to this rule. * * @return The segmentation style parameter controls how segmentation markers are inserted into the transport * stream. With avails, it is possible that segments may be truncated, which can influence where future * segmentation markers are inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we * will reset the segmentation cadence. This means the subsequent segment will have a duration of * $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we * will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as * well. However, all segments after that will have a duration of $segmentationTime seconds. Note that EBP * lookahead is a slight exception to this rule. * @see M2tsSegmentationStyle */ public String getSegmentationStyle() { return this.segmentationStyle; } /** * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With * avails, it is possible that segments may be truncated, which can influence where future segmentation markers are * inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we will reset * the segmentation cadence. This means the subsequent segment will have a duration of $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we will * not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, * all segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a slight * exception to this rule. * * @param segmentationStyle * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. * With avails, it is possible that segments may be truncated, which can influence where future segmentation * markers are inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we * will reset the segmentation cadence. This means the subsequent segment will have a duration of * $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we * will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as * well. However, all segments after that will have a duration of $segmentationTime seconds. Note that EBP * lookahead is a slight exception to this rule. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsSegmentationStyle */ public M2tsSettings withSegmentationStyle(String segmentationStyle) { setSegmentationStyle(segmentationStyle); return this; } /** * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. With * avails, it is possible that segments may be truncated, which can influence where future segmentation markers are * inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we will reset * the segmentation cadence. This means the subsequent segment will have a duration of $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we will * not reset the segmentation cadence. This means the subsequent segment will likely be truncated as well. However, * all segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a slight * exception to this rule. * * @param segmentationStyle * The segmentation style parameter controls how segmentation markers are inserted into the transport stream. * With avails, it is possible that segments may be truncated, which can influence where future segmentation * markers are inserted. * * When a segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we * will reset the segmentation cadence. This means the subsequent segment will have a duration of * $segmentationTime seconds. * * When a segmentation style of "maintainCadence" is selected and a segment is truncated due to an avail, we * will not reset the segmentation cadence. This means the subsequent segment will likely be truncated as * well. However, all segments after that will have a duration of $segmentationTime seconds. Note that EBP * lookahead is a slight exception to this rule. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsSegmentationStyle */ public M2tsSettings withSegmentationStyle(M2tsSegmentationStyle segmentationStyle) { this.segmentationStyle = segmentationStyle.toString(); return this; } /** * The length in seconds of each segment. Required unless markers is set to _none_. * * @param segmentationTime * The length in seconds of each segment. Required unless markers is set to _none_. */ public void setSegmentationTime(Double segmentationTime) { this.segmentationTime = segmentationTime; } /** * The length in seconds of each segment. Required unless markers is set to _none_. * * @return The length in seconds of each segment. Required unless markers is set to _none_. */ public Double getSegmentationTime() { return this.segmentationTime; } /** * The length in seconds of each segment. Required unless markers is set to _none_. * * @param segmentationTime * The length in seconds of each segment. Required unless markers is set to _none_. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withSegmentationTime(Double segmentationTime) { setSegmentationTime(segmentationTime); return this; } /** * When set to passthrough, timed metadata will be passed through from input to output. * * @param timedMetadataBehavior * When set to passthrough, timed metadata will be passed through from input to output. * @see M2tsTimedMetadataBehavior */ public void setTimedMetadataBehavior(String timedMetadataBehavior) { this.timedMetadataBehavior = timedMetadataBehavior; } /** * When set to passthrough, timed metadata will be passed through from input to output. * * @return When set to passthrough, timed metadata will be passed through from input to output. * @see M2tsTimedMetadataBehavior */ public String getTimedMetadataBehavior() { return this.timedMetadataBehavior; } /** * When set to passthrough, timed metadata will be passed through from input to output. * * @param timedMetadataBehavior * When set to passthrough, timed metadata will be passed through from input to output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsTimedMetadataBehavior */ public M2tsSettings withTimedMetadataBehavior(String timedMetadataBehavior) { setTimedMetadataBehavior(timedMetadataBehavior); return this; } /** * When set to passthrough, timed metadata will be passed through from input to output. * * @param timedMetadataBehavior * When set to passthrough, timed metadata will be passed through from input to output. * @return Returns a reference to this object so that method calls can be chained together. * @see M2tsTimedMetadataBehavior */ public M2tsSettings withTimedMetadataBehavior(M2tsTimedMetadataBehavior timedMetadataBehavior) { this.timedMetadataBehavior = timedMetadataBehavior.toString(); return this; } /** * Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param timedMetadataPid * Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal * or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setTimedMetadataPid(String timedMetadataPid) { this.timedMetadataPid = timedMetadataPid; } /** * Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal * or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getTimedMetadataPid() { return this.timedMetadataPid; } /** * Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param timedMetadataPid * Packet Identifier (PID) of the timed metadata stream in the transport stream. Can be entered as a decimal * or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withTimedMetadataPid(String timedMetadataPid) { setTimedMetadataPid(timedMetadataPid); return this; } /** * The value of the transport stream ID field in the Program Map Table. * * @param transportStreamId * The value of the transport stream ID field in the Program Map Table. */ public void setTransportStreamId(Integer transportStreamId) { this.transportStreamId = transportStreamId; } /** * The value of the transport stream ID field in the Program Map Table. * * @return The value of the transport stream ID field in the Program Map Table. */ public Integer getTransportStreamId() { return this.transportStreamId; } /** * The value of the transport stream ID field in the Program Map Table. * * @param transportStreamId * The value of the transport stream ID field in the Program Map Table. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withTransportStreamId(Integer transportStreamId) { setTransportStreamId(transportStreamId); return this; } /** * Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param videoPid * Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a * decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public void setVideoPid(String videoPid) { this.videoPid = videoPid; } /** * Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @return Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a * decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). */ public String getVideoPid() { return this.videoPid; } /** * Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a decimal or * hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * * @param videoPid * Packet Identifier (PID) of the elementary video stream in the transport stream. Can be entered as a * decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6). * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withVideoPid(String videoPid) { setVideoPid(videoPid); return this; } /** * Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the amount of * time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video frame it * references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative pullup is not * supported, which means that you can't make the preroll shorter. Be aware that latency in the output will increase * by the pullup amount. * * @param scte35PrerollPullupMilliseconds * Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the * amount of time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video * frame it references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative * pullup is not supported, which means that you can't make the preroll shorter. Be aware that latency in the * output will increase by the pullup amount. */ public void setScte35PrerollPullupMilliseconds(Double scte35PrerollPullupMilliseconds) { this.scte35PrerollPullupMilliseconds = scte35PrerollPullupMilliseconds; } /** * Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the amount of * time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video frame it * references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative pullup is not * supported, which means that you can't make the preroll shorter. Be aware that latency in the output will increase * by the pullup amount. * * @return Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the * amount of time between the presence of a SCTE-35 indication in a transport stream and the PTS of the * video frame it references. Zero means don't add pullup (it doesn't mean set the preroll to zero). * Negative pullup is not supported, which means that you can't make the preroll shorter. Be aware that * latency in the output will increase by the pullup amount. */ public Double getScte35PrerollPullupMilliseconds() { return this.scte35PrerollPullupMilliseconds; } /** * Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the amount of * time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video frame it * references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative pullup is not * supported, which means that you can't make the preroll shorter. Be aware that latency in the output will increase * by the pullup amount. * * @param scte35PrerollPullupMilliseconds * Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the output. Preroll is the * amount of time between the presence of a SCTE-35 indication in a transport stream and the PTS of the video * frame it references. Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative * pullup is not supported, which means that you can't make the preroll shorter. Be aware that latency in the * output will increase by the pullup amount. * @return Returns a reference to this object so that method calls can be chained together. */ public M2tsSettings withScte35PrerollPullupMilliseconds(Double scte35PrerollPullupMilliseconds) { setScte35PrerollPullupMilliseconds(scte35PrerollPullupMilliseconds); 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 (getAbsentInputAudioBehavior() != null) sb.append("AbsentInputAudioBehavior: ").append(getAbsentInputAudioBehavior()).append(","); if (getArib() != null) sb.append("Arib: ").append(getArib()).append(","); if (getAribCaptionsPid() != null) sb.append("AribCaptionsPid: ").append(getAribCaptionsPid()).append(","); if (getAribCaptionsPidControl() != null) sb.append("AribCaptionsPidControl: ").append(getAribCaptionsPidControl()).append(","); if (getAudioBufferModel() != null) sb.append("AudioBufferModel: ").append(getAudioBufferModel()).append(","); if (getAudioFramesPerPes() != null) sb.append("AudioFramesPerPes: ").append(getAudioFramesPerPes()).append(","); if (getAudioPids() != null) sb.append("AudioPids: ").append(getAudioPids()).append(","); if (getAudioStreamType() != null) sb.append("AudioStreamType: ").append(getAudioStreamType()).append(","); if (getBitrate() != null) sb.append("Bitrate: ").append(getBitrate()).append(","); if (getBufferModel() != null) sb.append("BufferModel: ").append(getBufferModel()).append(","); if (getCcDescriptor() != null) sb.append("CcDescriptor: ").append(getCcDescriptor()).append(","); if (getDvbNitSettings() != null) sb.append("DvbNitSettings: ").append(getDvbNitSettings()).append(","); if (getDvbSdtSettings() != null) sb.append("DvbSdtSettings: ").append(getDvbSdtSettings()).append(","); if (getDvbSubPids() != null) sb.append("DvbSubPids: ").append(getDvbSubPids()).append(","); if (getDvbTdtSettings() != null) sb.append("DvbTdtSettings: ").append(getDvbTdtSettings()).append(","); if (getDvbTeletextPid() != null) sb.append("DvbTeletextPid: ").append(getDvbTeletextPid()).append(","); if (getEbif() != null) sb.append("Ebif: ").append(getEbif()).append(","); if (getEbpAudioInterval() != null) sb.append("EbpAudioInterval: ").append(getEbpAudioInterval()).append(","); if (getEbpLookaheadMs() != null) sb.append("EbpLookaheadMs: ").append(getEbpLookaheadMs()).append(","); if (getEbpPlacement() != null) sb.append("EbpPlacement: ").append(getEbpPlacement()).append(","); if (getEcmPid() != null) sb.append("EcmPid: ").append(getEcmPid()).append(","); if (getEsRateInPes() != null) sb.append("EsRateInPes: ").append(getEsRateInPes()).append(","); if (getEtvPlatformPid() != null) sb.append("EtvPlatformPid: ").append(getEtvPlatformPid()).append(","); if (getEtvSignalPid() != null) sb.append("EtvSignalPid: ").append(getEtvSignalPid()).append(","); if (getFragmentTime() != null) sb.append("FragmentTime: ").append(getFragmentTime()).append(","); if (getKlv() != null) sb.append("Klv: ").append(getKlv()).append(","); if (getKlvDataPids() != null) sb.append("KlvDataPids: ").append(getKlvDataPids()).append(","); if (getNielsenId3Behavior() != null) sb.append("NielsenId3Behavior: ").append(getNielsenId3Behavior()).append(","); if (getNullPacketBitrate() != null) sb.append("NullPacketBitrate: ").append(getNullPacketBitrate()).append(","); if (getPatInterval() != null) sb.append("PatInterval: ").append(getPatInterval()).append(","); if (getPcrControl() != null) sb.append("PcrControl: ").append(getPcrControl()).append(","); if (getPcrPeriod() != null) sb.append("PcrPeriod: ").append(getPcrPeriod()).append(","); if (getPcrPid() != null) sb.append("PcrPid: ").append(getPcrPid()).append(","); if (getPmtInterval() != null) sb.append("PmtInterval: ").append(getPmtInterval()).append(","); if (getPmtPid() != null) sb.append("PmtPid: ").append(getPmtPid()).append(","); if (getProgramNum() != null) sb.append("ProgramNum: ").append(getProgramNum()).append(","); if (getRateMode() != null) sb.append("RateMode: ").append(getRateMode()).append(","); if (getScte27Pids() != null) sb.append("Scte27Pids: ").append(getScte27Pids()).append(","); if (getScte35Control() != null) sb.append("Scte35Control: ").append(getScte35Control()).append(","); if (getScte35Pid() != null) sb.append("Scte35Pid: ").append(getScte35Pid()).append(","); if (getSegmentationMarkers() != null) sb.append("SegmentationMarkers: ").append(getSegmentationMarkers()).append(","); if (getSegmentationStyle() != null) sb.append("SegmentationStyle: ").append(getSegmentationStyle()).append(","); if (getSegmentationTime() != null) sb.append("SegmentationTime: ").append(getSegmentationTime()).append(","); if (getTimedMetadataBehavior() != null) sb.append("TimedMetadataBehavior: ").append(getTimedMetadataBehavior()).append(","); if (getTimedMetadataPid() != null) sb.append("TimedMetadataPid: ").append(getTimedMetadataPid()).append(","); if (getTransportStreamId() != null) sb.append("TransportStreamId: ").append(getTransportStreamId()).append(","); if (getVideoPid() != null) sb.append("VideoPid: ").append(getVideoPid()).append(","); if (getScte35PrerollPullupMilliseconds() != null) sb.append("Scte35PrerollPullupMilliseconds: ").append(getScte35PrerollPullupMilliseconds()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof M2tsSettings == false) return false; M2tsSettings other = (M2tsSettings) obj; if (other.getAbsentInputAudioBehavior() == null ^ this.getAbsentInputAudioBehavior() == null) return false; if (other.getAbsentInputAudioBehavior() != null && other.getAbsentInputAudioBehavior().equals(this.getAbsentInputAudioBehavior()) == false) return false; if (other.getArib() == null ^ this.getArib() == null) return false; if (other.getArib() != null && other.getArib().equals(this.getArib()) == false) return false; if (other.getAribCaptionsPid() == null ^ this.getAribCaptionsPid() == null) return false; if (other.getAribCaptionsPid() != null && other.getAribCaptionsPid().equals(this.getAribCaptionsPid()) == false) return false; if (other.getAribCaptionsPidControl() == null ^ this.getAribCaptionsPidControl() == null) return false; if (other.getAribCaptionsPidControl() != null && other.getAribCaptionsPidControl().equals(this.getAribCaptionsPidControl()) == false) return false; if (other.getAudioBufferModel() == null ^ this.getAudioBufferModel() == null) return false; if (other.getAudioBufferModel() != null && other.getAudioBufferModel().equals(this.getAudioBufferModel()) == false) return false; if (other.getAudioFramesPerPes() == null ^ this.getAudioFramesPerPes() == null) return false; if (other.getAudioFramesPerPes() != null && other.getAudioFramesPerPes().equals(this.getAudioFramesPerPes()) == false) return false; if (other.getAudioPids() == null ^ this.getAudioPids() == null) return false; if (other.getAudioPids() != null && other.getAudioPids().equals(this.getAudioPids()) == false) return false; if (other.getAudioStreamType() == null ^ this.getAudioStreamType() == null) return false; if (other.getAudioStreamType() != null && other.getAudioStreamType().equals(this.getAudioStreamType()) == false) return false; if (other.getBitrate() == null ^ this.getBitrate() == null) return false; if (other.getBitrate() != null && other.getBitrate().equals(this.getBitrate()) == false) return false; if (other.getBufferModel() == null ^ this.getBufferModel() == null) return false; if (other.getBufferModel() != null && other.getBufferModel().equals(this.getBufferModel()) == false) return false; if (other.getCcDescriptor() == null ^ this.getCcDescriptor() == null) return false; if (other.getCcDescriptor() != null && other.getCcDescriptor().equals(this.getCcDescriptor()) == false) return false; if (other.getDvbNitSettings() == null ^ this.getDvbNitSettings() == null) return false; if (other.getDvbNitSettings() != null && other.getDvbNitSettings().equals(this.getDvbNitSettings()) == false) return false; if (other.getDvbSdtSettings() == null ^ this.getDvbSdtSettings() == null) return false; if (other.getDvbSdtSettings() != null && other.getDvbSdtSettings().equals(this.getDvbSdtSettings()) == false) return false; if (other.getDvbSubPids() == null ^ this.getDvbSubPids() == null) return false; if (other.getDvbSubPids() != null && other.getDvbSubPids().equals(this.getDvbSubPids()) == false) return false; if (other.getDvbTdtSettings() == null ^ this.getDvbTdtSettings() == null) return false; if (other.getDvbTdtSettings() != null && other.getDvbTdtSettings().equals(this.getDvbTdtSettings()) == false) return false; if (other.getDvbTeletextPid() == null ^ this.getDvbTeletextPid() == null) return false; if (other.getDvbTeletextPid() != null && other.getDvbTeletextPid().equals(this.getDvbTeletextPid()) == false) return false; if (other.getEbif() == null ^ this.getEbif() == null) return false; if (other.getEbif() != null && other.getEbif().equals(this.getEbif()) == false) return false; if (other.getEbpAudioInterval() == null ^ this.getEbpAudioInterval() == null) return false; if (other.getEbpAudioInterval() != null && other.getEbpAudioInterval().equals(this.getEbpAudioInterval()) == false) return false; if (other.getEbpLookaheadMs() == null ^ this.getEbpLookaheadMs() == null) return false; if (other.getEbpLookaheadMs() != null && other.getEbpLookaheadMs().equals(this.getEbpLookaheadMs()) == false) return false; if (other.getEbpPlacement() == null ^ this.getEbpPlacement() == null) return false; if (other.getEbpPlacement() != null && other.getEbpPlacement().equals(this.getEbpPlacement()) == false) return false; if (other.getEcmPid() == null ^ this.getEcmPid() == null) return false; if (other.getEcmPid() != null && other.getEcmPid().equals(this.getEcmPid()) == false) return false; if (other.getEsRateInPes() == null ^ this.getEsRateInPes() == null) return false; if (other.getEsRateInPes() != null && other.getEsRateInPes().equals(this.getEsRateInPes()) == false) return false; if (other.getEtvPlatformPid() == null ^ this.getEtvPlatformPid() == null) return false; if (other.getEtvPlatformPid() != null && other.getEtvPlatformPid().equals(this.getEtvPlatformPid()) == false) return false; if (other.getEtvSignalPid() == null ^ this.getEtvSignalPid() == null) return false; if (other.getEtvSignalPid() != null && other.getEtvSignalPid().equals(this.getEtvSignalPid()) == false) return false; if (other.getFragmentTime() == null ^ this.getFragmentTime() == null) return false; if (other.getFragmentTime() != null && other.getFragmentTime().equals(this.getFragmentTime()) == false) return false; if (other.getKlv() == null ^ this.getKlv() == null) return false; if (other.getKlv() != null && other.getKlv().equals(this.getKlv()) == false) return false; if (other.getKlvDataPids() == null ^ this.getKlvDataPids() == null) return false; if (other.getKlvDataPids() != null && other.getKlvDataPids().equals(this.getKlvDataPids()) == false) return false; if (other.getNielsenId3Behavior() == null ^ this.getNielsenId3Behavior() == null) return false; if (other.getNielsenId3Behavior() != null && other.getNielsenId3Behavior().equals(this.getNielsenId3Behavior()) == false) return false; if (other.getNullPacketBitrate() == null ^ this.getNullPacketBitrate() == null) return false; if (other.getNullPacketBitrate() != null && other.getNullPacketBitrate().equals(this.getNullPacketBitrate()) == false) return false; if (other.getPatInterval() == null ^ this.getPatInterval() == null) return false; if (other.getPatInterval() != null && other.getPatInterval().equals(this.getPatInterval()) == false) return false; if (other.getPcrControl() == null ^ this.getPcrControl() == null) return false; if (other.getPcrControl() != null && other.getPcrControl().equals(this.getPcrControl()) == false) return false; if (other.getPcrPeriod() == null ^ this.getPcrPeriod() == null) return false; if (other.getPcrPeriod() != null && other.getPcrPeriod().equals(this.getPcrPeriod()) == false) return false; if (other.getPcrPid() == null ^ this.getPcrPid() == null) return false; if (other.getPcrPid() != null && other.getPcrPid().equals(this.getPcrPid()) == false) return false; if (other.getPmtInterval() == null ^ this.getPmtInterval() == null) return false; if (other.getPmtInterval() != null && other.getPmtInterval().equals(this.getPmtInterval()) == false) return false; if (other.getPmtPid() == null ^ this.getPmtPid() == null) return false; if (other.getPmtPid() != null && other.getPmtPid().equals(this.getPmtPid()) == false) return false; if (other.getProgramNum() == null ^ this.getProgramNum() == null) return false; if (other.getProgramNum() != null && other.getProgramNum().equals(this.getProgramNum()) == false) return false; if (other.getRateMode() == null ^ this.getRateMode() == null) return false; if (other.getRateMode() != null && other.getRateMode().equals(this.getRateMode()) == false) return false; if (other.getScte27Pids() == null ^ this.getScte27Pids() == null) return false; if (other.getScte27Pids() != null && other.getScte27Pids().equals(this.getScte27Pids()) == false) return false; if (other.getScte35Control() == null ^ this.getScte35Control() == null) return false; if (other.getScte35Control() != null && other.getScte35Control().equals(this.getScte35Control()) == false) return false; if (other.getScte35Pid() == null ^ this.getScte35Pid() == null) return false; if (other.getScte35Pid() != null && other.getScte35Pid().equals(this.getScte35Pid()) == false) return false; if (other.getSegmentationMarkers() == null ^ this.getSegmentationMarkers() == null) return false; if (other.getSegmentationMarkers() != null && other.getSegmentationMarkers().equals(this.getSegmentationMarkers()) == false) return false; if (other.getSegmentationStyle() == null ^ this.getSegmentationStyle() == null) return false; if (other.getSegmentationStyle() != null && other.getSegmentationStyle().equals(this.getSegmentationStyle()) == false) return false; if (other.getSegmentationTime() == null ^ this.getSegmentationTime() == null) return false; if (other.getSegmentationTime() != null && other.getSegmentationTime().equals(this.getSegmentationTime()) == false) return false; if (other.getTimedMetadataBehavior() == null ^ this.getTimedMetadataBehavior() == null) return false; if (other.getTimedMetadataBehavior() != null && other.getTimedMetadataBehavior().equals(this.getTimedMetadataBehavior()) == false) return false; if (other.getTimedMetadataPid() == null ^ this.getTimedMetadataPid() == null) return false; if (other.getTimedMetadataPid() != null && other.getTimedMetadataPid().equals(this.getTimedMetadataPid()) == false) return false; if (other.getTransportStreamId() == null ^ this.getTransportStreamId() == null) return false; if (other.getTransportStreamId() != null && other.getTransportStreamId().equals(this.getTransportStreamId()) == false) return false; if (other.getVideoPid() == null ^ this.getVideoPid() == null) return false; if (other.getVideoPid() != null && other.getVideoPid().equals(this.getVideoPid()) == false) return false; if (other.getScte35PrerollPullupMilliseconds() == null ^ this.getScte35PrerollPullupMilliseconds() == null) return false; if (other.getScte35PrerollPullupMilliseconds() != null && other.getScte35PrerollPullupMilliseconds().equals(this.getScte35PrerollPullupMilliseconds()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getAbsentInputAudioBehavior() == null) ? 0 : getAbsentInputAudioBehavior().hashCode()); hashCode = prime * hashCode + ((getArib() == null) ? 0 : getArib().hashCode()); hashCode = prime * hashCode + ((getAribCaptionsPid() == null) ? 0 : getAribCaptionsPid().hashCode()); hashCode = prime * hashCode + ((getAribCaptionsPidControl() == null) ? 0 : getAribCaptionsPidControl().hashCode()); hashCode = prime * hashCode + ((getAudioBufferModel() == null) ? 0 : getAudioBufferModel().hashCode()); hashCode = prime * hashCode + ((getAudioFramesPerPes() == null) ? 0 : getAudioFramesPerPes().hashCode()); hashCode = prime * hashCode + ((getAudioPids() == null) ? 0 : getAudioPids().hashCode()); hashCode = prime * hashCode + ((getAudioStreamType() == null) ? 0 : getAudioStreamType().hashCode()); hashCode = prime * hashCode + ((getBitrate() == null) ? 0 : getBitrate().hashCode()); hashCode = prime * hashCode + ((getBufferModel() == null) ? 0 : getBufferModel().hashCode()); hashCode = prime * hashCode + ((getCcDescriptor() == null) ? 0 : getCcDescriptor().hashCode()); hashCode = prime * hashCode + ((getDvbNitSettings() == null) ? 0 : getDvbNitSettings().hashCode()); hashCode = prime * hashCode + ((getDvbSdtSettings() == null) ? 0 : getDvbSdtSettings().hashCode()); hashCode = prime * hashCode + ((getDvbSubPids() == null) ? 0 : getDvbSubPids().hashCode()); hashCode = prime * hashCode + ((getDvbTdtSettings() == null) ? 0 : getDvbTdtSettings().hashCode()); hashCode = prime * hashCode + ((getDvbTeletextPid() == null) ? 0 : getDvbTeletextPid().hashCode()); hashCode = prime * hashCode + ((getEbif() == null) ? 0 : getEbif().hashCode()); hashCode = prime * hashCode + ((getEbpAudioInterval() == null) ? 0 : getEbpAudioInterval().hashCode()); hashCode = prime * hashCode + ((getEbpLookaheadMs() == null) ? 0 : getEbpLookaheadMs().hashCode()); hashCode = prime * hashCode + ((getEbpPlacement() == null) ? 0 : getEbpPlacement().hashCode()); hashCode = prime * hashCode + ((getEcmPid() == null) ? 0 : getEcmPid().hashCode()); hashCode = prime * hashCode + ((getEsRateInPes() == null) ? 0 : getEsRateInPes().hashCode()); hashCode = prime * hashCode + ((getEtvPlatformPid() == null) ? 0 : getEtvPlatformPid().hashCode()); hashCode = prime * hashCode + ((getEtvSignalPid() == null) ? 0 : getEtvSignalPid().hashCode()); hashCode = prime * hashCode + ((getFragmentTime() == null) ? 0 : getFragmentTime().hashCode()); hashCode = prime * hashCode + ((getKlv() == null) ? 0 : getKlv().hashCode()); hashCode = prime * hashCode + ((getKlvDataPids() == null) ? 0 : getKlvDataPids().hashCode()); hashCode = prime * hashCode + ((getNielsenId3Behavior() == null) ? 0 : getNielsenId3Behavior().hashCode()); hashCode = prime * hashCode + ((getNullPacketBitrate() == null) ? 0 : getNullPacketBitrate().hashCode()); hashCode = prime * hashCode + ((getPatInterval() == null) ? 0 : getPatInterval().hashCode()); hashCode = prime * hashCode + ((getPcrControl() == null) ? 0 : getPcrControl().hashCode()); hashCode = prime * hashCode + ((getPcrPeriod() == null) ? 0 : getPcrPeriod().hashCode()); hashCode = prime * hashCode + ((getPcrPid() == null) ? 0 : getPcrPid().hashCode()); hashCode = prime * hashCode + ((getPmtInterval() == null) ? 0 : getPmtInterval().hashCode()); hashCode = prime * hashCode + ((getPmtPid() == null) ? 0 : getPmtPid().hashCode()); hashCode = prime * hashCode + ((getProgramNum() == null) ? 0 : getProgramNum().hashCode()); hashCode = prime * hashCode + ((getRateMode() == null) ? 0 : getRateMode().hashCode()); hashCode = prime * hashCode + ((getScte27Pids() == null) ? 0 : getScte27Pids().hashCode()); hashCode = prime * hashCode + ((getScte35Control() == null) ? 0 : getScte35Control().hashCode()); hashCode = prime * hashCode + ((getScte35Pid() == null) ? 0 : getScte35Pid().hashCode()); hashCode = prime * hashCode + ((getSegmentationMarkers() == null) ? 0 : getSegmentationMarkers().hashCode()); hashCode = prime * hashCode + ((getSegmentationStyle() == null) ? 0 : getSegmentationStyle().hashCode()); hashCode = prime * hashCode + ((getSegmentationTime() == null) ? 0 : getSegmentationTime().hashCode()); hashCode = prime * hashCode + ((getTimedMetadataBehavior() == null) ? 0 : getTimedMetadataBehavior().hashCode()); hashCode = prime * hashCode + ((getTimedMetadataPid() == null) ? 0 : getTimedMetadataPid().hashCode()); hashCode = prime * hashCode + ((getTransportStreamId() == null) ? 0 : getTransportStreamId().hashCode()); hashCode = prime * hashCode + ((getVideoPid() == null) ? 0 : getVideoPid().hashCode()); hashCode = prime * hashCode + ((getScte35PrerollPullupMilliseconds() == null) ? 0 : getScte35PrerollPullupMilliseconds().hashCode()); return hashCode; } @Override public M2tsSettings clone() { try { return (M2tsSettings) 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.medialive.model.transform.M2tsSettingsMarshaller.getInstance().marshall(this, protocolMarshaller); } }