{-# 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-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.MediaConvert.Types.DashIsoPlaybackDeviceCompatibility
  ( DashIsoPlaybackDeviceCompatibility
      ( ..,
        DashIsoPlaybackDeviceCompatibility_CENC_V1,
        DashIsoPlaybackDeviceCompatibility_UNENCRYPTED_SEI
      ),
  )
where

import qualified Amazonka.Core as Core
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 ::
      Core.Text
  }
  deriving stock
    ( Int -> DashIsoPlaybackDeviceCompatibility -> ShowS
[DashIsoPlaybackDeviceCompatibility] -> ShowS
DashIsoPlaybackDeviceCompatibility -> String
(Int -> DashIsoPlaybackDeviceCompatibility -> ShowS)
-> (DashIsoPlaybackDeviceCompatibility -> String)
-> ([DashIsoPlaybackDeviceCompatibility] -> ShowS)
-> Show DashIsoPlaybackDeviceCompatibility
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]
(Int -> ReadS DashIsoPlaybackDeviceCompatibility)
-> ReadS [DashIsoPlaybackDeviceCompatibility]
-> ReadPrec DashIsoPlaybackDeviceCompatibility
-> ReadPrec [DashIsoPlaybackDeviceCompatibility]
-> Read 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
(DashIsoPlaybackDeviceCompatibility
 -> DashIsoPlaybackDeviceCompatibility -> Bool)
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility -> Bool)
-> Eq DashIsoPlaybackDeviceCompatibility
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
Eq DashIsoPlaybackDeviceCompatibility
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility -> Ordering)
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility -> Bool)
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility -> Bool)
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility -> Bool)
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility -> Bool)
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility)
-> (DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility
    -> DashIsoPlaybackDeviceCompatibility)
-> Ord 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
$cp1Ord :: Eq DashIsoPlaybackDeviceCompatibility
Prelude.Ord,
      (forall x.
 DashIsoPlaybackDeviceCompatibility
 -> Rep DashIsoPlaybackDeviceCompatibility x)
-> (forall x.
    Rep DashIsoPlaybackDeviceCompatibility x
    -> DashIsoPlaybackDeviceCompatibility)
