{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MediaLive.Types.M2tsSettings where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
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'
  { -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | The value of the transport stream ID field in the Program Map Table.
    M2tsSettings -> Maybe Natural
transportStreamId :: Prelude.Maybe Prelude.Natural,
    -- | The value of the program number field in the Program Map Table.
    M2tsSettings -> Maybe Natural
programNum :: Prelude.Maybe Prelude.Natural,
    -- | The length in seconds of each fragment. Only used with EBP markers.
    M2tsSettings -> Maybe Double
fragmentTime :: 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,
    -- | When set to enabled, generates captionServiceDescriptor in PMT.
    M2tsSettings -> Maybe M2tsCcDescriptor
ccDescriptor :: Prelude.Maybe M2tsCcDescriptor,
    -- | 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,
    -- | Inserts DVB Service Description Table (SDT) at the specified table
    -- repetition interval.
    M2tsSettings -> Maybe DvbSdtSettings
dvbSdtSettings :: Prelude.Maybe DvbSdtSettings,
    -- | This field is unused and deprecated.
    M2tsSettings -> Maybe Text
ecmPid :: Prelude.Maybe Prelude.Text,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | If set to passthrough, passes any KLV data from the input source to this
    -- output.
    M2tsSettings -> Maybe M2tsKlv
klv :: Prelude.Maybe M2tsKlv,
    -- | The number of audio frames to insert for each PES packet.
    M2tsSettings -> Maybe Natural
audioFramesPerPes :: Prelude.Maybe Prelude.Natural,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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 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,
    -- | 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,
    -- | 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,
    -- | Optionally pass SCTE-35 signals from the input source to this output.
    M2tsSettings -> Maybe M2tsScte35Control
scte35Control :: Prelude.Maybe M2tsScte35Control,
    -- | 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,
    -- | 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 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,
    -- | 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,
    -- | The length in seconds of each segment. Required unless markers is set to
    -- _none_.
    M2tsSettings -> Maybe Double
segmentationTime :: Prelude.Maybe Prelude.Double,
    -- | 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,
    -- | Inserts DVB Network Information Table (NIT) at the specified table
    -- repetition interval.
    M2tsSettings -> Maybe DvbNitSettings
dvbNitSettings :: Prelude.Maybe DvbNitSettings,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | 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,
    -- | Inserts DVB Time and Date Table (TDT) at the specified table repetition
    -- interval.
    M2tsSettings -> Maybe DvbTdtSettings
dvbTdtSettings :: Prelude.Maybe DvbTdtSettings
  }
  deriving (M2tsSettings -> M2tsSettings -> Bool
(M2tsSettings -> M2tsSettings -> Bool)
-> (M2tsSettings -> M2tsSettings -> Bool) -> Eq M2tsSettings
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]
(Int -> ReadS M2tsSettings)
-> ReadS [M2tsSettings]
-> ReadPrec M2tsSettings
-> ReadPrec [M2tsSettings]
-> Read 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
(Int -> M2tsSettings -> ShowS)
-> (M2tsSettings -> String)
-> ([M2tsSettings] -> ShowS)
-> Show M2tsSettings
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. M2tsSettings -> Rep M2tsSettings x)
-> (forall x. Rep M2tsSettings x -> M2tsSettings)
-> Generic M2tsSettings
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:
--
-- '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).
--
-- '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).
--
-- '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).
--
-- '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.
--
-- '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.
--
-- '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).
--
-- 'transportStreamId', 'm2tsSettings_transportStreamId' - The value of the transport stream ID field in the Program Map Table.
--
-- 'programNum', 'm2tsSettings_programNum' - The value of the program number field in the Program Map Table.
--
-- 'fragmentTime', 'm2tsSettings_fragmentTime' - The length in seconds of each fragment. Only used with EBP markers.
--
-- 'timedMetadataBehavior', 'm2tsSettings_timedMetadataBehavior' - When set to passthrough, timed metadata will be passed through from
-- input to output.
--
-- 'ccDescriptor', 'm2tsSettings_ccDescriptor' - When set to enabled, generates captionServiceDescriptor in PMT.
--
-- 'pmtInterval', 'm2tsSettings_pmtInterval' - The number of milliseconds between instances of this table in the output
-- transport stream. Valid values are 0, 10..1000.
--
-- 'dvbSdtSettings', 'm2tsSettings_dvbSdtSettings' - Inserts DVB Service Description Table (SDT) at the specified table
-- repetition interval.
--
-- 'ecmPid', 'm2tsSettings_ecmPid' - This field is unused and deprecated.
--
-- '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.
--
-- 'audioBufferModel', 'm2tsSettings_audioBufferModel' - When set to dvb, uses DVB buffer model for Dolby Digital audio. When set
-- to atsc, the ATSC model is used.
--
-- '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).
--
-- 'klv', 'm2tsSettings_klv' - If set to passthrough, passes any KLV data from the input source to this
-- output.
--
-- 'audioFramesPerPes', 'm2tsSettings_audioFramesPerPes' - The number of audio frames to insert for each PES packet.
--
-- '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).
--
-- '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.
--
-- '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.
--
-- '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).
--
-- '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.
--
-- '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).
--
-- '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).
--
-- 'patInterval', 'm2tsSettings_patInterval' - The number of milliseconds between instances of this table in the output
-- transport stream. Valid values are 0, 10..1000.
--
-- '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.
--
-- '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).
--
-- '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.
--
-- 'scte35Control', 'm2tsSettings_scte35Control' - Optionally pass SCTE-35 signals from the input source to this output.
--
-- '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).
--
-- '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.
--
-- '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).
--
-- '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.
--
-- 'segmentationTime', 'm2tsSettings_segmentationTime' - The length in seconds of each segment. Required unless markers is set to
-- _none_.
--
-- '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.
--
-- 'dvbNitSettings', 'm2tsSettings_dvbNitSettings' - Inserts DVB Network Information Table (NIT) at the specified table
-- repetition interval.
--
-- '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.
--
-- '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.
--
-- '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.
--
-- '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.
--
-- 'dvbTdtSettings', 'm2tsSettings_dvbTdtSettings' - Inserts DVB Time and Date Table (TDT) at the specified table repetition
-- interval.
newM2tsSettings ::
  M2tsSettings
