{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.MediaLive.Types.M2tsSettings
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MediaLive.Types.M2tsSettings where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MediaLive.Types.DvbNitSettings
import Amazonka.MediaLive.Types.DvbSdtSettings
import Amazonka.MediaLive.Types.DvbTdtSettings
import Amazonka.MediaLive.Types.M2tsAbsentInputAudioBehavior
import Amazonka.MediaLive.Types.M2tsArib
import Amazonka.MediaLive.Types.M2tsAribCaptionsPidControl
import Amazonka.MediaLive.Types.M2tsAudioBufferModel
import Amazonka.MediaLive.Types.M2tsAudioInterval
import Amazonka.MediaLive.Types.M2tsAudioStreamType
import Amazonka.MediaLive.Types.M2tsBufferModel
import Amazonka.MediaLive.Types.M2tsCcDescriptor
import Amazonka.MediaLive.Types.M2tsEbifControl
import Amazonka.MediaLive.Types.M2tsEbpPlacement
import Amazonka.MediaLive.Types.M2tsEsRateInPes
import Amazonka.MediaLive.Types.M2tsKlv
import Amazonka.MediaLive.Types.M2tsNielsenId3Behavior
import Amazonka.MediaLive.Types.M2tsPcrControl
import Amazonka.MediaLive.Types.M2tsRateMode
import Amazonka.MediaLive.Types.M2tsScte35Control
import Amazonka.MediaLive.Types.M2tsSegmentationMarkers
import Amazonka.MediaLive.Types.M2tsSegmentationStyle
import Amazonka.MediaLive.Types.M2tsTimedMetadataBehavior
import qualified Amazonka.Prelude as Prelude

-- | M2ts Settings
--
-- /See:/ 'newM2tsSettings' smart constructor.
data M2tsSettings = M2tsSettings'
  { -- | 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.
    M2tsSettings -> Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior :: Prelude.Maybe M2tsAbsentInputAudioBehavior,
    -- | When set to enabled, uses ARIB-compliant field muxing and removes video
    -- descriptor.
    M2tsSettings -> Maybe M2tsArib
arib :: Prelude.Maybe M2tsArib,
    -- | 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).
    M2tsSettings -> Maybe Text
aribCaptionsPid :: Prelude.Maybe Prelude.Text,
    -- | 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.
    M2tsSettings -> Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl :: Prelude.Maybe M2tsAribCaptionsPidControl,
    -- | When set to dvb, uses DVB buffer model for Dolby Digital audio. When set
    -- to atsc, the ATSC model is used.
    M2tsSettings -> Maybe M2tsAudioBufferModel
audioBufferModel :: Prelude.Maybe M2tsAudioBufferModel,
    -- | The number of audio frames to insert for each PES packet.
    M2tsSettings -> Maybe Natural
audioFramesPerPes :: Prelude.Maybe Prelude.Natural,
    -- | 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).
    M2tsSettings -> Maybe Text
audioPids :: Prelude.Maybe Prelude.Text,
    -- | When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87
    -- for EAC3. When set to dvb, uses stream type = 0x06.
    M2tsSettings -> Maybe M2tsAudioStreamType
audioStreamType :: Prelude.Maybe M2tsAudioStreamType,
    -- | The output bitrate of the transport stream in bits per second. Setting
    -- to 0 lets the muxer automatically determine the appropriate bitrate.
    M2tsSettings -> Maybe Natural
bitrate :: Prelude.Maybe Prelude.Natural,
    -- | 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.
    M2tsSettings -> Maybe M2tsBufferModel
bufferModel :: Prelude.Maybe M2tsBufferModel,
    -- | When set to enabled, generates captionServiceDescriptor in PMT.
    M2tsSettings -> Maybe M2tsCcDescriptor
ccDescriptor :: Prelude.Maybe M2tsCcDescriptor,
    -- | Inserts DVB Network Information Table (NIT) at the specified table
    -- repetition interval.
    M2tsSettings -> Maybe DvbNitSettings
dvbNitSettings :: Prelude.Maybe DvbNitSettings,
    -- | Inserts DVB Service Description Table (SDT) at the specified table
    -- repetition interval.
    M2tsSettings -> Maybe DvbSdtSettings
dvbSdtSettings :: Prelude.Maybe 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).
    M2tsSettings -> Maybe Text
dvbSubPids :: Prelude.Maybe Prelude.Text,
    -- | Inserts DVB Time and Date Table (TDT) at the specified table repetition
    -- interval.
    M2tsSettings -> Maybe DvbTdtSettings
dvbTdtSettings :: Prelude.Maybe 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).
    M2tsSettings -> Maybe Text
dvbTeletextPid :: Prelude.Maybe Prelude.Text,
    -- | If set to passthrough, passes any EBIF data from the input source to
    -- this output.
    M2tsSettings -> Maybe M2tsEbifControl
ebif :: Prelude.Maybe M2tsEbifControl,
    -- | 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.
    M2tsSettings -> Maybe M2tsAudioInterval
ebpAudioInterval :: Prelude.Maybe M2tsAudioInterval,
    -- | 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.
    M2tsSettings -> Maybe Natural
ebpLookaheadMs :: Prelude.Maybe Prelude.Natural,
    -- | 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.
    M2tsSettings -> Maybe M2tsEbpPlacement
ebpPlacement :: Prelude.Maybe M2tsEbpPlacement,
    -- | This field is unused and deprecated.
    M2tsSettings -> Maybe Text
ecmPid :: Prelude.Maybe Prelude.Text,
    -- | Include or exclude the ES Rate field in the PES header.
    M2tsSettings -> Maybe M2tsEsRateInPes
esRateInPes :: Prelude.Maybe M2tsEsRateInPes,
    -- | 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).
    M2tsSettings -> Maybe Text
etvPlatformPid :: Prelude.Maybe Prelude.Text,
    -- | 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).
    M2tsSettings -> Maybe Text
etvSignalPid :: Prelude.Maybe Prelude.Text,
    -- | The length in seconds of each fragment. Only used with EBP markers.
    M2tsSettings -> Maybe Double
fragmentTime :: Prelude.Maybe Prelude.Double,
    -- | If set to passthrough, passes any KLV data from the input source to this
    -- output.
    M2tsSettings -> Maybe M2tsKlv
klv :: Prelude.Maybe M2tsKlv,
    -- | 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).
    M2tsSettings -> Maybe Text
klvDataPids :: Prelude.Maybe Prelude.Text,
    -- | 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.
    M2tsSettings -> Maybe M2tsNielsenId3Behavior
nielsenId3Behavior :: Prelude.Maybe M2tsNielsenId3Behavior,
    -- | 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.
    M2tsSettings -> Maybe Double
nullPacketBitrate :: Prelude.Maybe Prelude.Double,
    -- | The number of milliseconds between instances of this table in the output
    -- transport stream. Valid values are 0, 10..1000.
    M2tsSettings -> Maybe Natural
patInterval :: Prelude.Maybe Prelude.Natural,
    -- | 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.
    M2tsSettings -> Maybe M2tsPcrControl
pcrControl :: Prelude.Maybe M2tsPcrControl,
    -- | Maximum time in milliseconds between Program Clock Reference (PCRs)
    -- inserted into the transport stream.
    M2tsSettings -> Maybe Natural
pcrPeriod :: Prelude.Maybe Prelude.Natural,
    -- | 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).
    M2tsSettings -> Maybe Text
pcrPid :: Prelude.Maybe Prelude.Text,
    -- | The number of milliseconds between instances of this table in the output
    -- transport stream. Valid values are 0, 10..1000.
    M2tsSettings -> Maybe Natural
pmtInterval :: Prelude.Maybe Prelude.Natural,
    -- | 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).
    M2tsSettings -> Maybe Text
pmtPid :: Prelude.Maybe Prelude.Text,
    -- | The value of the program number field in the Program Map Table.
    M2tsSettings -> Maybe Natural
programNum :: Prelude.Maybe Prelude.Natural,
    -- | 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.
    M2tsSettings -> Maybe M2tsRateMode
rateMode :: Prelude.Maybe M2tsRateMode,
    -- | 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).
    M2tsSettings -> Maybe Text
scte27Pids :: Prelude.Maybe Prelude.Text,
    -- | Optionally pass SCTE-35 signals from the input source to this output.
    M2tsSettings -> Maybe M2tsScte35Control
scte35Control :: Prelude.Maybe M2tsScte35Control,
    -- | 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).
    M2tsSettings -> Maybe Text
scte35Pid :: Prelude.Maybe Prelude.Text,
    -- | 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.
    M2tsSettings -> Maybe M2tsSegmentationMarkers
segmentationMarkers :: Prelude.Maybe M2tsSegmentationMarkers,
    -- | 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.
    M2tsSettings -> Maybe M2tsSegmentationStyle
segmentationStyle :: Prelude.Maybe M2tsSegmentationStyle,
    -- | The length in seconds of each segment. Required unless markers is set to
    -- _none_.
    M2tsSettings -> Maybe Double
segmentationTime :: Prelude.Maybe Prelude.Double,
    -- | When set to passthrough, timed metadata will be passed through from
    -- input to output.
    M2tsSettings -> Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior :: Prelude.Maybe M2tsTimedMetadataBehavior,
    -- | 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).
    M2tsSettings -> Maybe Text
timedMetadataPid :: Prelude.Maybe Prelude.Text,
    -- | The value of the transport stream ID field in the Program Map Table.
    M2tsSettings -> Maybe Natural
