{-# 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.Eac3AtmosSettings -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.MediaLive.Types.Eac3AtmosSettings where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.MediaLive.Types.Eac3AtmosCodingMode import Amazonka.MediaLive.Types.Eac3AtmosDrcLine import Amazonka.MediaLive.Types.Eac3AtmosDrcRf import qualified Amazonka.Prelude as Prelude -- | Eac3 Atmos Settings -- -- /See:/ 'newEac3AtmosSettings' smart constructor. data Eac3AtmosSettings = Eac3AtmosSettings' { -- | Average bitrate in bits\/second. Valid bitrates depend on the coding -- mode. \/\/ * \@affectsRightSizing true bitrate :: Prelude.Maybe Prelude.Double, -- | Dolby Digital Plus with Dolby Atmos coding mode. Determines number of -- channels. codingMode :: Prelude.Maybe Eac3AtmosCodingMode, -- | Sets the dialnorm for the output. Default 23. dialnorm :: Prelude.Maybe Prelude.Natural, -- | Sets the Dolby dynamic range compression profile. drcLine :: Prelude.Maybe Eac3AtmosDrcLine, -- | Sets the profile for heavy Dolby dynamic range compression, ensures that -- the instantaneous signal peaks do not exceed specified levels. drcRf :: Prelude.Maybe Eac3AtmosDrcRf, -- | Height dimensional trim. Sets the maximum amount to attenuate the height -- channels when the downstream player isn??t configured to handle Dolby -- Digital Plus with Dolby Atmos and must remix the channels. heightTrim :: Prelude.Maybe Prelude.Double, -- | Surround dimensional trim. Sets the maximum amount to attenuate the -- surround channels when the downstream player isn\'t configured to handle -- Dolby Digital Plus with Dolby Atmos and must remix the channels. surroundTrim :: Prelude.Maybe Prelude.Double } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'Eac3AtmosSettings' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'bitrate', 'eac3AtmosSettings_bitrate' - Average bitrate in bits\/second. Valid bitrates depend on the coding -- mode. \/\/ * \@affectsRightSizing true -- -- 'codingMode', 'eac3AtmosSettings_codingMode' - Dolby Digital Plus with Dolby Atmos coding mode. Determines number of -- channels. -- -- 'dialnorm', 'eac3AtmosSettings_dialnorm' - Sets the dialnorm for the output. Default 23. -- -- 'drcLine', 'eac3AtmosSettings_drcLine' - Sets the Dolby dynamic range compression profile. -- -- 'drcRf', 'eac3AtmosSettings_drcRf' - Sets the profile for heavy Dolby dynamic range compression, ensures that -- the instantaneous signal peaks do not exceed specified levels. -- -- 'heightTrim', 'eac3AtmosSettings_heightTrim' - Height dimensional trim. Sets the maximum amount to attenuate the height -- channels when the downstream player isn??t configured to handle Dolby -- Digital Plus with Dolby Atmos and must remix the channels. -- -- 'surroundTrim', 'eac3AtmosSettings_surroundTrim' - Surround dimensional trim. Sets the maximum amount to attenuate the -- surround channels when the downstream player isn\'t configured to handle -- Dolby Digital Plus with Dolby Atmos and must remix the channels. newEac3AtmosSettings :: Eac3AtmosSettings newEac3AtmosSettings = Eac3AtmosSettings' { bitrate = Prelude.Nothing, codingMode = Prelude.Nothing, dialnorm = Prelude.Nothing, drcLine = Prelude.Nothing, drcRf = Prelude.Nothing, heightTrim = Prelude.Nothing, surroundTrim = Prelude.Nothing } -- | Average bitrate in bits\/second. Valid bitrates depend on the coding -- mode. \/\/ * \@affectsRightSizing true eac3AtmosSettings_bitrate :: Lens.Lens' Eac3AtmosSettings (Prelude.Maybe Prelude.Double) eac3AtmosSettings_bitrate = Lens.lens (\Eac3AtmosSettings' {bitrate} -> bitrate) (\s@Eac3AtmosSettings' {} a -> s {bitrate = a} :: Eac3AtmosSettings) -- | Dolby Digital Plus with Dolby Atmos coding mode. Determines number of -- channels. eac3AtmosSettings_codingMode :: Lens.Lens' Eac3AtmosSettings (Prelude.Maybe Eac3AtmosCodingMode) eac3AtmosSettings_codingMode = Lens.lens (\Eac3AtmosSettings' {codingMode} -> codingMode) (\s@Eac3AtmosSettings' {} a -> s {codingMode = a} :: Eac3AtmosSettings) -- | Sets the dialnorm for the output. Default 23. eac3AtmosSettings_dialnorm :: Lens.Lens' Eac3AtmosSettings (Prelude.Maybe Prelude.Natural) eac3AtmosSettings_dialnorm = Lens.lens (\Eac3AtmosSettings' {dialnorm} -> dialnorm) (\s@Eac3AtmosSettings' {} a -> s {dialnorm = a} :: Eac3AtmosSettings) -- | Sets the Dolby dynamic range compression profile. eac3AtmosSettings_drcLine :: Lens.Lens' Eac3AtmosSettings (Prelude.Maybe Eac3AtmosDrcLine) eac3AtmosSettings_drcLine = Lens.lens (\Eac3AtmosSettings' {drcLine} -> drcLine) (\s@Eac3AtmosSettings' {} a -> s {drcLine = a} :: Eac3AtmosSettings) -- | Sets the profile for heavy Dolby dynamic range compression, ensures that -- the instantaneous signal peaks do not exceed specified levels. eac3AtmosSettings_drcRf :: Lens.Lens' Eac3AtmosSettings (Prelude.Maybe Eac3AtmosDrcRf) eac3AtmosSettings_drcRf = Lens.lens (\Eac3AtmosSettings' {drcRf} -> drcRf) (\s@Eac3AtmosSettings' {} a -> s {drcRf = a} :: Eac3AtmosSettings) -- | Height dimensional trim. Sets the maximum amount to attenuate the height -- channels when the downstream player isn??t configured to handle Dolby -- Digital Plus with Dolby Atmos and must remix the channels. eac3AtmosSettings_heightTrim :: Lens.Lens' Eac3AtmosSettings (Prelude.Maybe Prelude.Double) eac3AtmosSettings_heightTrim = Lens.lens (\Eac3AtmosSettings' {heightTrim} -> heightTrim) (\s@Eac3AtmosSettings' {} a -> s {heightTrim = a} :: Eac3AtmosSettings) -- | Surround dimensional trim. Sets the maximum amount to attenuate the -- surround channels when the downstream player isn\'t configured to handle -- Dolby Digital Plus with Dolby Atmos and must remix the channels. eac3AtmosSettings_surroundTrim :: Lens.Lens' Eac3AtmosSettings (Prelude.Maybe Prelude.Double) eac3AtmosSettings_surroundTrim = Lens.lens (\Eac3AtmosSettings' {surroundTrim} -> surroundTrim) (\s@Eac3AtmosSettings' {} a -> s {surroundTrim = a} :: Eac3AtmosSettings) instance Data.FromJSON Eac3AtmosSettings where parseJSON = Data.withObject "Eac3AtmosSettings" ( \x -> Eac3AtmosSettings' Prelude.<$> (x Data..:? "bitrate") Prelude.<*> (x Data..:? "codingMode") Prelude.<*> (x Data..:? "dialnorm") Prelude.<*> (x Data..:? "drcLine") Prelude.<*> (x Data..:? "drcRf") Prelude.<*> (x Data..:? "heightTrim") Prelude.<*> (x Data..:? "surroundTrim") ) instance Prelude.Hashable Eac3AtmosSettings where hashWithSalt _salt Eac3AtmosSettings' {..} = _salt `Prelude.hashWithSalt` bitrate `Prelude.hashWithSalt` codingMode `Prelude.hashWithSalt` dialnorm `Prelude.hashWithSalt` drcLine `Prelude.hashWithSalt` drcRf `Prelude.hashWithSalt` heightTrim `Prelude.hashWithSalt` surroundTrim instance Prelude.NFData Eac3AtmosSettings where rnf Eac3AtmosSettings' {..} = Prelude.rnf bitrate `Prelude.seq` Prelude.rnf codingMode `Prelude.seq` Prelude.rnf dialnorm `Prelude.seq` Prelude.rnf drcLine `Prelude.seq` Prelude.rnf drcRf `Prelude.seq` Prelude.rnf heightTrim `Prelude.seq` Prelude.rnf surroundTrim instance Data.ToJSON Eac3AtmosSettings where toJSON Eac3AtmosSettings' {..} = Data.object ( Prelude.catMaybes [ ("bitrate" Data..=) Prelude.<$> bitrate, ("codingMode" Data..=) Prelude.<$> codingMode, ("dialnorm" Data..=) Prelude.<$> dialnorm, ("drcLine" Data..=) Prelude.<$> drcLine, ("drcRf" Data..=) Prelude.<$> drcRf, ("heightTrim" Data..=) Prelude.<$> heightTrim, ("surroundTrim" Data..=) Prelude.<$> surroundTrim ] )