com.github.alexeylapin.m3u8.model.MasterPlaylist Maven / Gradle / Ivy
package com.github.alexeylapin.m3u8.model;
import org.immutables.value.Value;
import java.util.List;
import java.util.Optional;
/**
* Master playlist interface
*/
@Value.Immutable
public interface MasterPlaylist extends Playlist {
/**
* A list of alternate renditions related to this playlist.
*
* @return list of alternate renditions
* @see
* RFC 8216 - 4.3.4.1. EXT-X-MEDIA
*/
List alternativeRenditions();
/**
* A list of Variant Streams, each of which describes a different version of the same content.
*
* @return list of variant streams
* @see
* RFC 8216 - 4.3.4.2. EXT-X-STREAM-INF
*/
List variants();
/**
* A list of I-frame variant streams related to this playlist.
*
* @return list of I-frame variant streams
* @see
* RFC 8216 - 4.3.3.6. EXT-X-I-FRAMES-ONLY
*/
List iFrameVariants();
/**
* A list of arbitrary session data.
*
* @return list of session data
* @see
* RFC 8216 - 4.3.4.4. EXT-X-SESSION-DATA
*/
List sessionData();
/**
* A list of encryption keys used in media playlists.
*
* @return list of encryption keys
* @see
* RFC 8216 - 4.3.4.5. EXT-X-SESSION-KEY
*/
List sessionKeys();
/**
* The content steering tag
*
* @return the content steering tag, if present.
* @see
* draft-pantos-hls-rfc8216bis-13 - 4.4.6.6. EXT-X-CONTENT-STEERING
*/
Optional contentSteering();
static Builder builder() {
return new Builder();
}
class Builder extends MasterPlaylistBuilder {
}
}