transportStreamId :: Prelude.Maybe Prelude.Natural,
    -- | 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).
    M2tsSettings -> Maybe Text
videoPid :: Prelude.Maybe Prelude.Text
  }
  deriving (M2tsSettings -> M2tsSettings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: M2tsSettings -> M2tsSettings -> Bool
$c/= :: M2tsSettings -> M2tsSettings -> Bool
== :: M2tsSettings -> M2tsSettings -> Bool
$c== :: M2tsSettings -> M2tsSettings -> Bool
Prelude.Eq, ReadPrec [M2tsSettings]
ReadPrec M2tsSettings
Int -> ReadS M2tsSettings
ReadS [M2tsSettings]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [M2tsSettings]
$creadListPrec :: ReadPrec [M2tsSettings]
readPrec :: ReadPrec M2tsSettings
$creadPrec :: ReadPrec M2tsSettings
readList :: ReadS [M2tsSettings]
$creadList :: ReadS [M2tsSettings]
readsPrec :: Int -> ReadS M2tsSettings
$creadsPrec :: Int -> ReadS M2tsSettings
Prelude.Read, Int -> M2tsSettings -> ShowS
[M2tsSettings] -> ShowS
M2tsSettings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [M2tsSettings] -> ShowS
$cshowList :: [M2tsSettings] -> ShowS
show :: M2tsSettings -> String
$cshow :: M2tsSettings -> String
showsPrec :: Int -> M2tsSettings -> ShowS
$cshowsPrec :: Int -> M2tsSettings -> ShowS
Prelude.Show, forall x. Rep M2tsSettings x -> M2tsSettings
forall x. M2tsSettings -> Rep M2tsSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep M2tsSettings x -> M2tsSettings
$cfrom :: forall x. M2tsSettings -> Rep M2tsSettings x
Prelude.Generic)

-- |
-- Create a value of 'M2tsSettings' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'absentInputAudioBehavior', 'm2tsSettings_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.
--
-- 'arib', 'm2tsSettings_arib' - When set to enabled, uses ARIB-compliant field muxing and removes video
-- descriptor.
--
-- 'aribCaptionsPid', 'm2tsSettings_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).
--
-- 'aribCaptionsPidControl', 'm2tsSettings_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.
--
-- 'audioBufferModel', 'm2tsSettings_audioBufferModel' - When set to dvb, uses DVB buffer model for Dolby Digital audio. When set
-- to atsc, the ATSC model is used.
--
-- 'audioFramesPerPes', 'm2tsSettings_audioFramesPerPes' - The number of audio frames to insert for each PES packet.
--
-- 'audioPids', 'm2tsSettings_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).
--
-- 'audioStreamType', 'm2tsSettings_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.
--
-- 'bitrate', 'm2tsSettings_bitrate' - The output bitrate of the transport stream in bits per second. Setting
-- to 0 lets the muxer automatically determine the appropriate bitrate.
--
-- 'bufferModel', 'm2tsSettings_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.
--
-- 'ccDescriptor', 'm2tsSettings_ccDescriptor' - When set to enabled, generates captionServiceDescriptor in PMT.
--
-- 'dvbNitSettings', 'm2tsSettings_dvbNitSettings' - Inserts DVB Network Information Table (NIT) at the specified table
-- repetition interval.
--
-- 'dvbSdtSettings', 'm2tsSettings_dvbSdtSettings' - Inserts DVB Service Description Table (SDT) at the specified table
-- repetition interval.
--
-- 'dvbSubPids', 'm2tsSettings_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).
--
-- 'dvbTdtSettings', 'm2tsSettings_dvbTdtSettings' - Inserts DVB Time and Date Table (TDT) at the specified table repetition
-- interval.
--
-- 'dvbTeletextPid', 'm2tsSettings_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).
--
-- 'ebif', 'm2tsSettings_ebif' - If set to passthrough, passes any EBIF data from the input source to
-- this output.
--
-- 'ebpAudioInterval', 'm2tsSettings_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.
--
-- 'ebpLookaheadMs', 'm2tsSettings_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.
--
-- 'ebpPlacement', 'm2tsSettings_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.
--
-- 'ecmPid', 'm2tsSettings_ecmPid' - This field is unused and deprecated.
--
-- 'esRateInPes', 'm2tsSettings_esRateInPes' - Include or exclude the ES Rate field in the PES header.
--
-- 'etvPlatformPid', 'm2tsSettings_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).
--
-- 'etvSignalPid', 'm2tsSettings_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).
--
-- 'fragmentTime', 'm2tsSettings_fragmentTime' - The length in seconds of each fragment. Only used with EBP markers.
--
-- 'klv', 'm2tsSettings_klv' - If set to passthrough, passes any KLV data from the input source to this
-- output.
--
-- 'klvDataPids', 'm2tsSettings_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).
--
-- 'nielsenId3Behavior', 'm2tsSettings_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.
--
-- 'nullPacketBitrate', 'm2tsSettings_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.
--
-- 'patInterval', 'm2tsSettings_patInterval' - The number of milliseconds between instances of this table in the output
-- transport stream. Valid values are 0, 10..1000.
--
-- 'pcrControl', 'm2tsSettings_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.
--
-- 'pcrPeriod', 'm2tsSettings_pcrPeriod' - Maximum time in milliseconds between Program Clock Reference (PCRs)
-- inserted into the transport stream.
--
-- 'pcrPid', 'm2tsSettings_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).
--
-- 'pmtInterval', 'm2tsSettings_pmtInterval' - The number of milliseconds between instances of this table in the output
-- transport stream. Valid values are 0, 10..1000.
--
-- 'pmtPid', 'm2tsSettings_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).
--
-- 'programNum', 'm2tsSettings_programNum' - The value of the program number field in the Program Map Table.
--
-- 'rateMode', 'm2tsSettings_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.
--
-- 'scte27Pids', 'm2tsSettings_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).
--
-- 'scte35Control', 'm2tsSettings_scte35Control' - Optionally pass SCTE-35 signals from the input source to this output.
--
-- 'scte35Pid', 'm2tsSettings_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).
--
-- 'segmentationMarkers', 'm2tsSettings_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.
--
-- 'segmentationStyle', 'm2tsSettings_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.
--
-- 'segmentationTime', 'm2tsSettings_segmentationTime' - The length in seconds of each segment. Required unless markers is set to
-- _none_.
--
-- 'timedMetadataBehavior', 'm2tsSettings_timedMetadataBehavior' - When set to passthrough, timed metadata will be passed through from
-- input to output.
--
-- 'timedMetadataPid', 'm2tsSettings_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).
--
-- 'transportStreamId', 'm2tsSettings_transportStreamId' - The value of the transport stream ID field in the Program Map Table.
--
-- 'videoPid', 'm2tsSettings_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).
newM2tsSettings ::
  M2tsSettings