newM2tsSettings :: M2tsSettings
newM2tsSettings =
  M2tsSettings' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe M2tsNielsenId3Behavior
-> Maybe M2tsBufferModel
-> Maybe Text
-> Maybe Natural
-> Maybe Natural
-> Maybe Double
-> Maybe M2tsTimedMetadataBehavior
-> Maybe M2tsCcDescriptor
-> Maybe Natural
-> Maybe DvbSdtSettings
-> Maybe Text
-> Maybe Double
-> Maybe M2tsAudioBufferModel
-> Maybe Text
-> Maybe M2tsKlv
-> Maybe Natural
-> Maybe Natural
-> Maybe Text
-> Maybe M2tsSegmentationMarkers
-> Maybe M2tsAribCaptionsPidControl
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe Text
-> Maybe Natural
-> Maybe M2tsAudioStreamType
-> Maybe M2tsEsRateInPes
-> Maybe Text
-> Maybe Natural
-> Maybe M2tsScte35Control
-> Maybe Text
-> Maybe Text
-> Maybe M2tsEbifControl
-> Maybe M2tsArib
-> Maybe Text
-> Maybe M2tsAbsentInputAudioBehavior
-> Maybe Double
-> Maybe M2tsAudioInterval
-> Maybe DvbNitSettings
-> Maybe M2tsPcrControl
-> Maybe M2tsEbpPlacement
-> Maybe M2tsRateMode
-> Maybe M2tsSegmentationStyle
-> Maybe DvbTdtSettings
-> M2tsSettings
M2tsSettings'
    { $sel:pmtPid:M2tsSettings' :: Maybe Text
pmtPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:etvSignalPid:M2tsSettings' :: Maybe Text
etvSignalPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:videoPid:M2tsSettings' :: Maybe Text
videoPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:nielsenId3Behavior:M2tsSettings' :: Maybe M2tsNielsenId3Behavior
nielsenId3Behavior = Maybe M2tsNielsenId3Behavior
forall a. Maybe a
Prelude.Nothing,
      $sel:bufferModel:M2tsSettings' :: Maybe M2tsBufferModel
bufferModel = Maybe M2tsBufferModel
forall a. Maybe a
Prelude.Nothing,
      $sel:scte35Pid:M2tsSettings' :: Maybe Text
scte35Pid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:transportStreamId:M2tsSettings' :: Maybe Natural
transportStreamId = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:programNum:M2tsSettings' :: Maybe Natural
programNum = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:fragmentTime:M2tsSettings' :: Maybe Double
fragmentTime = Maybe Double
forall a. Maybe a
Prelude.Nothing,
      $sel:timedMetadataBehavior:M2tsSettings' :: Maybe M2tsTimedMetadataBehavior
timedMetadataBehavior = Maybe M2tsTimedMetadataBehavior
forall a. Maybe a
Prelude.Nothing,
      $sel:ccDescriptor:M2tsSettings' :: Maybe M2tsCcDescriptor
ccDescriptor = Maybe M2tsCcDescriptor
forall a. Maybe a
Prelude.Nothing,
      $sel:pmtInterval:M2tsSettings' :: Maybe Natural
pmtInterval = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:dvbSdtSettings:M2tsSettings' :: Maybe DvbSdtSettings
dvbSdtSettings = Maybe DvbSdtSettings
forall a. Maybe a
Prelude.Nothing,
      $sel:ecmPid:M2tsSettings' :: Maybe Text
ecmPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:nullPacketBitrate:M2tsSettings' :: Maybe Double
nullPacketBitrate = Maybe Double
forall a. Maybe a
Prelude.Nothing,
      $sel:audioBufferModel:M2tsSettings' :: Maybe M2tsAudioBufferModel
audioBufferModel = Maybe M2tsAudioBufferModel
forall a. Maybe a
Prelude.Nothing,
      $sel:timedMetadataPid:M2tsSettings' :: Maybe Text
timedMetadataPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:klv:M2tsSettings' :: Maybe M2tsKlv
klv = Maybe M2tsKlv
forall a. Maybe a
Prelude.Nothing,
      $sel:audioFramesPerPes:M2tsSettings' :: Maybe Natural
audioFramesPerPes = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:pcrPeriod:M2tsSettings' :: Maybe Natural
pcrPeriod = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:pcrPid:M2tsSettings' :: Maybe Text
pcrPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:segmentationMarkers:M2tsSettings' :: Maybe M2tsSegmentationMarkers
segmentationMarkers = Maybe M2tsSegmentationMarkers
forall a. Maybe a
Prelude.Nothing,
      $sel:aribCaptionsPidControl:M2tsSettings' :: Maybe M2tsAribCaptionsPidControl
aribCaptionsPidControl = Maybe M2tsAribCaptionsPidControl
forall a. Maybe a
Prelude.Nothing,
      $sel:klvDataPids:M2tsSettings' :: Maybe Text
klvDataPids = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:ebpLookaheadMs:M2tsSettings' :: Maybe Natural
ebpLookaheadMs = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:dvbSubPids:M2tsSettings' :: Maybe Text
dvbSubPids = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:scte27Pids:M2tsSettings' :: Maybe Text
scte27Pids = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:patInterval:M2tsSettings' :: Maybe Natural
patInterval = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:audioStreamType:M2tsSettings' :: Maybe M2tsAudioStreamType
audioStreamType = Maybe M2tsAudioStreamType
forall a. Maybe a
Prelude.Nothing,
      $sel:esRateInPes:M2tsSettings' :: Maybe M2tsEsRateInPes
esRateInPes = Maybe M2tsEsRateInPes
forall a. Maybe a
Prelude.Nothing,
      $sel:etvPlatformPid:M2tsSettings' :: Maybe Text
etvPlatformPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:bitrate:M2tsSettings' :: Maybe Natural
bitrate = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:scte35Control:M2tsSettings' :: Maybe M2tsScte35Control
scte35Control = Maybe M2tsScte35Control
forall a. Maybe a
Prelude.Nothing,
      $sel:audioPids:M2tsSettings' :: Maybe Text
audioPids = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:dvbTeletextPid:M2tsSettings' :: Maybe Text
dvbTeletextPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:ebif:M2tsSettings' :: Maybe M2tsEbifControl
ebif = Maybe M2tsEbifControl
forall a. Maybe a
Prelude.Nothing,
      $sel:arib:M2tsSettings' :: Maybe M2tsArib
arib = Maybe M2tsArib
forall a. Maybe a
Prelude.Nothing,
      $sel:aribCaptionsPid:M2tsSettings' :: Maybe Text
aribCaptionsPid = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:absentInputAudioBehavior:M2tsSettings' :: Maybe M2tsAbsentInputAudioBehavior
absentInputAudioBehavior = Maybe M2tsAbsentInputAudioBehavior
forall a. Maybe a
Prelude.Nothing,
      $sel:segmentationTime:M2tsSettings' :: Maybe Double
segmentationTime = Maybe Double
forall a. Maybe a
Prelude.Nothing,
      $sel:ebpAudioInterval:M2tsSettings' :: Maybe M2tsAudioInterval
ebpAudioInterval = Maybe M2tsAudioInterval
forall a. Maybe a
Prelude.Nothing,
      $sel:dvbNitSettings:M2tsSettings' :: Maybe DvbNitSettings
dvbNitSettings = Maybe DvbNitSettings
forall a. Maybe a
Prelude.Nothing,
      $sel:pcrControl:M2tsSettings' :: Maybe M2tsPcrControl
pcrControl = Maybe M2tsPcrControl
forall a. Maybe a
Prelude.Nothing,
      $sel:ebpPlacement:M2tsSettings' :: Maybe M2tsEbpPlacement
ebpPlacement = Maybe M2tsEbpPlacement
forall a. Maybe a
Prelude.Nothing,
      $sel:rateMode:M2tsSettings' :: Maybe M2tsRateMode
rateMode = Maybe M2tsRateMode
forall a. Maybe a
Prelude.Nothing,
      $sel:segmentationStyle:M2tsSettings' :: Maybe M2tsSegmentationStyle
segmentationStyle = Maybe M2tsSegmentationStyle
forall a. Maybe a
Prelude.Nothing,
      $sel:dvbTdtSettings:M2tsSettings' :: Maybe DvbTdtSettings
dvbTdtSettings = Maybe DvbTdtSettings
forall a. Maybe a
Prelude.Nothing
    }

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_pmtPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_etvSignalPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_videoPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe M2tsNielsenId3Behavior -> f (Maybe M2tsNielsenId3Behavior))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_nielsenId3Behavior = (M2tsSettings -> Maybe M2tsNielsenId3Behavior)
-> (M2tsSettings -> Maybe M2tsNielsenId3Behavior -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsNielsenId3Behavior)
     (Maybe M2tsNielsenId3Behavior)
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)

