Documentation
¶
Overview ¶
Package playlist contains a M3U8 playlist decoder and encoder.
Index ¶
- Constants
- type Media
- type MediaMap
- type MediaPart
- type MediaPartInf
- type MediaPlaylistType
- type MediaPreloadHint
- type MediaSegment
- type MediaServerControl
- type MediaSkip
- type MediaStart
- type Multivariant
- type MultivariantRendition
- type MultivariantRenditionType
- type MultivariantStart
- type MultivariantVariant
- type Playlist
Constants ¶
const ( MediaPlaylistTypeEvent = "EVENT" MediaPlaylistTypeVOD = "VOD" )
standard values
const ( MultivariantRenditionTypeAudio = "AUDIO" MultivariantRenditionTypeVideo = "VIDEO" MultivariantRenditionTypeSubtitles = "SUBTITLES" MultivariantRenditionTypeClosedCaptions = "CLOSED-CAPTIONS" )
standard rendition types.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Media ¶
type Media struct {
// #EXT-X-VERSION
// required
Version int
// #EXT-X-INDEPENDENT-SEGMENTS
IndependentSegments bool
// #EXT-X-START
Start *MediaStart
// #EXT-X-ALLOWCACHE
// removed since v7
AllowCache *bool
// #EXT-X-TARGETDURATION
// required
TargetDuration int
// #EXT-X-SERVER-CONTROL
ServerControl *MediaServerControl
// #EXT-X-PART-INF
PartInf *MediaPartInf
// #EXT-X-MEDIA-SEQUENCE
// required
MediaSequence int
// #EXT-X-DISCONTINUITY-SEQUENCE
DiscontinuitySequence *int
// #EXT-X-PLAYLIST-TYPE
PlaylistType *MediaPlaylistType
// #EXT-X-MAP
Map *MediaMap
// #EXT-X-SKIP
Skip *MediaSkip
// segments
// at least one is required
Segments []*MediaSegment
// #EXT-X-PART
Parts []*MediaPart
// #EXT-X-PRELOAD-HINT
PreloadHint *MediaPreloadHint
// #EXT-X-ENDLIST
Endlist bool
}
Media is a media playlist.
type MediaMap ¶
type MediaMap struct {
// URI
// required
URI string
// BYTERANGE
ByteRangeLength *uint64
ByteRangeStart *uint64
}
MediaMap is a EXT-X-MAP tag.
type MediaPart ¶
type MediaPart struct {
// DURATION
// required
Duration time.Duration
// URI
// required
URI string
// INDEPENDENT
Independent bool
// BYTERANGE
ByteRangeLength *uint64
ByteRangeStart *uint64
// GAP
Gap bool
}
MediaPart is a EXT-X-PART tag.
type MediaPartInf ¶
MediaPartInf is a EXT-X-PART-INF tag.
type MediaPlaylistType ¶
type MediaPlaylistType string
MediaPlaylistType is a EXT-X-PLAYLIST-TYPE value.
type MediaPreloadHint ¶
type MediaPreloadHint struct {
// URI
// required
URI string
// BYTERANGE-START
ByteRangeStart uint64
// BYTERANGE-LENGTH
ByteRangeLength *uint64
}
MediaPreloadHint sia EXT-X-PRELOAD-HINT tag.
type MediaSegment ¶
type MediaSegment struct {
// #EXTINF
// required
Duration time.Duration
Title string
// segment URI.
// required
URI string
// #EXT-X-PROGRAM-DATE-TIME
DateTime *time.Time // optional
// #EXT-X-GAP
Gap bool // optional
// #EXT-X-BITRATE
Bitrate *int
// #EXT-X-BYTERANGE
ByteRangeLength *uint64
ByteRangeStart *uint64
// #EXT-X-PART
Parts []*MediaPart
}
MediaSegment is a segment of a media playlist.
type MediaServerControl ¶
type MediaServerControl struct {
// CAN-BLOCK-RELOAD
CanBlockReload bool
// PART-HOLD-BACK
// The value is a decimal-floating-point number of seconds that
// indicates the server-recommended minimum distance from the end of
// the Playlist at which clients should begin to play or to which
// they should seek when playing in Low-Latency Mode. Its value MUST
// be at least twice the Part Target Duration. Its value SHOULD be
// at least three times the Part Target Duration.
PartHoldBack *time.Duration
// CAN-SKIP-UNTIL
// Indicates that the Server can produce Playlist Delta Updates in
// response to the _HLS_skip Delivery Directive. Its value is the
// Skip Boundary, a decimal-floating-point number of seconds. The
// Skip Boundary MUST be at least six times the Target Duration.
CanSkipUntil *time.Duration
}
MediaServerControl is a EXT-X-SERVER-CONTROL tag.
type MediaSkip ¶
type MediaSkip struct {
// SKIPPED-SEGMENTS
// required
SkippedSegments int
}
MediaSkip is a EXT-X-SKIP tag.
type Multivariant ¶
type Multivariant struct {
// #EXT-X-VERSION
// required
Version int
// #EXT-X-INDEPENDENT-SEGMENTS
IndependentSegments bool
// #EXT-X-START
Start *MultivariantStart
// #EXT-X-STREAM-INF
// at least one is required
Variants []*MultivariantVariant
// #EXT-X-MEDIA
Renditions []*MultivariantRendition
}
Multivariant is a multivariant playlist.
func (Multivariant) Marshal ¶
func (m Multivariant) Marshal() ([]byte, error)
Marshal encodes the playlist.
func (*Multivariant) Unmarshal ¶
func (m *Multivariant) Unmarshal(buf []byte) error
Unmarshal decodes the playlist.
type MultivariantRendition ¶
type MultivariantRendition struct {
// TYPE
// required
Type MultivariantRenditionType
// GROUP-ID
// required
GroupID string
// URI
// required for all types except CLOSED-CAPTIONS
URI string
// INSTREAM-ID
// required for CLOSED-CAPTIONS
InstreamID string
// NAME
// required
Name string
// LANGUAGE
Language string
// DEFAULT
Default bool
// AUTOSELECT
Autoselect bool
// FORCED
Forced *bool
// CHANNELS
Channels string
}
MultivariantRendition is a EXT-X-MEDIA tag.
type MultivariantRenditionType ¶
type MultivariantRenditionType string
MultivariantRenditionType is a rendition type.
type MultivariantStart ¶
MultivariantStart is a EXT-X-START tag.
type MultivariantVariant ¶
type MultivariantVariant struct {
// BANDWIDTH
// required
Bandwidth int
// CODECS
// required
Codecs []string
// URL
// required
URI string
// AVERAGE-BANDWIDTH
AverageBandwidth *int
// RESOLUTION
Resolution string
// FRAME-RATE
FrameRate *float64
// VIDEO
Video string
// AUDIO
Audio string
// SUBTITLES
Subtitles string
// CLOSED-CAPTIONS
ClosedCaptions string
}
MultivariantVariant is a EXT-X-STREAM-INF tag.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package primitives contains playlist primitives.
|
Package primitives contains playlist primitives. |