newM2tsSettings :: M2tsSettings
newM2tsSettings =
  M2tsSettings'
    { $sel:absentInputAudioBehavior:M2tsSettings' :: Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior =
        forall a. Maybe a
Prelude.Nothing,
      $sel:arib:M2tsSettings' :: Maybe M2tsArib
arib = forall a. Maybe a
Prelude.Nothing,
      $sel:aribCaptionsPid:M2tsSettings' :: Maybe Text
aribCaptionsPid = forall a. Maybe a
Prelude.Nothing,
      $sel:aribCaptionsPidControl:M2tsSettings' :: Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl = forall a. Maybe a
Prelude.Nothing,
      $sel:audioBufferModel:M2tsSettings' :: Maybe M2tsAudioBufferModel
audioBufferModel = forall a. Maybe a
Prelude.Nothing,
      $sel:audioFramesPerPes:M2tsSettings' :: Maybe Natural
audioFramesPerPes = forall a. Maybe a
Prelude.Nothing,
      $sel:audioPids:M2tsSettings' :: Maybe Text
audioPids = forall a. Maybe a
Prelude.Nothing,
      $sel:audioStreamType:M2tsSettings' :: Maybe M2tsAudioStreamType
audioStreamType = forall a. Maybe a
Prelude.Nothing,
      $sel:bitrate:M2tsSettings' :: Maybe Natural
bitrate = forall a. Maybe a
Prelude.Nothing,
      $sel:bufferModel:M2tsSettings' :: Maybe M2tsBufferModel
bufferModel = forall a. Maybe a
Prelude.Nothing,
      $sel:ccDescriptor:M2tsSettings' :: Maybe M2tsCcDescriptor
ccDescriptor = forall a. Maybe a
Prelude.Nothing,
      $sel:dvbNitSettings:M2tsSettings' :: Maybe DvbNitSettings
dvbNitSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:dvbSdtSettings:M2tsSettings' :: Maybe DvbSdtSettings
dvbSdtSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:dvbSubPids:M2tsSettings' :: Maybe Text
dvbSubPids = forall a. Maybe a
Prelude.Nothing,
      $sel:dvbTdtSettings:M2tsSettings' :: Maybe DvbTdtSettings
dvbTdtSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:dvbTeletextPid:M2tsSettings' :: Maybe Text
dvbTeletextPid = forall a. Maybe a
Prelude.Nothing,
      $sel:ebif:M2tsSettings' :: Maybe M2tsEbifControl
ebif = forall a. Maybe a
Prelude.Nothing,
      $sel:ebpAudioInterval:M2tsSettings' :: Maybe M2tsAudioInterval
ebpAudioInterval = forall a. Maybe a
Prelude.Nothing,
      $sel:ebpLookaheadMs:M2tsSettings' :: Maybe Natural
ebpLookaheadMs = forall a. Maybe a
Prelude.Nothing,
      $sel:ebpPlacement:M2tsSettings' :: Maybe M2tsEbpPlacement
ebpPlacement = forall a. Maybe a
Prelude.Nothing,
      $sel:ecmPid:M2tsSettings' :: Maybe Text
ecmPid = forall a. Maybe a
Prelude.Nothing,
      $sel:esRateInPes:M2tsSettings' :: Maybe M2tsEsRateInPes
esRateInPes = forall a. Maybe a
Prelude.Nothing,
      $sel:etvPlatformPid:M2tsSettings' :: Maybe Text
etvPlatformPid = forall a. Maybe a
Prelude.Nothing,
      $sel:etvSignalPid:M2tsSettings' :: Maybe Text
etvSignalPid = forall a. Maybe a
Prelude.Nothing,
      $sel:fragmentTime:M2tsSettings' :: Maybe Double
fragmentTime = forall a. Maybe a
Prelude.Nothing,
      $sel:klv:M2tsSettings' :: Maybe M2tsKlv
klv = forall a. Maybe a
Prelude.Nothing,
      $sel:klvDataPids:M2tsSettings' :: Maybe Text
klvDataPids = forall a. Maybe a
Prelude.Nothing,
      $sel:nielsenId3Behavior:M2tsSettings' :: Maybe M2tsNielsenId3Behavior
nielsenId3Behavior = forall a. Maybe a
Prelude.Nothing,
      $sel:nullPacketBitrate:M2tsSettings' :: Maybe Double
nullPacketBitrate = forall a. Maybe a
Prelude.Nothing,
      $sel:patInterval:M2tsSettings' :: Maybe Natural
patInterval = forall a. Maybe a
Prelude.Nothing,
      $sel:pcrControl:M2tsSettings' :: Maybe M2tsPcrControl
pcrControl = forall a. Maybe a
Prelude.Nothing,
      $sel:pcrPeriod:M2tsSettings' :: Maybe Natural
pcrPeriod = forall a. Maybe a
Prelude.Nothing,
      $sel:pcrPid:M2tsSettings' :: Maybe Text
pcrPid = forall a. Maybe a
Prelude.Nothing,
      $sel:pmtInterval:M2tsSettings' :: Maybe Natural
pmtInterval = forall a. Maybe a
Prelude.Nothing,
      $sel:pmtPid:M2tsSettings' :: Maybe Text
pmtPid = forall a. Maybe a
Prelude.Nothing,
      $sel:programNum:M2tsSettings' :: Maybe Natural
programNum = forall a. Maybe a
Prelude.Nothing,
      $sel:rateMode:M2tsSettings' :: Maybe M2tsRateMode
rateMode = forall a. Maybe a
Prelude.Nothing,
      $sel:scte27Pids:M2tsSettings' :: Maybe Text
scte27Pids = forall a. Maybe a
Prelude.Nothing,
      $sel:scte35Control:M2tsSettings' :: Maybe M2tsScte35Control
scte35Control = forall a. Maybe a
Prelude.Nothing,
      $sel:scte35Pid:M2tsSettings' :: Maybe Text
scte35Pid = forall a. Maybe a
Prelude.Nothing,
      $sel:segmentationMarkers:M2tsSettings' :: Maybe M2tsSegmentationMarkers
segmentationMarkers = forall a. Maybe a
Prelude.Nothing,
      $sel:segmentationStyle:M2tsSettings' :: Maybe M2tsSegmentationStyle
segmentationStyle = forall a. Maybe a
Prelude.Nothing,
      $sel:segmentationTime:M2tsSettings' :: Maybe Double
segmentationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:timedMetadataBehavior:M2tsSettings' :: Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior = forall a. Maybe a
Prelude.Nothing,
      $sel:timedMetadataPid:M2tsSettings' :: Maybe Text
timedMetadataPid = forall a. Maybe a
Prelude.Nothing,
      $sel:transportStreamId:M2tsSettings' :: Maybe Natural
transportStreamId = forall a. Maybe a
Prelude.Nothing,
      $sel:videoPid:M2tsSettings' :: Maybe Text
videoPid = forall a. Maybe a
Prelude.Nothing
    }

-- | 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.
m2tsSettings_absentInputAudioBehavior :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsAbsentInputAudioBehavior)
m2tsSettings_absentInputAudioBehavior :: Lens' M2tsSettings (Maybe M2tsAbsentInputAudioBehavior)
m2tsSettings_absentInputAudioBehavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior :: Maybe M2tsAbsentInputAudioBehavior
$sel:absentInputAudioBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior} -> Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsAbsentInputAudioBehavior
a -> M2tsSettings
s {$sel:absentInputAudioBehavior:M2tsSettings' :: Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior = Maybe M2tsAbsentInputAudioBehavior
a} :: M2tsSettings)

-- | When set to enabled, uses ARIB-compliant field muxing and removes video
-- descriptor.
m2tsSettings_arib :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsArib)
m2tsSettings_arib :: Lens' M2tsSettings (Maybe M2tsArib)
m2tsSettings_arib = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsArib
arib :: Maybe M2tsArib
$sel:arib:M2tsSettings' :: M2tsSettings -> Maybe M2tsArib
arib} -> Maybe M2tsArib
arib) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsArib
a -> M2tsSettings
s {$sel:arib:M2tsSettings' :: Maybe M2tsArib
arib = Maybe M2tsArib
a} :: M2tsSettings)

-- | 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).
m2tsSettings_aribCaptionsPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_aribCaptionsPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_aribCaptionsPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
aribCaptionsPid :: Maybe Text
$sel:aribCaptionsPid:M2tsSettings' :: M2tsSettings -> Maybe Text
aribCaptionsPid} -> Maybe Text
aribCaptionsPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:aribCaptionsPid:M2tsSettings' :: Maybe Text
aribCaptionsPid = Maybe Text
a} :: M2tsSettings)

-- | 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.
m2tsSettings_aribCaptionsPidControl :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsAribCaptionsPidControl)
m2tsSettings_aribCaptionsPidControl :: Lens' M2tsSettings (Maybe M2tsAribCaptionsPidControl)
m2tsSettings_aribCaptionsPidControl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl :: Maybe M2tsAribCaptionsPidControl
$sel:aribCaptionsPidControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl} -> Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsAribCaptionsPidControl
a -> M2tsSettings
s {$sel:aribCaptionsPidControl:M2tsSettings' :: Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl = Maybe M2tsAribCaptionsPidControl
a} :: M2tsSettings)

-- | When set to dvb, uses DVB buffer model for Dolby Digital audio. When set
-- to atsc, the ATSC model is used.
m2tsSettings_audioBufferModel :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsAudioBufferModel)
m2tsSettings_audioBufferModel :: Lens' M2tsSettings (Maybe M2tsAudioBufferModel)
m2tsSettings_audioBufferModel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsAudioBufferModel
audioBufferModel :: Maybe M2tsAudioBufferModel
$sel:audioBufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioBufferModel
audioBufferModel} -> Maybe M2tsAudioBufferModel
audioBufferModel) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsAudioBufferModel
a -> M2tsSettings
s {$sel:audioBufferModel:M2tsSettings' :: Maybe M2tsAudioBufferModel
audioBufferModel = Maybe M2tsAudioBufferModel
a} :: M2tsSettings)

-- | The number of audio frames to insert for each PES packet.
m2tsSettings_audioFramesPerPes :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_audioFramesPerPes :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_audioFramesPerPes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
audioFramesPerPes :: Maybe Natural
$sel:audioFramesPerPes:M2tsSettings' :: M2tsSettings -> Maybe Natural
audioFramesPerPes} -> Maybe Natural
audioFramesPerPes) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:audioFramesPerPes:M2tsSettings' :: Maybe Natural
audioFramesPerPes = Maybe Natural
a} :: M2tsSettings)

-- | 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).
m2tsSettings_audioPids :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_audioPids :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_audioPids = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
audioPids :: Maybe Text
$sel:audioPids:M2tsSettings' :: M2tsSettings -> Maybe Text
audioPids} -> Maybe Text
audioPids) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:audioPids:M2tsSettings' :: Maybe Text
audioPids = Maybe Text
a} :: M2tsSettings)

-- | When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87
-- for EAC3. When set to dvb, uses stream type = 0x06.
m2tsSettings_audioStreamType :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsAudioStreamType)
m2tsSettings_audioStreamType :: Lens' M2tsSettings (Maybe M2tsAudioStreamType)
m2tsSettings_audioStreamType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsAudioStreamType
audioStreamType :: Maybe M2tsAudioStreamType
$sel:audioStreamType:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioStreamType
audioStreamType} -> Maybe M2tsAudioStreamType
audioStreamType) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsAudioStreamType
a -> M2tsSettings
s {$sel:audioStreamType:M2tsSettings' :: Maybe M2tsAudioStreamType
audioStreamType = Maybe M2tsAudioStreamType
a} :: M2tsSettings)

-- | The output bitrate of the transport stream in bits per second. Setting
-- to 0 lets the muxer automatically determine the appropriate bitrate.
m2tsSettings_bitrate :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_bitrate :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_bitrate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
bitrate :: Maybe Natural
$sel:bitrate:M2tsSettings' :: M2tsSettings -> Maybe Natural
bitrate} -> Maybe Natural
bitrate) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:bitrate:M2tsSettings' :: Maybe Natural
bitrate = Maybe Natural
a} :: M2tsSettings)