-- | 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 :: (Maybe M2tsBufferModel -> f (Maybe M2tsBufferModel))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_bufferModel = (M2tsSettings -> Maybe M2tsBufferModel)
-> (M2tsSettings -> Maybe M2tsBufferModel -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsBufferModel)
     (Maybe M2tsBufferModel)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_scte35Pid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | The value of the transport stream ID field in the Program Map Table.
m2tsSettings_transportStreamId :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_transportStreamId :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_transportStreamId = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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)

-- | The value of the program number field in the Program Map Table.
m2tsSettings_programNum :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_programNum :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_programNum = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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)

-- | The length in seconds of each fragment. Only used with EBP markers.
m2tsSettings_fragmentTime :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Double)
m2tsSettings_fragmentTime :: (Maybe Double -> f (Maybe Double))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_fragmentTime = (M2tsSettings -> Maybe Double)
-> (M2tsSettings -> Maybe Double -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Double) (Maybe Double)
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)

-- | When set to passthrough, timed metadata will be passed through from
-- input to output.
m2tsSettings_timedMetadataBehavior :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsTimedMetadataBehavior)
m2tsSettings_timedMetadataBehavior :: (Maybe M2tsTimedMetadataBehavior
 -> f (Maybe M2tsTimedMetadataBehavior))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_timedMetadataBehavior = (M2tsSettings -> Maybe M2tsTimedMetadataBehavior)
