{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

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

-- |
-- Module      : Amazonka.MediaConvert.Types.DashIsoPlaybackDeviceCompatibility
-- 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.MediaConvert.Types.DashIsoPlaybackDeviceCompatibility
  ( DashIsoPlaybackDeviceCompatibility
      ( ..,
        DashIsoPlaybackDeviceCompatibility_CENC_V1,
        DashIsoPlaybackDeviceCompatibility_UNENCRYPTED_SEI
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | This setting can improve the compatibility of your output with video
-- players on obsolete devices. It applies only to DASH H.264 outputs with
-- DRM encryption. Choose Unencrypted SEI (UNENCRYPTED_SEI) only to correct
-- problems with playback on older devices. Otherwise, keep the default
-- setting CENC v1 (CENC_V1). If you choose Unencrypted SEI, for that
-- output, the service will exclude the access unit delimiter and will
-- leave the SEI NAL units unencrypted.
newtype DashIsoPlaybackDeviceCompatibility = DashIsoPlaybackDeviceCompatibility'
  { DashIsoPlaybackDeviceCompatibility -> Text
fromDashIsoPlaybackDeviceCompatibility ::
      Data.Text
  }
  deriving stock
    ( Int -> DashIsoPlaybackDeviceCompatibility -> ShowS
[DashIsoPlaybackDeviceCompatibility] -> ShowS
DashIsoPlaybackDeviceCompatibility -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DashIsoPlaybackDeviceCompatibility] -> ShowS
$cshowList :: [DashIsoPlaybackDeviceCompatibility] -> ShowS
show :: DashIsoPlaybackDeviceCompatibility -> String
$cshow :: DashIsoPlaybackDeviceCompatibility -> String
showsPrec :: Int -> DashIsoPlaybackDeviceCompatibility -> ShowS
$cshowsPrec :: Int -> DashIsoPlaybackDeviceCompatibility -> ShowS
Prelude.Show,
      ReadPrec [DashIsoPlaybackDeviceCompatibility]
ReadPrec DashIsoPlaybackDeviceCompatibility
Int -> ReadS DashIsoPlaybackDeviceCompatibility
ReadS [DashIsoPlaybackDeviceCompatibility]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DashIsoPlaybackDeviceCompatibility]
$creadListPrec :: ReadPrec [DashIsoPlaybackDeviceCompatibility]
readPrec :: ReadPrec DashIsoPlaybackDeviceCompatibility
$creadPrec :: ReadPrec DashIsoPlaybackDeviceCompatibility
readList :: ReadS [DashIsoPlaybackDeviceCompatibility]
$creadList :: ReadS [DashIsoPlaybackDeviceCompatibility]
readsPrec :: Int -> ReadS DashIsoPlaybackDeviceCompatibility
$creadsPrec :: Int -> ReadS DashIsoPlaybackDeviceCompatibility
Prelude.Read,
      DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
$c/= :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
== :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
$c== :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
Prelude.Eq,
      Eq DashIsoPlaybackDeviceCompatibility
DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Ordering
DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
$cmin :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
max :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
$cmax :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility
>= :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
$c>= :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
> :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
$c> :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
<= :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
$c<= :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
< :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
$c< :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Bool
compare :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Ordering
$ccompare :: DashIsoPlaybackDeviceCompatibility
-> DashIsoPlaybackDeviceCompatibility -> Ordering
Prelude.Ord,
      forall x.
Rep DashIsoPlaybackDeviceCompatibility x
-> DashIsoPlaybackDeviceCompatibility
forall x.
DashIsoPlaybackDeviceCompatibility
-> Rep DashIsoPlaybackDeviceCompatibility x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DashIsoPlaybackDeviceCompatibility x
-> DashIsoPlaybackDeviceCompatibility
$cfrom :: forall x.
DashIsoPlaybackDeviceCompatibility
-> Rep DashIsoPlaybackDeviceCompatibility x
Prelude.Generic
    )
  deriving newtype
    ( Eq DashIsoPlaybackDeviceCompatibility
Int -> DashIsoPlaybackDeviceCompatibility -> Int
DashIsoPlaybackDeviceCompatibility -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: DashIsoPlaybackDeviceCompatibility -> Int
$chash :: DashIsoPlaybackDeviceCompatibility -> Int
hashWithSalt :: Int -> DashIsoPlaybackDeviceCompatibility -> Int
$chashWithSalt :: Int -> DashIsoPlaybackDeviceCompatibility -> Int
Prelude.Hashable,
      DashIsoPlaybackDeviceCompatibility -> ()
forall a. (a -> ()) -> NFData a
rnf :: DashIsoPlaybackDeviceCompatibility -> ()
$crnf :: DashIsoPlaybackDeviceCompatibility -> ()
Prelude.NFData,
      Text -> Either String DashIsoPlaybackDeviceCompatibility
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DashIsoPlaybackDeviceCompatibility
$cfromText :: Text -> Either String DashIsoPlaybackDeviceCompatibility
Data.FromText,
      DashIsoPlaybackDeviceCompatibility -> Text
forall a. (a -> Text) -> ToText a
toText :: DashIsoPlaybackDeviceCompatibility -> Text
$ctoText :: DashIsoPlaybackDeviceCompatibility -> Text
Data.ToText,
      DashIsoPlaybackDeviceCompatibility -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: DashIsoPlaybackDeviceCompatibility -> ByteString
$ctoBS :: DashIsoPlaybackDeviceCompatibility -> ByteString
Data.ToByteString,
      DashIsoPlaybackDeviceCompatibility -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DashIsoPlaybackDeviceCompatibility -> ByteStringBuilder
$cbuild :: DashIsoPlaybackDeviceCompatibility -> ByteStringBuilder
Data.ToLog,
      HeaderName -> DashIsoPlaybackDeviceCompatibility -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DashIsoPlaybackDeviceCompatibility -> [Header]
$ctoHeader :: HeaderName -> DashIsoPlaybackDeviceCompatibility -> [Header]
Data.ToHeader,
      DashIsoPlaybackDeviceCompatibility -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DashIsoPlaybackDeviceCompatibility -> QueryString
$ctoQuery :: DashIsoPlaybackDeviceCompatibility -> QueryString
Data.ToQuery,
      Value -> Parser [DashIsoPlaybackDeviceCompatibility]
Value -> Parser DashIsoPlaybackDeviceCompatibility
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [DashIsoPlaybackDeviceCompatibility]
$cparseJSONList :: Value -> Parser [DashIsoPlaybackDeviceCompatibility]
parseJSON :: Value -> Parser DashIsoPlaybackDeviceCompatibility
$cparseJSON :: Value -> Parser DashIsoPlaybackDeviceCompatibility
Data.FromJSON,
      FromJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
FromJSONKeyFunction DashIsoPlaybackDeviceCompatibility
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
$cfromJSONKeyList :: FromJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
fromJSONKey :: FromJSONKeyFunction DashIsoPlaybackDeviceCompatibility
$cfromJSONKey :: FromJSONKeyFunction DashIsoPlaybackDeviceCompatibility
Data.FromJSONKey,
      [DashIsoPlaybackDeviceCompatibility] -> Encoding
[DashIsoPlaybackDeviceCompatibility] -> Value
DashIsoPlaybackDeviceCompatibility -> Encoding
DashIsoPlaybackDeviceCompatibility -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [DashIsoPlaybackDeviceCompatibility] -> Encoding
$ctoEncodingList :: [DashIsoPlaybackDeviceCompatibility] -> Encoding
toJSONList :: [DashIsoPlaybackDeviceCompatibility] -> Value
$ctoJSONList :: [DashIsoPlaybackDeviceCompatibility] -> Value
toEncoding :: DashIsoPlaybackDeviceCompatibility -> Encoding
$ctoEncoding :: DashIsoPlaybackDeviceCompatibility -> Encoding
toJSON :: DashIsoPlaybackDeviceCompatibility -> Value
$ctoJSON :: DashIsoPlaybackDeviceCompatibility -> Value
Data.ToJSON,
      ToJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
ToJSONKeyFunction DashIsoPlaybackDeviceCompatibility
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
$ctoJSONKeyList :: ToJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
toJSONKey :: ToJSONKeyFunction DashIsoPlaybackDeviceCompatibility
$ctoJSONKey :: ToJSONKeyFunction DashIsoPlaybackDeviceCompatibility
Data.ToJSONKey,
      [Node] -> Either String DashIsoPlaybackDeviceCompatibility
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DashIsoPlaybackDeviceCompatibility
$cparseXML :: [Node] -> Either String DashIsoPlaybackDeviceCompatibility
Data.FromXML,
      DashIsoPlaybackDeviceCompatibility -> XML
forall a. (a -> XML) -> ToXML a
toXML :: DashIsoPlaybackDeviceCompatibility -> XML
$ctoXML :: DashIsoPlaybackDeviceCompatibility -> XML
Data.ToXML
    )

pattern DashIsoPlaybackDeviceCompatibility_CENC_V1 :: DashIsoPlaybackDeviceCompatibility
pattern $bDashIsoPlaybackDeviceCompatibility_CENC_V1 :: DashIsoPlaybackDeviceCompatibility
$mDashIsoPlaybackDeviceCompatibility_CENC_V1 :: forall {r}.
DashIsoPlaybackDeviceCompatibility
-> ((# #) -> r) -> ((# #) -> r) -> r
DashIsoPlaybackDeviceCompatibility_CENC_V1 = DashIsoPlaybackDeviceCompatibility' "CENC_V1"

pattern DashIsoPlaybackDeviceCompatibility_UNENCRYPTED_SEI :: DashIsoPlaybackDeviceCompatibility
pattern $bDashIsoPlaybackDeviceCompatibility_UNENCRYPTED_SEI :: DashIsoPlaybackDeviceCompatibility
$mDashIsoPlaybackDeviceCompatibility_UNENCRYPTED_SEI :: forall {r}.
DashIsoPlaybackDeviceCompatibility
-> ((# #) -> r) -> ((# #) -> r) -> r
DashIsoPlaybackDeviceCompatibility_UNENCRYPTED_SEI = DashIsoPlaybackDeviceCompatibility' "UNENCRYPTED_SEI"

{-# COMPLETE
  DashIsoPlaybackDeviceCompatibility_CENC_V1,
  DashIsoPlaybackDeviceCompatibility_UNENCRYPTED_SEI,
  DashIsoPlaybackDeviceCompatibility'
  #-}