-- | 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.
m2tsSettings_bufferModel :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsBufferModel)
m2tsSettings_bufferModel :: Lens' M2tsSettings (Maybe M2tsBufferModel)
m2tsSettings_bufferModel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsBufferModel
bufferModel :: Maybe M2tsBufferModel
$sel:bufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsBufferModel
bufferModel} -> Maybe M2tsBufferModel
bufferModel) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsBufferModel
a -> M2tsSettings
s {$sel:bufferModel:M2tsSettings' :: Maybe M2tsBufferModel
bufferModel = Maybe M2tsBufferModel
a} :: M2tsSettings)

-- | When set to enabled, generates captionServiceDescriptor in PMT.
m2tsSettings_ccDescriptor :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsCcDescriptor)
m2tsSettings_ccDescriptor :: Lens' M2tsSettings (Maybe M2tsCcDescriptor)
m2tsSettings_ccDescriptor = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsCcDescriptor
ccDescriptor :: Maybe M2tsCcDescriptor
$sel:ccDescriptor:M2tsSettings' :: M2tsSettings -> Maybe M2tsCcDescriptor
ccDescriptor} -> Maybe M2tsCcDescriptor
ccDescriptor) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsCcDescriptor
a -> M2tsSettings
s {$sel:ccDescriptor:M2tsSettings' :: Maybe M2tsCcDescriptor
ccDescriptor = Maybe M2tsCcDescriptor
a} :: M2tsSettings)

-- | Inserts DVB Network Information Table (NIT) at the specified table
-- repetition interval.
m2tsSettings_dvbNitSettings :: Lens.Lens' M2tsSettings (Prelude.Maybe DvbNitSettings)
m2tsSettings_dvbNitSettings :: Lens' M2tsSettings (Maybe DvbNitSettings)
m2tsSettings_dvbNitSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe DvbNitSettings
dvbNitSettings :: Maybe DvbNitSettings
$sel:dvbNitSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbNitSettings
dvbNitSettings} -> Maybe DvbNitSettings
dvbNitSettings) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe DvbNitSettings
a -> M2tsSettings
s {$sel:dvbNitSettings:M2tsSettings' :: Maybe DvbNitSettings
dvbNitSettings = Maybe DvbNitSettings
a} :: M2tsSettings)

-- | Inserts DVB Service Description Table (SDT) at the specified table
-- repetition interval.
m2tsSettings_dvbSdtSettings :: Lens.Lens' M2tsSettings (Prelude.Maybe DvbSdtSettings)
m2tsSettings_dvbSdtSettings :: Lens' M2tsSettings (Maybe DvbSdtSettings)
m2tsSettings_dvbSdtSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe DvbSdtSettings
dvbSdtSettings :: Maybe DvbSdtSettings
$sel:dvbSdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbSdtSettings
dvbSdtSettings} -> Maybe DvbSdtSettings
dvbSdtSettings) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe DvbSdtSettings
a -> M2tsSettings
s {$sel:dvbSdtSettings:M2tsSettings' :: Maybe DvbSdtSettings
dvbSdtSettings = Maybe DvbSdtSettings
a} :: M2tsSettings)

-- | 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).
m2tsSettings_dvbSubPids :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_dvbSubPids :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_dvbSubPids = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
dvbSubPids :: Maybe Text
$sel:dvbSubPids:M2tsSettings' :: M2tsSettings -> Maybe Text
dvbSubPids} -> Maybe Text
dvbSubPids) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:dvbSubPids:M2tsSettings' :: Maybe Text
dvbSubPids = Maybe Text
a} :: M2tsSettings)

-- | Inserts DVB Time and Date Table (TDT) at the specified table repetition
-- interval.
m2tsSettings_dvbTdtSettings :: Lens.Lens' M2tsSettings (Prelude.Maybe DvbTdtSettings)
m2tsSettings_dvbTdtSettings :: Lens' M2tsSettings (Maybe DvbTdtSettings)
m2tsSettings_dvbTdtSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe DvbTdtSettings
dvbTdtSettings :: Maybe DvbTdtSettings
$sel:dvbTdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbTdtSettings
dvbTdtSettings} -> Maybe DvbTdtSettings
dvbTdtSettings) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe DvbTdtSettings
a -> M2tsSettings
s {$sel:dvbTdtSettings:M2tsSettings' :: Maybe DvbTdtSettings
dvbTdtSettings = Maybe DvbTdtSettings
a} :: M2tsSettings)

-- | 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).
m2tsSettings_dvbTeletextPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_dvbTeletextPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_dvbTeletextPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
dvbTeletextPid :: Maybe Text
$sel:dvbTeletextPid:M2tsSettings' :: M2tsSettings -> Maybe Text
dvbTeletextPid} -> Maybe Text
dvbTeletextPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:dvbTeletextPid:M2tsSettings' :: Maybe Text
dvbTeletextPid = Maybe Text
a} :: M2tsSettings)

-- | If set to passthrough, passes any EBIF data from the input source to
-- this output.
m2tsSettings_ebif :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsEbifControl)
m2tsSettings_ebif :: Lens' M2tsSettings (Maybe M2tsEbifControl)
m2tsSettings_ebif = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsEbifControl
ebif :: Maybe M2tsEbifControl
$sel:ebif:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbifControl
ebif} -> Maybe M2tsEbifControl
ebif) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsEbifControl
a -> M2tsSettings
s {$sel:ebif:M2tsSettings' :: Maybe M2tsEbifControl
ebif = Maybe M2tsEbifControl
a} :: M2tsSettings)

-- | 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.
m2tsSettings_ebpAudioInterval :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsAudioInterval)
m2tsSettings_ebpAudioInterval :: Lens' M2tsSettings (Maybe M2tsAudioInterval)
m2tsSettings_ebpAudioInterval = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsAudioInterval
ebpAudioInterval :: Maybe M2tsAudioInterval
$sel:ebpAudioInterval:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioInterval
ebpAudioInterval} -> Maybe M2tsAudioInterval
ebpAudioInterval) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsAudioInterval
a -> M2tsSettings
s {$sel:ebpAudioInterval:M2tsSettings' :: Maybe M2tsAudioInterval
ebpAudioInterval = Maybe M2tsAudioInterval
a} :: M2tsSettings)

-- | 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.
m2tsSettings_ebpLookaheadMs :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_ebpLookaheadMs :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_ebpLookaheadMs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
ebpLookaheadMs :: Maybe Natural
$sel:ebpLookaheadMs:M2tsSettings' :: M2tsSettings -> Maybe Natural
ebpLookaheadMs} -> Maybe Natural
ebpLookaheadMs) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:ebpLookaheadMs:M2tsSettings' :: Maybe Natural
ebpLookaheadMs = Maybe Natural
a} :: M2tsSettings)

-- | 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.
m2tsSettings_ebpPlacement :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsEbpPlacement)
m2tsSettings_ebpPlacement :: Lens' M2tsSettings (Maybe M2tsEbpPlacement)
m2tsSettings_ebpPlacement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsEbpPlacement
ebpPlacement :: Maybe M2tsEbpPlacement
$sel:ebpPlacement:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbpPlacement
ebpPlacement} -> Maybe M2tsEbpPlacement
ebpPlacement) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsEbpPlacement
a -> M2tsSettings
s {$sel:ebpPlacement:M2tsSettings' :: Maybe M2tsEbpPlacement
ebpPlacement = Maybe M2tsEbpPlacement
a} :: M2tsSettings)

-- | This field is unused and deprecated.
m2tsSettings_ecmPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_ecmPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_ecmPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
ecmPid :: Maybe Text
$sel:ecmPid:M2tsSettings' :: M2tsSettings -> Maybe Text
ecmPid} -> Maybe Text
ecmPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:ecmPid:M2tsSettings' :: Maybe Text
ecmPid = Maybe Text
a} :: M2tsSettings)

-- | Include or exclude the ES Rate field in the PES header.
m2tsSettings_esRateInPes :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsEsRateInPes)
m2tsSettings_esRateInPes :: Lens' M2tsSettings (Maybe M2tsEsRateInPes)
m2tsSettings_esRateInPes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsEsRateInPes
esRateInPes :: Maybe M2tsEsRateInPes
$sel:esRateInPes:M2tsSettings' :: M2tsSettings -> Maybe M2tsEsRateInPes
esRateInPes} -> Maybe M2tsEsRateInPes
esRateInPes) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsEsRateInPes
a -> M2tsSettings
s {$sel:esRateInPes:M2tsSettings' :: Maybe M2tsEsRateInPes
esRateInPes = Maybe M2tsEsRateInPes
a} :: M2tsSettings)

-- | 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).
m2tsSettings_etvPlatformPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_etvPlatformPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_etvPlatformPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
etvPlatformPid :: Maybe Text
$sel:etvPlatformPid:M2tsSettings' :: M2tsSettings -> Maybe Text
etvPlatformPid} -> Maybe Text
etvPlatformPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:etvPlatformPid:M2tsSettings' :: Maybe Text
etvPlatformPid = Maybe Text
a} :: M2tsSettings)

-- | 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).
m2tsSettings_etvSignalPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_etvSignalPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_etvSignalPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
etvSignalPid :: Maybe Text
$sel:etvSignalPid:M2tsSettings' :: M2tsSettings -> Maybe Text
etvSignalPid} -> Maybe Text
etvSignalPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:etvSignalPid:M2tsSettings' :: Maybe Text
etvSignalPid = Maybe Text
a} :: M2tsSettings)