-> (M2tsSettings
    -> Maybe M2tsTimedMetadataBehavior -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsTimedMetadataBehavior)
     (Maybe M2tsTimedMetadataBehavior)
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)

-- | When set to enabled, generates captionServiceDescriptor in PMT.
m2tsSettings_ccDescriptor :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsCcDescriptor)
m2tsSettings_ccDescriptor :: (Maybe M2tsCcDescriptor -> f (Maybe M2tsCcDescriptor))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_ccDescriptor = (M2tsSettings -> Maybe M2tsCcDescriptor)
-> (M2tsSettings -> Maybe M2tsCcDescriptor -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsCcDescriptor)
     (Maybe M2tsCcDescriptor)
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)

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_pmtInterval = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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)

-- | Inserts DVB Service Description Table (SDT) at the specified table
-- repetition interval.
m2tsSettings_dvbSdtSettings :: Lens.Lens' M2tsSettings (Prelude.Maybe DvbSdtSettings)
m2tsSettings_dvbSdtSettings :: (Maybe DvbSdtSettings -> f (Maybe DvbSdtSettings))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_dvbSdtSettings = (M2tsSettings -> Maybe DvbSdtSettings)
-> (M2tsSettings -> Maybe DvbSdtSettings -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe DvbSdtSettings)
     (Maybe 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)