-> Generic DashIsoPlaybackDeviceCompatibility
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
    ( Int -> DashIsoPlaybackDeviceCompatibility -> Int
DashIsoPlaybackDeviceCompatibility -> Int
(Int -> DashIsoPlaybackDeviceCompatibility -> Int)
-> (DashIsoPlaybackDeviceCompatibility -> Int)
-> Hashable DashIsoPlaybackDeviceCompatibility
forall 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 -> ()
(DashIsoPlaybackDeviceCompatibility -> ())
-> NFData DashIsoPlaybackDeviceCompatibility
forall a. (a -> ()) -> NFData a
rnf :: DashIsoPlaybackDeviceCompatibility -> ()
$crnf :: DashIsoPlaybackDeviceCompatibility -> ()
Prelude.NFData,
      Text -> Either String DashIsoPlaybackDeviceCompatibility
(Text -> Either String DashIsoPlaybackDeviceCompatibility)
-> FromText DashIsoPlaybackDeviceCompatibility
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DashIsoPlaybackDeviceCompatibility
$cfromText :: Text -> Either String DashIsoPlaybackDeviceCompatibility
Core.FromText,
      DashIsoPlaybackDeviceCompatibility -> Text
(DashIsoPlaybackDeviceCompatibility -> Text)
-> ToText DashIsoPlaybackDeviceCompatibility
forall a. (a -> Text) -> ToText a
toText :: DashIsoPlaybackDeviceCompatibility -> Text
$ctoText :: DashIsoPlaybackDeviceCompatibility -> Text
Core.ToText,
      DashIsoPlaybackDeviceCompatibility -> ByteString
(DashIsoPlaybackDeviceCompatibility -> ByteString)
-> ToByteString DashIsoPlaybackDeviceCompatibility
forall a. (a -> ByteString) -> ToByteString a
toBS :: DashIsoPlaybackDeviceCompatibility -> ByteString
$ctoBS :: DashIsoPlaybackDeviceCompatibility -> ByteString
Core.ToByteString,
      DashIsoPlaybackDeviceCompatibility -> ByteStringBuilder
(DashIsoPlaybackDeviceCompatibility -> ByteStringBuilder)
-> ToLog DashIsoPlaybackDeviceCompatibility
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DashIsoPlaybackDeviceCompatibility -> ByteStringBuilder
$cbuild :: DashIsoPlaybackDeviceCompatibility -> ByteStringBuilder
Core.ToLog,
      HeaderName -> DashIsoPlaybackDeviceCompatibility -> [Header]
(HeaderName -> DashIsoPlaybackDeviceCompatibility -> [Header])
-> ToHeader DashIsoPlaybackDeviceCompatibility
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DashIsoPlaybackDeviceCompatibility -> [Header]
$ctoHeader :: HeaderName -> DashIsoPlaybackDeviceCompatibility -> [Header]
Core.ToHeader,
      DashIsoPlaybackDeviceCompatibility -> QueryString
(DashIsoPlaybackDeviceCompatibility -> QueryString)
-> ToQuery DashIsoPlaybackDeviceCompatibility
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DashIsoPlaybackDeviceCompatibility -> QueryString
$ctoQuery :: DashIsoPlaybackDeviceCompatibility -> QueryString
Core.ToQuery,
      Value -> Parser [DashIsoPlaybackDeviceCompatibility]
Value -> Parser DashIsoPlaybackDeviceCompatibility
(Value -> Parser DashIsoPlaybackDeviceCompatibility)
-> (Value -> Parser [DashIsoPlaybackDeviceCompatibility])
-> FromJSON 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
Core.FromJSON,
      FromJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
FromJSONKeyFunction DashIsoPlaybackDeviceCompatibility
FromJSONKeyFunction DashIsoPlaybackDeviceCompatibility
-> FromJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
-> FromJSONKey DashIsoPlaybackDeviceCompatibility
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
$cfromJSONKeyList :: FromJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
fromJSONKey :: FromJSONKeyFunction DashIsoPlaybackDeviceCompatibility
$cfromJSONKey :: FromJSONKeyFunction DashIsoPlaybackDeviceCompatibility
Core.FromJSONKey,
      [DashIsoPlaybackDeviceCompatibility] -> Encoding
[DashIsoPlaybackDeviceCompatibility] -> Value
DashIsoPlaybackDeviceCompatibility -> Encoding
DashIsoPlaybackDeviceCompatibility -> Value
(DashIsoPlaybackDeviceCompatibility -> Value)
-> (DashIsoPlaybackDeviceCompatibility -> Encoding)
-> ([DashIsoPlaybackDeviceCompatibility] -> Value)
-> ([DashIsoPlaybackDeviceCompatibility] -> Encoding)
-> ToJSON DashIsoPlaybackDeviceCompatibility
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
Core.ToJSON,
      ToJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
ToJSONKeyFunction DashIsoPlaybackDeviceCompatibility
ToJSONKeyFunction DashIsoPlaybackDeviceCompatibility
-> ToJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
-> ToJSONKey DashIsoPlaybackDeviceCompatibility
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
$ctoJSONKeyList :: ToJSONKeyFunction [DashIsoPlaybackDeviceCompatibility]
toJSONKey :: ToJSONKeyFunction DashIsoPlaybackDeviceCompatibility
$ctoJSONKey :: ToJSONKeyFunction DashIsoPlaybackDeviceCompatibility
Core.ToJSONKey,
      [Node] -> Either String DashIsoPlaybackDeviceCompatibility
([Node] -> Either String DashIsoPlaybackDeviceCompatibility)
-> FromXML DashIsoPlaybackDeviceCompatibility
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DashIsoPlaybackDeviceCompatibility
$cparseXML :: [Node] -> Either String DashIsoPlaybackDeviceCompatibility
Core.FromXML,
      DashIsoPlaybackDeviceCompatibility -> XML
(DashIsoPlaybackDeviceCompatibility -> XML)
-> ToXML DashIsoPlaybackDeviceCompatibility
forall a. (a -> XML) -> ToXML a
toXML :: DashIsoPlaybackDeviceCompatibility -> XML
$ctoXML :: DashIsoPlaybackDeviceCompatibility -> XML
Core.ToXML
    )

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

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

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