-- | The length in seconds of each fragment. Only used with EBP markers.
m2tsSettings_fragmentTime :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Double)
m2tsSettings_fragmentTime :: Lens' M2tsSettings (Maybe Double)
m2tsSettings_fragmentTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Double
fragmentTime :: Maybe Double
$sel:fragmentTime:M2tsSettings' :: M2tsSettings -> Maybe Double
fragmentTime} -> Maybe Double
fragmentTime) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Double
a -> M2tsSettings
s {$sel:fragmentTime:M2tsSettings' :: Maybe Double
fragmentTime = Maybe Double
a} :: M2tsSettings)

-- | If set to passthrough, passes any KLV data from the input source to this
-- output.
m2tsSettings_klv :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsKlv)
m2tsSettings_klv :: Lens' M2tsSettings (Maybe M2tsKlv)
m2tsSettings_klv = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsKlv
klv :: Maybe M2tsKlv
$sel:klv:M2tsSettings' :: M2tsSettings -> Maybe M2tsKlv
klv} -> Maybe M2tsKlv
klv) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsKlv
a -> M2tsSettings
s {$sel:klv:M2tsSettings' :: Maybe M2tsKlv
klv = Maybe M2tsKlv
a} :: M2tsSettings)

-- | 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).
m2tsSettings_klvDataPids :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_klvDataPids :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_klvDataPids = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
klvDataPids :: Maybe Text
$sel:klvDataPids:M2tsSettings' :: M2tsSettings -> Maybe Text
klvDataPids} -> Maybe Text
klvDataPids) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:klvDataPids:M2tsSettings' :: Maybe Text
klvDataPids = Maybe Text
a} :: M2tsSettings)

-- | 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.
m2tsSettings_nielsenId3Behavior :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsNielsenId3Behavior)
m2tsSettings_nielsenId3Behavior :: Lens' M2tsSettings (Maybe M2tsNielsenId3Behavior)
m2tsSettings_nielsenId3Behavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsNielsenId3Behavior
nielsenId3Behavior :: Maybe M2tsNielsenId3Behavior
$sel:nielsenId3Behavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsNielsenId3Behavior
nielsenId3Behavior} -> Maybe M2tsNielsenId3Behavior
nielsenId3Behavior) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsNielsenId3Behavior
a -> M2tsSettings
s {$sel:nielsenId3Behavior:M2tsSettings' :: Maybe M2tsNielsenId3Behavior
nielsenId3Behavior = Maybe M2tsNielsenId3Behavior
a} :: M2tsSettings)

-- | 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.
m2tsSettings_nullPacketBitrate :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Double)
m2tsSettings_nullPacketBitrate :: Lens' M2tsSettings (Maybe Double)
m2tsSettings_nullPacketBitrate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Double
nullPacketBitrate :: Maybe Double
$sel:nullPacketBitrate:M2tsSettings' :: M2tsSettings -> Maybe Double
nullPacketBitrate} -> Maybe Double
nullPacketBitrate) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Double
a -> M2tsSettings
s {$sel:nullPacketBitrate:M2tsSettings' :: Maybe Double
nullPacketBitrate = Maybe Double
a} :: M2tsSettings)

-- | The number of milliseconds between instances of this table in the output
-- transport stream. Valid values are 0, 10..1000.
m2tsSettings_patInterval :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_patInterval :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_patInterval = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
patInterval :: Maybe Natural
$sel:patInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
patInterval} -> Maybe Natural
patInterval) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:patInterval:M2tsSettings' :: Maybe Natural
patInterval = Maybe Natural
a} :: M2tsSettings)

-- | 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.
m2tsSettings_pcrControl :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsPcrControl)
m2tsSettings_pcrControl :: Lens' M2tsSettings (Maybe M2tsPcrControl)
m2tsSettings_pcrControl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsPcrControl
pcrControl :: Maybe M2tsPcrControl
$sel:pcrControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsPcrControl
pcrControl} -> Maybe M2tsPcrControl
pcrControl) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsPcrControl
a -> M2tsSettings
s {$sel:pcrControl:M2tsSettings' :: Maybe M2tsPcrControl
pcrControl = Maybe M2tsPcrControl
a} :: M2tsSettings)

-- | Maximum time in milliseconds between Program Clock Reference (PCRs)
-- inserted into the transport stream.
m2tsSettings_pcrPeriod :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_pcrPeriod :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_pcrPeriod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
pcrPeriod :: Maybe Natural
$sel:pcrPeriod:M2tsSettings' :: M2tsSettings -> Maybe Natural
pcrPeriod} -> Maybe Natural
pcrPeriod) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:pcrPeriod:M2tsSettings' :: Maybe Natural
pcrPeriod = Maybe Natural
a} :: M2tsSettings)

-- | 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).
m2tsSettings_pcrPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_pcrPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_pcrPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
pcrPid :: Maybe Text
$sel:pcrPid:M2tsSettings' :: M2tsSettings -> Maybe Text
pcrPid} -> Maybe Text
pcrPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:pcrPid:M2tsSettings' :: Maybe Text
pcrPid = Maybe Text
a} :: M2tsSettings)

-- | The number of milliseconds between instances of this table in the output
-- transport stream. Valid values are 0, 10..1000.
m2tsSettings_pmtInterval :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_pmtInterval :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_pmtInterval = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
pmtInterval :: Maybe Natural
$sel:pmtInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
pmtInterval} -> Maybe Natural
pmtInterval) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:pmtInterval:M2tsSettings' :: Maybe Natural
pmtInterval = Maybe Natural
a} :: M2tsSettings)

-- | 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).
m2tsSettings_pmtPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_pmtPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_pmtPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
pmtPid :: Maybe Text
$sel:pmtPid:M2tsSettings' :: M2tsSettings -> Maybe Text
pmtPid} -> Maybe Text
pmtPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:pmtPid:M2tsSettings' :: Maybe Text
pmtPid = Maybe Text
a} :: M2tsSettings)

-- | The value of the program number field in the Program Map Table.
m2tsSettings_programNum :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_programNum :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_programNum = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
programNum :: Maybe Natural
$sel:programNum:M2tsSettings' :: M2tsSettings -> Maybe Natural
programNum} -> Maybe Natural
programNum) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:programNum:M2tsSettings' :: Maybe Natural
programNum = Maybe Natural
a} :: M2tsSettings)

-- | 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.
m2tsSettings_rateMode :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsRateMode)
m2tsSettings_rateMode :: Lens' M2tsSettings (Maybe M2tsRateMode)
m2tsSettings_rateMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsRateMode
rateMode :: Maybe M2tsRateMode
$sel:rateMode:M2tsSettings' :: M2tsSettings -> Maybe M2tsRateMode
rateMode} -> Maybe M2tsRateMode
rateMode) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsRateMode
a -> M2tsSettings
s {$sel:rateMode:M2tsSettings' :: Maybe M2tsRateMode
rateMode = Maybe M2tsRateMode
a} :: M2tsSettings)

-- | 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).
m2tsSettings_scte27Pids :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_scte27Pids :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_scte27Pids = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
scte27Pids :: Maybe Text
$sel:scte27Pids:M2tsSettings' :: M2tsSettings -> Maybe Text
scte27Pids} -> Maybe Text
scte27Pids) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:scte27Pids:M2tsSettings' :: Maybe Text
scte27Pids = Maybe Text
a} :: M2tsSettings)

-- | Optionally pass SCTE-35 signals from the input source to this output.
m2tsSettings_scte35Control :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsScte35Control)
m2tsSettings_scte35Control :: Lens' M2tsSettings (Maybe M2tsScte35Control)
m2tsSettings_scte35Control = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsScte35Control
scte35Control :: Maybe M2tsScte35Control
$sel:scte35Control:M2tsSettings' :: M2tsSettings -> Maybe M2tsScte35Control
scte35Control} -> Maybe M2tsScte35Control
scte35Control) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsScte35Control
a -> M2tsSettings
s {$sel:scte35Control:M2tsSettings' :: Maybe M2tsScte35Control
scte35Control = Maybe M2tsScte35Control
a} :: M2tsSettings)

-- | 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).
m2tsSettings_scte35Pid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_scte35Pid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_scte35Pid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
scte35Pid :: Maybe Text
$sel:scte35Pid:M2tsSettings' :: M2tsSettings -> Maybe Text
scte35Pid} -> Maybe Text
scte35Pid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:scte35Pid:M2tsSettings' :: Maybe Text
scte35Pid = Maybe Text
a} :: M2tsSettings)

-- | 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.
m2tsSettings_segmentationMarkers :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsSegmentationMarkers)
m2tsSettings_segmentationMarkers :: Lens' M2tsSettings (Maybe M2tsSegmentationMarkers)
m2tsSettings_segmentationMarkers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsSegmentationMarkers
segmentationMarkers :: Maybe M2tsSegmentationMarkers
$sel:segmentationMarkers:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationMarkers
segmentationMarkers} -> Maybe M2tsSegmentationMarkers
segmentationMarkers) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsSegmentationMarkers
a -> M2tsSettings
s {$sel:segmentationMarkers:M2tsSettings' :: Maybe M2tsSegmentationMarkers
segmentationMarkers = Maybe M2tsSegmentationMarkers
a} :: M2tsSettings)