-- | This field is unused and deprecated.
m2tsSettings_ecmPid :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Text)
m2tsSettings_ecmPid :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_ecmPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Double -> f (Maybe Double))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_nullPacketBitrate = (M2tsSettings -> Maybe Double)
-> (M2tsSettings -> Maybe Double -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Double) (Maybe Double)
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)

-- | 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 :: (Maybe M2tsAudioBufferModel -> f (Maybe M2tsAudioBufferModel))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_audioBufferModel = (M2tsSettings -> Maybe M2tsAudioBufferModel)
-> (M2tsSettings -> Maybe M2tsAudioBufferModel -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsAudioBufferModel)
     (Maybe M2tsAudioBufferModel)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_timedMetadataPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe M2tsKlv -> f (Maybe M2tsKlv))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_klv = (M2tsSettings -> Maybe M2tsKlv)
-> (M2tsSettings -> Maybe M2tsKlv -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe M2tsKlv) (Maybe M2tsKlv)
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)

-- | The number of audio frames to insert for each PES packet.
m2tsSettings_audioFramesPerPes :: Lens.Lens' M2tsSettings (Prelude.Maybe Prelude.Natural)
m2tsSettings_audioFramesPerPes :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_audioFramesPerPes = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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)

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_pcrPeriod = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_pcrPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe M2tsSegmentationMarkers
 -> f (Maybe M2tsSegmentationMarkers))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_segmentationMarkers = (M2tsSettings -> Maybe M2tsSegmentationMarkers)
-> (M2tsSettings -> Maybe M2tsSegmentationMarkers -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsSegmentationMarkers)
     (Maybe M2tsSegmentationMarkers)
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)

-- | 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 :: (Maybe M2tsAribCaptionsPidControl
 -> f (Maybe M2tsAribCaptionsPidControl))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_aribCaptionsPidControl = (M2tsSettings -> Maybe M2tsAribCaptionsPidControl)
-> (M2tsSettings
    -> Maybe M2tsAribCaptionsPidControl -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsAribCaptionsPidControl)
     (Maybe M2tsAribCaptionsPidControl)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_klvDataPids = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_ebpLookaheadMs = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_dvbSubPids = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_scte27Pids = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_patInterval = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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 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 :: (Maybe M2tsAudioStreamType -> f (Maybe M2tsAudioStreamType))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_audioStreamType = (M2tsSettings -> Maybe M2tsAudioStreamType)
-> (M2tsSettings -> Maybe M2tsAudioStreamType -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsAudioStreamType)
     (Maybe M2tsAudioStreamType)
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)

-- | Include or exclude the ES Rate field in the PES header.
m2tsSettings_esRateInPes :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsEsRateInPes)
m2tsSettings_esRateInPes :: (Maybe M2tsEsRateInPes -> f (Maybe M2tsEsRateInPes))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_esRateInPes = (M2tsSettings -> Maybe M2tsEsRateInPes)
-> (M2tsSettings -> Maybe M2tsEsRateInPes -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsEsRateInPes)
     (Maybe M2tsEsRateInPes)
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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_etvPlatformPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_bitrate = (M2tsSettings -> Maybe Natural)
-> (M2tsSettings -> Maybe Natural -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Natural) (Maybe Natural)
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)

-- | Optionally pass SCTE-35 signals from the input source to this output.
m2tsSettings_scte35Control :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsScte35Control)
m2tsSettings_scte35Control :: (Maybe M2tsScte35Control -> f (Maybe M2tsScte35Control))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_scte35Control = (M2tsSettings -> Maybe M2tsScte35Control)
-> (M2tsSettings -> Maybe M2tsScte35Control -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsScte35Control)
     (Maybe M2tsScte35Control)
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 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_audioPids = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_dvbTeletextPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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 :: (Maybe M2tsEbifControl -> f (Maybe M2tsEbifControl))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_ebif = (M2tsSettings -> Maybe M2tsEbifControl)
-> (M2tsSettings -> Maybe M2tsEbifControl -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsEbifControl)
     (Maybe M2tsEbifControl)
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 set to enabled, uses ARIB-compliant field muxing and removes video
-- descriptor.
m2tsSettings_arib :: Lens.Lens' M2tsSettings (Prelude.Maybe M2tsArib)
m2tsSettings_arib :: (Maybe M2tsArib -> f (Maybe M2tsArib))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_arib = (M2tsSettings -> Maybe M2tsArib)
-> (M2tsSettings -> Maybe M2tsArib -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe M2tsArib) (Maybe M2tsArib)
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 :: (Maybe Text -> f (Maybe Text)) -> M2tsSettings -> f M2tsSettings
m2tsSettings_aribCaptionsPid = (M2tsSettings -> Maybe Text)
-> (M2tsSettings -> Maybe Text -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe M2tsAbsentInputAudioBehavior
 -> f (Maybe M2tsAbsentInputAudioBehavior))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_absentInputAudioBehavior = (M2tsSettings -> Maybe M2tsAbsentInputAudioBehavior)
