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) |
Safe Haskell | None |
- Service Configuration
- Errors
- ClipFragmentSelectorType
- ContainerFormat
- DASHDisplayFragmentNumber
- DASHDisplayFragmentTimestamp
- DASHFragmentSelectorType
- DASHPlaybackMode
- FragmentSelectorType
- HLSDiscontinuityMode
- HLSDisplayFragmentTimestamp
- HLSFragmentSelectorType
- HLSPlaybackMode
- ClipFragmentSelector
- ClipTimestampRange
- DASHFragmentSelector
- DASHTimestampRange
- Fragment
- FragmentSelector
- HLSFragmentSelector
- HLSTimestampRange
- TimestampRange
Synopsis
- defaultService :: Service
- _InvalidMediaFrameException :: AsError a => Getting (First ServiceError) a ServiceError
- _NoDataRetentionException :: AsError a => Getting (First ServiceError) a ServiceError
- _InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError
- _NotAuthorizedException :: AsError a => Getting (First ServiceError) a ServiceError
- _ClientLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
- _UnsupportedStreamMediaTypeException :: AsError a => Getting (First ServiceError) a ServiceError
- _InvalidCodecPrivateDataException :: AsError a => Getting (First ServiceError) a ServiceError
- _MissingCodecPrivateDataException :: AsError a => Getting (First ServiceError) a ServiceError
- _ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
- newtype ClipFragmentSelectorType where
- newtype ContainerFormat where
- ContainerFormat' { }
- pattern ContainerFormat_FRAGMENTED_MP4 :: ContainerFormat
- pattern ContainerFormat_MPEG_TS :: ContainerFormat
- newtype DASHDisplayFragmentNumber where
- newtype DASHDisplayFragmentTimestamp where
- newtype DASHFragmentSelectorType where
- newtype DASHPlaybackMode where
- DASHPlaybackMode' { }
- pattern DASHPlaybackMode_LIVE :: DASHPlaybackMode
- pattern DASHPlaybackMode_LIVE_REPLAY :: DASHPlaybackMode
- pattern DASHPlaybackMode_ON_DEMAND :: DASHPlaybackMode
- newtype FragmentSelectorType where
- newtype HLSDiscontinuityMode where
- newtype HLSDisplayFragmentTimestamp where
- newtype HLSFragmentSelectorType where
- newtype HLSPlaybackMode where
- HLSPlaybackMode' { }
- pattern HLSPlaybackMode_LIVE :: HLSPlaybackMode
- pattern HLSPlaybackMode_LIVE_REPLAY :: HLSPlaybackMode
- pattern HLSPlaybackMode_ON_DEMAND :: HLSPlaybackMode
- data ClipFragmentSelector = ClipFragmentSelector' {}
- newClipFragmentSelector :: ClipFragmentSelectorType -> ClipTimestampRange -> ClipFragmentSelector
- clipFragmentSelector_fragmentSelectorType :: Lens' ClipFragmentSelector ClipFragmentSelectorType
- clipFragmentSelector_timestampRange :: Lens' ClipFragmentSelector ClipTimestampRange
- data ClipTimestampRange = ClipTimestampRange' {}
- newClipTimestampRange :: UTCTime -> UTCTime -> ClipTimestampRange
- clipTimestampRange_startTimestamp :: Lens' ClipTimestampRange UTCTime
- clipTimestampRange_endTimestamp :: Lens' ClipTimestampRange UTCTime
- data DASHFragmentSelector = DASHFragmentSelector' {}
- newDASHFragmentSelector :: DASHFragmentSelector
- dASHFragmentSelector_fragmentSelectorType :: Lens' DASHFragmentSelector (Maybe DASHFragmentSelectorType)
- dASHFragmentSelector_timestampRange :: Lens' DASHFragmentSelector (Maybe DASHTimestampRange)
- data DASHTimestampRange = DASHTimestampRange' {}
- newDASHTimestampRange :: DASHTimestampRange
- dASHTimestampRange_endTimestamp :: Lens' DASHTimestampRange (Maybe UTCTime)
- dASHTimestampRange_startTimestamp :: Lens' DASHTimestampRange (Maybe UTCTime)
- data Fragment = Fragment' {}
- newFragment :: Fragment
- fragment_fragmentLengthInMilliseconds :: Lens' Fragment (Maybe Integer)
- fragment_serverTimestamp :: Lens' Fragment (Maybe UTCTime)
- fragment_fragmentSizeInBytes :: Lens' Fragment (Maybe Integer)
- fragment_fragmentNumber :: Lens' Fragment (Maybe Text)
- fragment_producerTimestamp :: Lens' Fragment (Maybe UTCTime)
- data FragmentSelector = FragmentSelector' {}
- newFragmentSelector :: FragmentSelectorType -> TimestampRange -> FragmentSelector
- fragmentSelector_fragmentSelectorType :: Lens' FragmentSelector FragmentSelectorType
- fragmentSelector_timestampRange :: Lens' FragmentSelector TimestampRange
- data HLSFragmentSelector = HLSFragmentSelector' {}
- newHLSFragmentSelector :: HLSFragmentSelector
- hLSFragmentSelector_fragmentSelectorType :: Lens' HLSFragmentSelector (Maybe HLSFragmentSelectorType)
- hLSFragmentSelector_timestampRange :: Lens' HLSFragmentSelector (Maybe HLSTimestampRange)
- data HLSTimestampRange = HLSTimestampRange' {}
- newHLSTimestampRange :: HLSTimestampRange
- hLSTimestampRange_endTimestamp :: Lens' HLSTimestampRange (Maybe UTCTime)
- hLSTimestampRange_startTimestamp :: Lens' HLSTimestampRange (Maybe UTCTime)
- data TimestampRange = TimestampRange' {}
- newTimestampRange :: UTCTime -> UTCTime -> TimestampRange
- timestampRange_startTimestamp :: Lens' TimestampRange UTCTime
- timestampRange_endTimestamp :: Lens' TimestampRange UTCTime
Service Configuration
defaultService :: Service Source #
API version 2017-09-30
of the Amazon Kinesis Video Streams Archived Media SDK configuration.
Errors
_InvalidMediaFrameException :: AsError a => Getting (First ServiceError) a ServiceError Source #
One or more frames in the requested clip could not be parsed based on the specified codec.
_NoDataRetentionException :: AsError a => Getting (First ServiceError) a ServiceError Source #
A streaming session was requested for a stream that does not retain data
(that is, has a DataRetentionInHours
of 0).
_InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError Source #
A specified parameter exceeds its restrictions, is not supported, or can't be used.
_NotAuthorizedException :: AsError a => Getting (First ServiceError) a ServiceError Source #
Status Code: 403, The caller is not authorized to perform an operation on the given stream, or the token has expired.
_ClientLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError Source #
Kinesis Video Streams has throttled the request because you have exceeded a limit. Try making the call later. For information about limits, see Kinesis Video Streams Limits.
_UnsupportedStreamMediaTypeException :: AsError a => Getting (First ServiceError) a ServiceError Source #
The type of the media (for example, h.264 or h.265 video or ACC or G.711
audio) could not be determined from the codec IDs of the tracks in the
first fragment for a playback session. The codec ID for track 1 should
be V_MPEG/ISO/AVC
and, optionally, the codec ID for track 2 should
be A_AAC
.
_InvalidCodecPrivateDataException :: AsError a => Getting (First ServiceError) a ServiceError Source #
The codec private data in at least one of the tracks of the video stream is not valid for this operation.
_MissingCodecPrivateDataException :: AsError a => Getting (First ServiceError) a ServiceError Source #
No codec private data was found in at least one of tracks of the video stream.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source #
GetMedia
throws this error when Kinesis Video Streams can't find the
stream that you specified.
GetHLSStreamingSessionURL
and GetDASHStreamingSessionURL
throw this
error if a session with a PlaybackMode
of ON_DEMAND
or
LIVE_REPLAY
is requested for a stream that has no fragments within the
requested time range, or if a session with a PlaybackMode
of LIVE
is
requested for a stream that has no fragments within the last 30 seconds.
ClipFragmentSelectorType
newtype ClipFragmentSelectorType Source #
pattern ClipFragmentSelectorType_PRODUCER_TIMESTAMP :: ClipFragmentSelectorType | |
pattern ClipFragmentSelectorType_SERVER_TIMESTAMP :: ClipFragmentSelectorType |
Instances
ContainerFormat
newtype ContainerFormat Source #
pattern ContainerFormat_FRAGMENTED_MP4 :: ContainerFormat | |
pattern ContainerFormat_MPEG_TS :: ContainerFormat |
Instances
DASHDisplayFragmentNumber
newtype DASHDisplayFragmentNumber Source #
pattern DASHDisplayFragmentNumber_ALWAYS :: DASHDisplayFragmentNumber | |
pattern DASHDisplayFragmentNumber_NEVER :: DASHDisplayFragmentNumber |
Instances
DASHDisplayFragmentTimestamp
newtype DASHDisplayFragmentTimestamp Source #
pattern DASHDisplayFragmentTimestamp_ALWAYS :: DASHDisplayFragmentTimestamp | |
pattern DASHDisplayFragmentTimestamp_NEVER :: DASHDisplayFragmentTimestamp |
Instances
DASHFragmentSelectorType
newtype DASHFragmentSelectorType Source #
pattern DASHFragmentSelectorType_PRODUCER_TIMESTAMP :: DASHFragmentSelectorType | |
pattern DASHFragmentSelectorType_SERVER_TIMESTAMP :: DASHFragmentSelectorType |
Instances
DASHPlaybackMode
newtype DASHPlaybackMode Source #
pattern DASHPlaybackMode_LIVE :: DASHPlaybackMode | |
pattern DASHPlaybackMode_LIVE_REPLAY :: DASHPlaybackMode | |
pattern DASHPlaybackMode_ON_DEMAND :: DASHPlaybackMode |
Instances
FragmentSelectorType
newtype FragmentSelectorType Source #
pattern FragmentSelectorType_PRODUCER_TIMESTAMP :: FragmentSelectorType | |
pattern FragmentSelectorType_SERVER_TIMESTAMP :: FragmentSelectorType |
Instances
HLSDiscontinuityMode
newtype HLSDiscontinuityMode Source #
pattern HLSDiscontinuityMode_ALWAYS :: HLSDiscontinuityMode | |
pattern HLSDiscontinuityMode_NEVER :: HLSDiscontinuityMode | |
pattern HLSDiscontinuityMode_ON_DISCONTINUITY :: HLSDiscontinuityMode |
Instances
HLSDisplayFragmentTimestamp
newtype HLSDisplayFragmentTimestamp Source #
pattern HLSDisplayFragmentTimestamp_ALWAYS :: HLSDisplayFragmentTimestamp | |
pattern HLSDisplayFragmentTimestamp_NEVER :: HLSDisplayFragmentTimestamp |
Instances
HLSFragmentSelectorType
newtype HLSFragmentSelectorType Source #
pattern HLSFragmentSelectorType_PRODUCER_TIMESTAMP :: HLSFragmentSelectorType | |
pattern HLSFragmentSelectorType_SERVER_TIMESTAMP :: HLSFragmentSelectorType |
Instances
HLSPlaybackMode
newtype HLSPlaybackMode Source #
pattern HLSPlaybackMode_LIVE :: HLSPlaybackMode | |
pattern HLSPlaybackMode_LIVE_REPLAY :: HLSPlaybackMode | |
pattern HLSPlaybackMode_ON_DEMAND :: HLSPlaybackMode |
Instances
ClipFragmentSelector
data ClipFragmentSelector Source #
Describes the timestamp range and timestamp origin of a range of fragments.
Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the clip will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned.
See: newClipFragmentSelector
smart constructor.
ClipFragmentSelector' | |
|
Instances
newClipFragmentSelector Source #
Create a value of ClipFragmentSelector
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:fragmentSelectorType:ClipFragmentSelector'
, clipFragmentSelector_fragmentSelectorType
- The origin of the timestamps to use (Server or Producer).
$sel:timestampRange:ClipFragmentSelector'
, clipFragmentSelector_timestampRange
- The range of timestamps to return.
clipFragmentSelector_fragmentSelectorType :: Lens' ClipFragmentSelector ClipFragmentSelectorType Source #
The origin of the timestamps to use (Server or Producer).
clipFragmentSelector_timestampRange :: Lens' ClipFragmentSelector ClipTimestampRange Source #
The range of timestamps to return.
ClipTimestampRange
data ClipTimestampRange Source #
The range of timestamps for which to return fragments.
See: newClipTimestampRange
smart constructor.
ClipTimestampRange' | |
|
Instances
newClipTimestampRange Source #
:: UTCTime | |
-> UTCTime | |
-> ClipTimestampRange |
Create a value of ClipTimestampRange
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:startTimestamp:ClipTimestampRange'
, clipTimestampRange_startTimestamp
- The starting timestamp in the range of timestamps for which to return
fragments.
Only fragments that start exactly at or after StartTimestamp
are
included in the session. Fragments that start before StartTimestamp
and continue past it aren't included in the session. If
FragmentSelectorType
is SERVER_TIMESTAMP
, the StartTimestamp
must
be later than the stream head.
$sel:endTimestamp:ClipTimestampRange'
, clipTimestampRange_endTimestamp
- The end of the timestamp range for the requested media.
This value must be within 24 hours of the specified StartTimestamp
,
and it must be later than the StartTimestamp
value. If
FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this value
must be in the past.
This value is inclusive. The EndTimestamp
is compared to the
(starting) timestamp of the fragment. Fragments that start before the
EndTimestamp
value and continue past it are included in the session.
clipTimestampRange_startTimestamp :: Lens' ClipTimestampRange UTCTime Source #
The starting timestamp in the range of timestamps for which to return fragments.
Only fragments that start exactly at or after StartTimestamp
are
included in the session. Fragments that start before StartTimestamp
and continue past it aren't included in the session. If
FragmentSelectorType
is SERVER_TIMESTAMP
, the StartTimestamp
must
be later than the stream head.
clipTimestampRange_endTimestamp :: Lens' ClipTimestampRange UTCTime Source #
The end of the timestamp range for the requested media.
This value must be within 24 hours of the specified StartTimestamp
,
and it must be later than the StartTimestamp
value. If
FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this value
must be in the past.
This value is inclusive. The EndTimestamp
is compared to the
(starting) timestamp of the fragment. Fragments that start before the
EndTimestamp
value and continue past it are included in the session.
DASHFragmentSelector
data DASHFragmentSelector Source #
Contains the range of timestamps for the requested media, and the source of the timestamps.
See: newDASHFragmentSelector
smart constructor.
DASHFragmentSelector' | |
|
Instances
newDASHFragmentSelector :: DASHFragmentSelector Source #
Create a value of DASHFragmentSelector
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:fragmentSelectorType:DASHFragmentSelector'
, dASHFragmentSelector_fragmentSelectorType
- The source of the timestamps for the requested media.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetDASHStreamingSessionURLInput$PlaybackMode is ON_DEMAND
or
LIVE_REPLAY
, the first fragment ingested with a producer timestamp
within the specified FragmentSelector$TimestampRange is included in the
media playlist. In addition, the fragments with producer timestamps
within the TimestampRange
ingested immediately following the first
fragment (up to the
GetDASHStreamingSessionURLInput$MaxManifestFragmentResults value) are
included.
Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the MPEG-DASH manifest will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetDASHStreamingSessionURLInput$PlaybackMode is LIVE
, the producer
timestamps are used in the MP4 fragments and for deduplication. But the
most recently ingested fragments based on server timestamps are included
in the MPEG-DASH manifest. This means that even if fragments ingested in
the past have producer timestamps with values now, they are not included
in the HLS media playlist.
The default is SERVER_TIMESTAMP
.
$sel:timestampRange:DASHFragmentSelector'
, dASHFragmentSelector_timestampRange
- The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
dASHFragmentSelector_fragmentSelectorType :: Lens' DASHFragmentSelector (Maybe DASHFragmentSelectorType) Source #
The source of the timestamps for the requested media.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetDASHStreamingSessionURLInput$PlaybackMode is ON_DEMAND
or
LIVE_REPLAY
, the first fragment ingested with a producer timestamp
within the specified FragmentSelector$TimestampRange is included in the
media playlist. In addition, the fragments with producer timestamps
within the TimestampRange
ingested immediately following the first
fragment (up to the
GetDASHStreamingSessionURLInput$MaxManifestFragmentResults value) are
included.
Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the MPEG-DASH manifest will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetDASHStreamingSessionURLInput$PlaybackMode is LIVE
, the producer
timestamps are used in the MP4 fragments and for deduplication. But the
most recently ingested fragments based on server timestamps are included
in the MPEG-DASH manifest. This means that even if fragments ingested in
the past have producer timestamps with values now, they are not included
in the HLS media playlist.
The default is SERVER_TIMESTAMP
.
dASHFragmentSelector_timestampRange :: Lens' DASHFragmentSelector (Maybe DASHTimestampRange) Source #
The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
DASHTimestampRange
data DASHTimestampRange Source #
The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
The values in DASHimestampRange
are inclusive. Fragments that start
exactly at or after the start time are included in the session.
Fragments that start before the start time and continue past it are not
included in the session.
See: newDASHTimestampRange
smart constructor.
DASHTimestampRange' | |
|
Instances
newDASHTimestampRange :: DASHTimestampRange Source #
Create a value of DASHTimestampRange
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:endTimestamp:DASHTimestampRange'
, dASHTimestampRange_endTimestamp
- The end of the timestamp range for the requested media. This value must
be within 24 hours of the specified StartTimestamp
, and it must be
later than the StartTimestamp
value.
If FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this
value must be in the past.
The EndTimestamp
value is required for ON_DEMAND
mode, but optional
for LIVE_REPLAY
mode. If the EndTimestamp
is not set for
LIVE_REPLAY
mode then the session will continue to include newly
ingested fragments until the session expires.
This value is inclusive. The EndTimestamp
is compared to the
(starting) timestamp of the fragment. Fragments that start before the
EndTimestamp
value and continue past it are included in the session.
$sel:startTimestamp:DASHTimestampRange'
, dASHTimestampRange_startTimestamp
- The start of the timestamp range for the requested media.
If the DASHTimestampRange
value is specified, the StartTimestamp
value is required.
Only fragments that start exactly at or after StartTimestamp
are
included in the session. Fragments that start before StartTimestamp
and continue past it aren't included in the session. If
FragmentSelectorType
is SERVER_TIMESTAMP
, the StartTimestamp
must
be later than the stream head.
dASHTimestampRange_endTimestamp :: Lens' DASHTimestampRange (Maybe UTCTime) Source #
The end of the timestamp range for the requested media. This value must
be within 24 hours of the specified StartTimestamp
, and it must be
later than the StartTimestamp
value.
If FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this
value must be in the past.
The EndTimestamp
value is required for ON_DEMAND
mode, but optional
for LIVE_REPLAY
mode. If the EndTimestamp
is not set for
LIVE_REPLAY
mode then the session will continue to include newly
ingested fragments until the session expires.
This value is inclusive. The EndTimestamp
is compared to the
(starting) timestamp of the fragment. Fragments that start before the
EndTimestamp
value and continue past it are included in the session.
dASHTimestampRange_startTimestamp :: Lens' DASHTimestampRange (Maybe UTCTime) Source #
The start of the timestamp range for the requested media.
If the DASHTimestampRange
value is specified, the StartTimestamp
value is required.
Only fragments that start exactly at or after StartTimestamp
are
included in the session. Fragments that start before StartTimestamp
and continue past it aren't included in the session. If
FragmentSelectorType
is SERVER_TIMESTAMP
, the StartTimestamp
must
be later than the stream head.
Fragment
Represents a segment of video or other time-delimited data.
See: newFragment
smart constructor.
Fragment' | |
|
Instances
newFragment :: Fragment Source #
Create a value of Fragment
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:fragmentLengthInMilliseconds:Fragment'
, fragment_fragmentLengthInMilliseconds
- The playback duration or other time value associated with the fragment.
$sel:serverTimestamp:Fragment'
, fragment_serverTimestamp
- The timestamp from the AWS server corresponding to the fragment.
$sel:fragmentSizeInBytes:Fragment'
, fragment_fragmentSizeInBytes
- The total fragment size, including information about the fragment and
contained media data.
$sel:fragmentNumber:Fragment'
, fragment_fragmentNumber
- The unique identifier of the fragment. This value monotonically
increases based on the ingestion order.
$sel:producerTimestamp:Fragment'
, fragment_producerTimestamp
- The timestamp from the producer corresponding to the fragment.
fragment_fragmentLengthInMilliseconds :: Lens' Fragment (Maybe Integer) Source #
The playback duration or other time value associated with the fragment.
fragment_serverTimestamp :: Lens' Fragment (Maybe UTCTime) Source #
The timestamp from the AWS server corresponding to the fragment.
fragment_fragmentSizeInBytes :: Lens' Fragment (Maybe Integer) Source #
The total fragment size, including information about the fragment and contained media data.
fragment_fragmentNumber :: Lens' Fragment (Maybe Text) Source #
The unique identifier of the fragment. This value monotonically increases based on the ingestion order.
fragment_producerTimestamp :: Lens' Fragment (Maybe UTCTime) Source #
The timestamp from the producer corresponding to the fragment.
FragmentSelector
data FragmentSelector Source #
Describes the timestamp range and timestamp origin of a range of fragments.
Only fragments with a start timestamp greater than or equal to the given start time and less than or equal to the end time are returned. For example, if a stream contains fragments with the following start timestamps:
- 00:00:00
- 00:00:02
- 00:00:04
- 00:00:06
A fragment selector range with a start time of 00:00:01 and end time of 00:00:04 would return the fragments with start times of 00:00:02 and 00:00:04.
See: newFragmentSelector
smart constructor.
FragmentSelector' | |
|
Instances
Create a value of FragmentSelector
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:fragmentSelectorType:FragmentSelector'
, fragmentSelector_fragmentSelectorType
- The origin of the timestamps to use (Server or Producer).
$sel:timestampRange:FragmentSelector'
, fragmentSelector_timestampRange
- The range of timestamps to return.
fragmentSelector_fragmentSelectorType :: Lens' FragmentSelector FragmentSelectorType Source #
The origin of the timestamps to use (Server or Producer).
fragmentSelector_timestampRange :: Lens' FragmentSelector TimestampRange Source #
The range of timestamps to return.
HLSFragmentSelector
data HLSFragmentSelector Source #
Contains the range of timestamps for the requested media, and the source of the timestamps.
See: newHLSFragmentSelector
smart constructor.
HLSFragmentSelector' | |
|
Instances
newHLSFragmentSelector :: HLSFragmentSelector Source #
Create a value of HLSFragmentSelector
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:fragmentSelectorType:HLSFragmentSelector'
, hLSFragmentSelector_fragmentSelectorType
- The source of the timestamps for the requested media.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetHLSStreamingSessionURLInput$PlaybackMode is ON_DEMAND
or
LIVE_REPLAY
, the first fragment ingested with a producer timestamp
within the specified FragmentSelector$TimestampRange is included in the
media playlist. In addition, the fragments with producer timestamps
within the TimestampRange
ingested immediately following the first
fragment (up to the
GetHLSStreamingSessionURLInput$MaxMediaPlaylistFragmentResults value)
are included.
Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the HLS media playlists will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetHLSStreamingSessionURLInput$PlaybackMode is LIVE
, the producer
timestamps are used in the MP4 fragments and for deduplication. But the
most recently ingested fragments based on server timestamps are included
in the HLS media playlist. This means that even if fragments ingested in
the past have producer timestamps with values now, they are not included
in the HLS media playlist.
The default is SERVER_TIMESTAMP
.
$sel:timestampRange:HLSFragmentSelector'
, hLSFragmentSelector_timestampRange
- The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
hLSFragmentSelector_fragmentSelectorType :: Lens' HLSFragmentSelector (Maybe HLSFragmentSelectorType) Source #
The source of the timestamps for the requested media.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetHLSStreamingSessionURLInput$PlaybackMode is ON_DEMAND
or
LIVE_REPLAY
, the first fragment ingested with a producer timestamp
within the specified FragmentSelector$TimestampRange is included in the
media playlist. In addition, the fragments with producer timestamps
within the TimestampRange
ingested immediately following the first
fragment (up to the
GetHLSStreamingSessionURLInput$MaxMediaPlaylistFragmentResults value)
are included.
Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the HLS media playlists will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetHLSStreamingSessionURLInput$PlaybackMode is LIVE
, the producer
timestamps are used in the MP4 fragments and for deduplication. But the
most recently ingested fragments based on server timestamps are included
in the HLS media playlist. This means that even if fragments ingested in
the past have producer timestamps with values now, they are not included
in the HLS media playlist.
The default is SERVER_TIMESTAMP
.
hLSFragmentSelector_timestampRange :: Lens' HLSFragmentSelector (Maybe HLSTimestampRange) Source #
The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
HLSTimestampRange
data HLSTimestampRange Source #
The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
See: newHLSTimestampRange
smart constructor.
HLSTimestampRange' | |
|
Instances
newHLSTimestampRange :: HLSTimestampRange Source #
Create a value of HLSTimestampRange
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:endTimestamp:HLSTimestampRange'
, hLSTimestampRange_endTimestamp
- The end of the timestamp range for the requested media. This value must
be within 24 hours of the specified StartTimestamp
, and it must be
later than the StartTimestamp
value.
If FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this
value must be in the past.
The EndTimestamp
value is required for ON_DEMAND
mode, but optional
for LIVE_REPLAY
mode. If the EndTimestamp
is not set for
LIVE_REPLAY
mode then the session will continue to include newly
ingested fragments until the session expires.
This value is inclusive. The EndTimestamp
is compared to the
(starting) timestamp of the fragment. Fragments that start before the
EndTimestamp
value and continue past it are included in the session.
$sel:startTimestamp:HLSTimestampRange'
, hLSTimestampRange_startTimestamp
- The start of the timestamp range for the requested media.
If the HLSTimestampRange
value is specified, the StartTimestamp
value is required.
Only fragments that start exactly at or after StartTimestamp
are
included in the session. Fragments that start before StartTimestamp
and continue past it aren't included in the session. If
FragmentSelectorType
is SERVER_TIMESTAMP
, the StartTimestamp
must
be later than the stream head.
hLSTimestampRange_endTimestamp :: Lens' HLSTimestampRange (Maybe UTCTime) Source #
The end of the timestamp range for the requested media. This value must
be within 24 hours of the specified StartTimestamp
, and it must be
later than the StartTimestamp
value.
If FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this
value must be in the past.
The EndTimestamp
value is required for ON_DEMAND
mode, but optional
for LIVE_REPLAY
mode. If the EndTimestamp
is not set for
LIVE_REPLAY
mode then the session will continue to include newly
ingested fragments until the session expires.
This value is inclusive. The EndTimestamp
is compared to the
(starting) timestamp of the fragment. Fragments that start before the
EndTimestamp
value and continue past it are included in the session.
hLSTimestampRange_startTimestamp :: Lens' HLSTimestampRange (Maybe UTCTime) Source #
The start of the timestamp range for the requested media.
If the HLSTimestampRange
value is specified, the StartTimestamp
value is required.
Only fragments that start exactly at or after StartTimestamp
are
included in the session. Fragments that start before StartTimestamp
and continue past it aren't included in the session. If
FragmentSelectorType
is SERVER_TIMESTAMP
, the StartTimestamp
must
be later than the stream head.
TimestampRange
data TimestampRange Source #
The range of timestamps for which to return fragments.
See: newTimestampRange
smart constructor.
TimestampRange' | |
|
Instances
:: UTCTime | |
-> UTCTime | |
-> TimestampRange |
Create a value of TimestampRange
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:startTimestamp:TimestampRange'
, timestampRange_startTimestamp
- The starting timestamp in the range of timestamps for which to return
fragments.
$sel:endTimestamp:TimestampRange'
, timestampRange_endTimestamp
- The ending timestamp in the range of timestamps for which to return
fragments.
timestampRange_startTimestamp :: Lens' TimestampRange UTCTime Source #
The starting timestamp in the range of timestamps for which to return fragments.
timestampRange_endTimestamp :: Lens' TimestampRange UTCTime Source #
The ending timestamp in the range of timestamps for which to return fragments.