-- | 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.
m2tsSettings_segmentationStyle :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsSegmentationStyle)
m2tsSettings_segmentationStyle :: Lens' M2tsSettings (Maybe M2tsSegmentationStyle)
m2tsSettings_segmentationStyle = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsSegmentationStyle
segmentationStyle :: Maybe M2tsSegmentationStyle
$sel:segmentationStyle:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationStyle
segmentationStyle} -> Maybe M2tsSegmentationStyle
segmentationStyle) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsSegmentationStyle
a -> M2tsSettings
s {$sel:segmentationStyle:M2tsSettings' :: Maybe M2tsSegmentationStyle
segmentationStyle = Maybe M2tsSegmentationStyle
a} :: M2tsSettings)

-- | The length in seconds of each segment. Required unless markers is set to
-- _none_.
m2tsSettings_segmentationTime :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Double)
m2tsSettings_segmentationTime :: Lens' M2tsSettings (Maybe Double)
m2tsSettings_segmentationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Double
segmentationTime :: Maybe Double
$sel:segmentationTime:M2tsSettings' :: M2tsSettings -> Maybe Double
segmentationTime} -> Maybe Double
segmentationTime) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Double
a -> M2tsSettings
s {$sel:segmentationTime:M2tsSettings' :: Maybe Double
segmentationTime = Maybe Double
a} :: M2tsSettings)

-- | When set to passthrough, timed metadata will be passed through from
-- input to output.
m2tsSettings_timedMetadataBehavior :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsTimedMetadataBehavior)
m2tsSettings_timedMetadataBehavior :: Lens' M2tsSettings (Maybe M2tsTimedMetadataBehavior)
m2tsSettings_timedMetadataBehavior = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior :: Maybe M2tsTimedMetadataBehavior
$sel:timedMetadataBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior} -> Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe M2tsTimedMetadataBehavior
a -> M2tsSettings
s {$sel:timedMetadataBehavior:M2tsSettings' :: Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior = Maybe M2tsTimedMetadataBehavior
a} :: M2tsSettings)

-- | 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).
m2tsSettings_timedMetadataPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_timedMetadataPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_timedMetadataPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
timedMetadataPid :: Maybe Text
$sel:timedMetadataPid:M2tsSettings' :: M2tsSettings -> Maybe Text
timedMetadataPid} -> Maybe Text
timedMetadataPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:timedMetadataPid:M2tsSettings' :: Maybe Text
timedMetadataPid = Maybe Text
a} :: M2tsSettings)

-- | The value of the transport stream ID field in the Program Map Table.
m2tsSettings_transportStreamId :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_transportStreamId :: Lens' M2tsSettings (Maybe Natural)
m2tsSettings_transportStreamId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Natural
transportStreamId :: Maybe Natural
$sel:transportStreamId:M2tsSettings' :: M2tsSettings -> Maybe Natural
transportStreamId} -> Maybe Natural
transportStreamId) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Natural
a -> M2tsSettings
s {$sel:transportStreamId:M2tsSettings' :: Maybe Natural
transportStreamId = Maybe Natural
a} :: M2tsSettings)

-- | 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).
m2tsSettings_videoPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_videoPid :: Lens' M2tsSettings (Maybe Text)
m2tsSettings_videoPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\M2tsSettings' {Maybe Text
videoPid :: Maybe Text
$sel:videoPid:M2tsSettings' :: M2tsSettings -> Maybe Text
videoPid} -> Maybe Text
videoPid) (\s :: M2tsSettings
s@M2tsSettings' {} Maybe Text
a -> M2tsSettings
s {$sel:videoPid:M2tsSettings' :: Maybe Text
videoPid = Maybe Text
a} :: M2tsSettings)

instance Data.FromJSON M2tsSettings where
  parseJSON :: Value -> Parser M2tsSettings
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"M2tsSettings"
      ( \Object
x ->
          Maybe M2tsAbsentInputAudioBehavior
-> Maybe M2tsArib
-> Maybe Text
-> Maybe M2tsAribCaptionsPidControl
-> Maybe M2tsAudioBufferModel
-> Maybe Natural
-> Maybe Text
-> Maybe M2tsAudioStreamType
-> Maybe Natural
-> Maybe M2tsBufferModel
-> Maybe M2tsCcDescriptor
-> Maybe DvbNitSettings
-> Maybe DvbSdtSettings
-> Maybe Text
-> Maybe DvbTdtSettings
-> Maybe Text
-> Maybe M2tsEbifControl
-> Maybe M2tsAudioInterval
-> Maybe Natural
-> Maybe M2tsEbpPlacement
-> Maybe Text
-> Maybe M2tsEsRateInPes
-> Maybe Text
-> Maybe Text
-> Maybe Double
-> Maybe M2tsKlv
-> Maybe Text
-> Maybe M2tsNielsenId3Behavior
-> Maybe Double
-> Maybe Natural
-> Maybe M2tsPcrControl
-> Maybe Natural
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe Natural
-> Maybe M2tsRateMode
-> Maybe Text
-> Maybe M2tsScte35Control
-> Maybe Text
-> Maybe M2tsSegmentationMarkers
-> Maybe M2tsSegmentationStyle
-> Maybe Double
-> Maybe M2tsTimedMetadataBehavior
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> M2tsSettings
M2tsSettings'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"absentInputAudioBehavior")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"arib")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"aribCaptionsPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"aribCaptionsPidControl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"audioBufferModel")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"audioFramesPerPes")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"audioPids")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"audioStreamType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"bitrate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"bufferModel")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ccDescriptor")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dvbNitSettings")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dvbSdtSettings")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dvbSubPids")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dvbTdtSettings")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dvbTeletextPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ebif")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ebpAudioInterval")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ebpLookaheadMs")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ebpPlacement")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ecmPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"esRateInPes")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"etvPlatformPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"etvSignalPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"fragmentTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"klv")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"klvDataPids")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"nielsenId3Behavior")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"nullPacketBitrate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"patInterval")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"pcrControl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"pcrPeriod")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"pcrPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"pmtInterval")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"pmtPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"programNum")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"rateMode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"scte27Pids")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"scte35Control")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"scte35Pid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"segmentationMarkers")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"segmentationStyle")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"segmentationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"timedMetadataBehavior")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"timedMetadataPid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"transportStreamId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"videoPid")
      )

instance Prelude.Hashable M2tsSettings where
  hashWithSalt :: Int -> M2tsSettings -> Int