-> (M2tsSettings
    -> Maybe M2tsAbsentInputAudioBehavior -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsAbsentInputAudioBehavior)
     (Maybe M2tsAbsentInputAudioBehavior)
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)

-- | 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 :: (Maybe Double -> f (Maybe Double))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_segmentationTime = (M2tsSettings -> Maybe Double)
-> (M2tsSettings -> Maybe Double -> M2tsSettings)
-> Lens M2tsSettings M2tsSettings (Maybe Double) (Maybe Double)
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 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 :: (Maybe M2tsAudioInterval -> f (Maybe M2tsAudioInterval))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_ebpAudioInterval = (M2tsSettings -> Maybe M2tsAudioInterval)
-> (M2tsSettings -> Maybe M2tsAudioInterval -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsAudioInterval)
     (Maybe M2tsAudioInterval)
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)

-- | Inserts DVB Network Information Table (NIT) at the specified table
-- repetition interval.
m2tsSettings_dvbNitSettings :: Lens.Lens' M2tsSettings (Prelude.Maybe DvbNitSettings)
m2tsSettings_dvbNitSettings :: (Maybe DvbNitSettings -> f (Maybe DvbNitSettings))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_dvbNitSettings = (M2tsSettings -> Maybe DvbNitSettings)
-> (M2tsSettings -> Maybe DvbNitSettings -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe DvbNitSettings)
     (Maybe 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)

-- | 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 :: (Maybe M2tsPcrControl -> f (Maybe M2tsPcrControl))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_pcrControl = (M2tsSettings -> Maybe M2tsPcrControl)
-> (M2tsSettings -> Maybe M2tsPcrControl -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsPcrControl)
     (Maybe M2tsPcrControl)
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)

-- | 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 :: (Maybe M2tsEbpPlacement -> f (Maybe M2tsEbpPlacement))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_ebpPlacement = (M2tsSettings -> Maybe M2tsEbpPlacement)
-> (M2tsSettings -> Maybe M2tsEbpPlacement -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsEbpPlacement)
     (Maybe M2tsEbpPlacement)
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)

-- | 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 :: (Maybe M2tsRateMode -> f (Maybe M2tsRateMode))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_rateMode = (M2tsSettings -> Maybe M2tsRateMode)
-> (M2tsSettings -> Maybe M2tsRateMode -> M2tsSettings)
-> Lens
     M2tsSettings M2tsSettings (Maybe M2tsRateMode) (Maybe M2tsRateMode)
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)

-- | 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 :: (Maybe M2tsSegmentationStyle -> f (Maybe M2tsSegmentationStyle))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_segmentationStyle = (M2tsSettings -> Maybe M2tsSegmentationStyle)
-> (M2tsSettings -> Maybe M2tsSegmentationStyle -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe M2tsSegmentationStyle)
     (Maybe M2tsSegmentationStyle)
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)

-- | Inserts DVB Time and Date Table (TDT) at the specified table repetition
-- interval.
m2tsSettings_dvbTdtSettings :: Lens.Lens' M2tsSettings (Prelude.Maybe DvbTdtSettings)
m2tsSettings_dvbTdtSettings :: (Maybe DvbTdtSettings -> f (Maybe DvbTdtSettings))
-> M2tsSettings -> f M2tsSettings
m2tsSettings_dvbTdtSettings = (M2tsSettings -> Maybe DvbTdtSettings)
-> (M2tsSettings -> Maybe DvbTdtSettings -> M2tsSettings)
-> Lens
     M2tsSettings
     M2tsSettings
     (Maybe DvbTdtSettings)
     (Maybe 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)

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

instance Prelude.Hashable M2tsSettings

instance Prelude.NFData M2tsSettings

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