hashWithSalt Int
_salt M2tsSettings' {Maybe Double
Maybe Natural
Maybe Text
Maybe DvbNitSettings
Maybe DvbSdtSettings
Maybe DvbTdtSettings
Maybe M2tsAbsentInputAudioBehavior
Maybe M2tsArib
Maybe M2tsAribCaptionsPidControl
Maybe M2tsAudioBufferModel
Maybe M2tsAudioInterval
Maybe M2tsAudioStreamType
Maybe M2tsBufferModel
Maybe M2tsCcDescriptor
Maybe M2tsEbifControl
Maybe M2tsEbpPlacement
Maybe M2tsEsRateInPes
Maybe M2tsKlv
Maybe M2tsNielsenId3Behavior
Maybe M2tsPcrControl
Maybe M2tsRateMode
Maybe M2tsScte35Control
Maybe M2tsSegmentationMarkers
Maybe M2tsSegmentationStyle
Maybe M2tsTimedMetadataBehavior
videoPid :: Maybe Text
transportStreamId :: Maybe Natural
timedMetadataPid :: Maybe Text
timedMetadataBehavior :: Maybe M2tsTimedMetadataBehavior
segmentationTime :: Maybe Double
segmentationStyle :: Maybe M2tsSegmentationStyle
segmentationMarkers :: Maybe M2tsSegmentationMarkers
scte35Pid :: Maybe Text
scte35Control :: Maybe M2tsScte35Control
scte27Pids :: Maybe Text
rateMode :: Maybe M2tsRateMode
programNum :: Maybe Natural
pmtPid :: Maybe Text
pmtInterval :: Maybe Natural
pcrPid :: Maybe Text
pcrPeriod :: Maybe Natural
pcrControl :: Maybe M2tsPcrControl
patInterval :: Maybe Natural
nullPacketBitrate :: Maybe Double
nielsenId3Behavior :: Maybe M2tsNielsenId3Behavior
klvDataPids :: Maybe Text
klv :: Maybe M2tsKlv
fragmentTime :: Maybe Double
etvSignalPid :: Maybe Text
etvPlatformPid :: Maybe Text
esRateInPes :: Maybe M2tsEsRateInPes
ecmPid :: Maybe Text
ebpPlacement :: Maybe M2tsEbpPlacement
ebpLookaheadMs :: Maybe Natural
ebpAudioInterval :: Maybe M2tsAudioInterval
ebif :: Maybe M2tsEbifControl
dvbTeletextPid :: Maybe Text
dvbTdtSettings :: Maybe DvbTdtSettings
dvbSubPids :: Maybe Text
dvbSdtSettings :: Maybe DvbSdtSettings
dvbNitSettings :: Maybe DvbNitSettings
ccDescriptor :: Maybe M2tsCcDescriptor
bufferModel :: Maybe M2tsBufferModel
bitrate :: Maybe Natural
audioStreamType :: Maybe M2tsAudioStreamType
audioPids :: Maybe Text
audioFramesPerPes :: Maybe Natural
audioBufferModel :: Maybe M2tsAudioBufferModel
aribCaptionsPidControl :: Maybe M2tsAribCaptionsPidControl
aribCaptionsPid :: Maybe Text
arib :: Maybe M2tsArib
absentInputAudioBehavior :: Maybe M2tsAbsentInputAudioBehavior
$sel:videoPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:transportStreamId:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:timedMetadataPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:timedMetadataBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsTimedMetadataBehavior
$sel:segmentationTime:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:segmentationStyle:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationStyle
$sel:segmentationMarkers:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationMarkers
$sel:scte35Pid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:scte35Control:M2tsSettings' :: M2tsSettings -> Maybe M2tsScte35Control
$sel:scte27Pids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:rateMode:M2tsSettings' :: M2tsSettings -> Maybe M2tsRateMode
$sel:programNum:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pmtPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:pmtInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pcrPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:pcrPeriod:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pcrControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsPcrControl
$sel:patInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:nullPacketBitrate:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:nielsenId3Behavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsNielsenId3Behavior
$sel:klvDataPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:klv:M2tsSettings' :: M2tsSettings -> Maybe M2tsKlv
$sel:fragmentTime:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:etvSignalPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:etvPlatformPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:esRateInPes:M2tsSettings' :: M2tsSettings -> Maybe M2tsEsRateInPes
$sel:ecmPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:ebpPlacement:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbpPlacement
$sel:ebpLookaheadMs:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:ebpAudioInterval:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioInterval
$sel:ebif:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbifControl
$sel:dvbTeletextPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:dvbTdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbTdtSettings
$sel:dvbSubPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:dvbSdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbSdtSettings
$sel:dvbNitSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbNitSettings
$sel:ccDescriptor:M2tsSettings' :: M2tsSettings -> Maybe M2tsCcDescriptor
$sel:bufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsBufferModel
$sel:bitrate:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:audioStreamType:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioStreamType
$sel:audioPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:audioFramesPerPes:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:audioBufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioBufferModel
$sel:aribCaptionsPidControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsAribCaptionsPidControl
$sel:aribCaptionsPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:arib:M2tsSettings' :: M2tsSettings -> Maybe M2tsArib
$sel:absentInputAudioBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsAbsentInputAudioBehavior
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsArib
arib
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
aribCaptionsPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsAudioBufferModel
audioBufferModel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
audioFramesPerPes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
audioPids
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsAudioStreamType
audioStreamType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
bitrate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsBufferModel
bufferModel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsCcDescriptor
ccDescriptor
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DvbNitSettings
dvbNitSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DvbSdtSettings
dvbSdtSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dvbSubPids
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DvbTdtSettings
dvbTdtSettings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dvbTeletextPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsEbifControl
ebif
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsAudioInterval
ebpAudioInterval
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
ebpLookaheadMs
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsEbpPlacement
ebpPlacement
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ecmPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsEsRateInPes
esRateInPes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
etvPlatformPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
etvSignalPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
fragmentTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsKlv
klv
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
klvDataPids
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsNielsenId3Behavior
nielsenId3Behavior
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
nullPacketBitrate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
patInterval
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsPcrControl
pcrControl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
pcrPeriod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
pcrPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
pmtInterval
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
pmtPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
programNum
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsRateMode
rateMode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
scte27Pids
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsScte35Control
scte35Control
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
scte35Pid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsSegmentationMarkers
segmentationMarkers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsSegmentationStyle
segmentationStyle
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
segmentationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
timedMetadataPid
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
transportStreamId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
videoPid

instance Prelude.NFData M2tsSettings where
  rnf :: M2tsSettings -> ()
rnf M2tsSettings' {Maybe Double
Maybe Natural
Maybe Text
Maybe DvbNitSettings
Maybe DvbSdtSettings
Maybe DvbTdtSettings
Maybe M2tsAbsentInputAudioBehavior
Maybe M2tsArib
Maybe M2tsAribCaptionsPidControl
Maybe M2tsAudioBufferModel
Maybe M2tsAudioInterval
Maybe M2tsAudioStreamType
Maybe M2tsBufferModel
Maybe M2tsCcDescriptor
Maybe M2tsEbifControl
Maybe M2tsEbpPlacement
Maybe M2tsEsRateInPes
Maybe M2tsKlv
Maybe M2tsNielsenId3Behavior
Maybe M2tsPcrControl
Maybe M2tsRateMode
Maybe M2tsScte35Control
Maybe M2tsSegmentationMarkers
Maybe M2tsSegmentationStyle
Maybe M2tsTimedMetadataBehavior
videoPid :: Maybe Text
transportStreamId :: Maybe Natural
timedMetadataPid :: Maybe Text
timedMetadataBehavior :: Maybe M2tsTimedMetadataBehavior
segmentationTime :: Maybe Double
segmentationStyle :: Maybe M2tsSegmentationStyle
segmentationMarkers :: Maybe M2tsSegmentationMarkers
scte35Pid :: Maybe Text
scte35Control :: Maybe M2tsScte35Control
scte27Pids :: Maybe Text
rateMode :: Maybe M2tsRateMode
programNum :: Maybe Natural
pmtPid :: Maybe Text
pmtInterval :: Maybe Natural
pcrPid :: Maybe Text
pcrPeriod :: Maybe Natural
pcrControl :: Maybe M2tsPcrControl
patInterval :: Maybe Natural
nullPacketBitrate :: Maybe Double
nielsenId3Behavior :: Maybe M2tsNielsenId3Behavior
klvDataPids :: Maybe Text
klv :: Maybe M2tsKlv
fragmentTime :: Maybe Double
etvSignalPid :: Maybe Text
etvPlatformPid :: Maybe Text
esRateInPes :: Maybe M2tsEsRateInPes
ecmPid :: Maybe Text
ebpPlacement :: Maybe M2tsEbpPlacement
ebpLookaheadMs :: Maybe Natural
ebpAudioInterval :: Maybe M2tsAudioInterval
ebif :: Maybe M2tsEbifControl
dvbTeletextPid :: Maybe Text
dvbTdtSettings :: Maybe DvbTdtSettings
dvbSubPids :: Maybe Text
dvbSdtSettings :: Maybe DvbSdtSettings
dvbNitSettings :: Maybe DvbNitSettings
ccDescriptor :: Maybe M2tsCcDescriptor
bufferModel :: Maybe M2tsBufferModel
bitrate :: Maybe Natural
audioStreamType :: Maybe M2tsAudioStreamType
audioPids :: Maybe Text
audioFramesPerPes :: Maybe Natural
audioBufferModel :: Maybe M2tsAudioBufferModel
aribCaptionsPidControl :: Maybe M2tsAribCaptionsPidControl
aribCaptionsPid :: Maybe Text
arib :: Maybe M2tsArib
absentInputAudioBehavior :: Maybe M2tsAbsentInputAudioBehavior
$sel:videoPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:transportStreamId:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:timedMetadataPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:timedMetadataBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsTimedMetadataBehavior
$sel:segmentationTime:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:segmentationStyle:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationStyle
$sel:segmentationMarkers:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationMarkers
$sel:scte35Pid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:scte35Control:M2tsSettings' :: M2tsSettings -> Maybe M2tsScte35Control
$sel:scte27Pids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:rateMode:M2tsSettings' :: M2tsSettings -> Maybe M2tsRateMode
$sel:programNum:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pmtPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:pmtInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pcrPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:pcrPeriod:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pcrControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsPcrControl
$sel:patInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:nullPacketBitrate:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:nielsenId3Behavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsNielsenId3Behavior
$sel:klvDataPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:klv:M2tsSettings' :: M2tsSettings -> Maybe M2tsKlv
$sel:fragmentTime:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:etvSignalPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:etvPlatformPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:esRateInPes:M2tsSettings' :: M2tsSettings -> Maybe M2tsEsRateInPes
$sel:ecmPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:ebpPlacement:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbpPlacement
$sel:ebpLookaheadMs:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:ebpAudioInterval:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioInterval
$sel:ebif:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbifControl
$sel:dvbTeletextPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:dvbTdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbTdtSettings
$sel:dvbSubPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:dvbSdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbSdtSettings
$sel:dvbNitSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbNitSettings
$sel:ccDescriptor:M2tsSettings' :: M2tsSettings -> Maybe M2tsCcDescriptor
$sel:bufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsBufferModel
$sel:bitrate:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:audioStreamType:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioStreamType
$sel:audioPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:audioFramesPerPes:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:audioBufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioBufferModel
$sel:aribCaptionsPidControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsAribCaptionsPidControl
$sel:aribCaptionsPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:arib:M2tsSettings' :: M2tsSettings -> Maybe M2tsArib
$sel:absentInputAudioBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsAbsentInputAudioBehavior
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsArib
arib
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
aribCaptionsPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsAudioBufferModel
audioBufferModel
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
audioFramesPerPes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
audioPids
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsAudioStreamType
audioStreamType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
bitrate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsBufferModel
bufferModel
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsCcDescriptor
ccDescriptor
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DvbNitSettings
dvbNitSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DvbSdtSettings
dvbSdtSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dvbSubPids
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DvbTdtSettings
dvbTdtSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dvbTeletextPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsEbifControl
ebif
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsAudioInterval
ebpAudioInterval
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
ebpLookaheadMs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsEbpPlacement
ebpPlacement
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ecmPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsEsRateInPes
esRateInPes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
etvPlatformPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
etvSignalPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Double
fragmentTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe M2tsKlv
klv
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
klvDataPids
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe M2tsNielsenId3Behavior
nielsenId3Behavior
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Double
nullPacketBitrate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Natural
patInterval
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe M2tsPcrControl
pcrControl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Natural
pcrPeriod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
pcrPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Natural
pmtInterval
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
pmtPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Natural
programNum
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe M2tsRateMode
rateMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
scte27Pids
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe M2tsScte35Control
scte35Control
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
scte35Pid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe M2tsSegmentationMarkers
segmentationMarkers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe M2tsSegmentationStyle
segmentationStyle
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Double
segmentationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
timedMetadataPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Natural
transportStreamId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
videoPid

instance Data.ToJSON M2tsSettings where
  toJSON :: M2tsSettings -> Value
toJSON M2tsSettings' {Maybe Double
Maybe Natural
Maybe Text
Maybe DvbNitSettings
Maybe DvbSdtSettings
Maybe DvbTdtSettings
Maybe M2tsAbsentInputAudioBehavior
Maybe M2tsArib
Maybe M2tsAribCaptionsPidControl
Maybe M2tsAudioBufferModel
Maybe M2tsAudioInterval
Maybe M2tsAudioStreamType
Maybe M2tsBufferModel
Maybe M2tsCcDescriptor
Maybe M2tsEbifControl
Maybe M2tsEbpPlacement
Maybe M2tsEsRateInPes
Maybe M2tsKlv
Maybe M2tsNielsenId3Behavior
Maybe M2tsPcrControl
Maybe M2tsRateMode
Maybe M2tsScte35Control
Maybe M2tsSegmentationMarkers
Maybe M2tsSegmentationStyle
Maybe M2tsTimedMetadataBehavior
videoPid :: Maybe Text
transportStreamId :: Maybe Natural
timedMetadataPid :: Maybe Text
timedMetadataBehavior :: Maybe M2tsTimedMetadataBehavior
segmentationTime :: Maybe Double
segmentationStyle :: Maybe M2tsSegmentationStyle
segmentationMarkers :: Maybe M2tsSegmentationMarkers
scte35Pid :: Maybe Text
scte35Control :: Maybe M2tsScte35Control
scte27Pids :: Maybe Text
rateMode :: Maybe M2tsRateMode
programNum :: Maybe Natural
pmtPid :: Maybe Text
pmtInterval :: Maybe Natural
pcrPid :: Maybe Text
pcrPeriod :: Maybe Natural
pcrControl :: Maybe M2tsPcrControl
patInterval :: Maybe Natural
nullPacketBitrate :: Maybe Double
nielsenId3Behavior :: Maybe M2tsNielsenId3Behavior
klvDataPids :: Maybe Text
klv :: Maybe M2tsKlv
fragmentTime :: Maybe Double
etvSignalPid :: Maybe Text
etvPlatformPid :: Maybe Text
esRateInPes :: Maybe M2tsEsRateInPes
ecmPid :: Maybe Text
ebpPlacement :: Maybe M2tsEbpPlacement
ebpLookaheadMs :: Maybe Natural
ebpAudioInterval :: Maybe M2tsAudioInterval
ebif :: Maybe M2tsEbifControl
dvbTeletextPid :: Maybe Text
dvbTdtSettings :: Maybe DvbTdtSettings
dvbSubPids :: Maybe Text
dvbSdtSettings :: Maybe DvbSdtSettings
dvbNitSettings :: Maybe DvbNitSettings
ccDescriptor :: Maybe M2tsCcDescriptor
bufferModel :: Maybe M2tsBufferModel
bitrate :: Maybe Natural
audioStreamType :: Maybe M2tsAudioStreamType
audioPids :: Maybe Text
audioFramesPerPes :: Maybe Natural
audioBufferModel :: Maybe M2tsAudioBufferModel
aribCaptionsPidControl :: Maybe M2tsAribCaptionsPidControl
aribCaptionsPid :: Maybe Text
arib :: Maybe M2tsArib
absentInputAudioBehavior :: Maybe M2tsAbsentInputAudioBehavior
$sel:videoPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:transportStreamId:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:timedMetadataPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:timedMetadataBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsTimedMetadataBehavior
$sel:segmentationTime:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:segmentationStyle:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationStyle
$sel:segmentationMarkers:M2tsSettings' :: M2tsSettings -> Maybe M2tsSegmentationMarkers
$sel:scte35Pid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:scte35Control:M2tsSettings' :: M2tsSettings -> Maybe M2tsScte35Control
$sel:scte27Pids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:rateMode:M2tsSettings' :: M2tsSettings -> Maybe M2tsRateMode
$sel:programNum:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pmtPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:pmtInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pcrPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:pcrPeriod:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:pcrControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsPcrControl
$sel:patInterval:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:nullPacketBitrate:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:nielsenId3Behavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsNielsenId3Behavior
$sel:klvDataPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:klv:M2tsSettings' :: M2tsSettings -> Maybe M2tsKlv
$sel:fragmentTime:M2tsSettings' :: M2tsSettings -> Maybe Double
$sel:etvSignalPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:etvPlatformPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:esRateInPes:M2tsSettings' :: M2tsSettings -> Maybe M2tsEsRateInPes
$sel:ecmPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:ebpPlacement:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbpPlacement
$sel:ebpLookaheadMs:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:ebpAudioInterval:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioInterval
$sel:ebif:M2tsSettings' :: M2tsSettings -> Maybe M2tsEbifControl
$sel:dvbTeletextPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:dvbTdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbTdtSettings
$sel:dvbSubPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:dvbSdtSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbSdtSettings
$sel:dvbNitSettings:M2tsSettings' :: M2tsSettings -> Maybe DvbNitSettings
$sel:ccDescriptor:M2tsSettings' :: M2tsSettings -> Maybe M2tsCcDescriptor
$sel:bufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsBufferModel
$sel:bitrate:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:audioStreamType:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioStreamType
$sel:audioPids:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:audioFramesPerPes:M2tsSettings' :: M2tsSettings -> Maybe Natural
$sel:audioBufferModel:M2tsSettings' :: M2tsSettings -> Maybe M2tsAudioBufferModel
$sel:aribCaptionsPidControl:M2tsSettings' :: M2tsSettings -> Maybe M2tsAribCaptionsPidControl
$sel:aribCaptionsPid:M2tsSettings' :: M2tsSettings -> Maybe Text
$sel:arib:M2tsSettings' :: M2tsSettings -> Maybe M2tsArib
$sel:absentInputAudioBehavior:M2tsSettings' :: M2tsSettings -> Maybe M2tsAbsentInputAudioBehavior
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"absentInputAudioBehavior" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior,
            (Key
"arib" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsArib
arib,
            (Key
"aribCaptionsPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
aribCaptionsPid,
            (Key
"aribCaptionsPidControl" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl,
            (Key
"audioBufferModel" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsAudioBufferModel
audioBufferModel,
            (Key
"audioFramesPerPes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
audioFramesPerPes,
            (Key
"audioPids" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
audioPids,
            (Key
"audioStreamType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsAudioStreamType
audioStreamType,
            (Key
"bitrate" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
bitrate,
            (Key
"bufferModel" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsBufferModel
bufferModel,
            (Key
"ccDescriptor" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsCcDescriptor
ccDescriptor,
            (Key
"dvbNitSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbNitSettings
dvbNitSettings,
            (Key
"dvbSdtSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSdtSettings
dvbSdtSettings,
            (Key
"dvbSubPids" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dvbSubPids,
            (Key
"dvbTdtSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbTdtSettings
dvbTdtSettings,
            (Key
"dvbTeletextPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
dvbTeletextPid,
            (Key
"ebif" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsEbifControl
ebif,
            (Key
"ebpAudioInterval" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsAudioInterval
ebpAudioInterval,
            (Key
"ebpLookaheadMs" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
ebpLookaheadMs,
            (Key
"ebpPlacement" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsEbpPlacement
ebpPlacement,
            (Key
"ecmPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
ecmPid,
            (Key
"esRateInPes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsEsRateInPes
esRateInPes,
            (Key
"etvPlatformPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
etvPlatformPid,
            (Key
"etvSignalPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
etvSignalPid,
            (Key
"fragmentTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Double
fragmentTime,
            (Key
"klv" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsKlv
klv,
            (Key
"klvDataPids" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
klvDataPids,
            (Key
"nielsenId3Behavior" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsNielsenId3Behavior
nielsenId3Behavior,
            (Key
"nullPacketBitrate" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Double
nullPacketBitrate,
            (Key
"patInterval" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
patInterval,
            (Key
"pcrControl" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsPcrControl
pcrControl,
            (Key
"pcrPeriod" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
pcrPeriod,
            (Key
"pcrPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
pcrPid,
            (Key
"pmtInterval" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
pmtInterval,
            (Key
"pmtPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
pmtPid,
            (Key
"programNum" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
programNum,
            (Key
"rateMode" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsRateMode
rateMode,
            (Key
"scte27Pids" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
scte27Pids,
            (Key
"scte35Control" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsScte35Control
scte35Control,
            (Key
"scte35Pid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
scte35Pid,
            (Key
"segmentationMarkers" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsSegmentationMarkers
segmentationMarkers,
            (Key
"segmentationStyle" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsSegmentationStyle
segmentationStyle,
            (Key
"segmentationTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Double
segmentationTime,
            (Key
"timedMetadataBehavior" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior,
            (Key
"timedMetadataPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
timedMetadataPid,
            (Key
"transportStreamId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
transportStreamId,
            (Key
"videoPid" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
videoPid
          ]
      )