io.lindstrom.m3u8.model.AlternativeRendition Maven / Gradle / Ivy
package io.lindstrom.m3u8.model;
import org.immutables.value.Value;
import java.util.List;
import java.util.Optional;
/**
* Alternative Renditions (EXT-X-MEDIA)
*
* @see
* RFC 8216 - 4.3.4.1. EXT-X-MEDIA
* @see
* RFC 8216 - 4.3.4.2.1. Alternative Renditions
*/
@Value.Immutable
public interface AlternativeRendition {
/**
* @return rendition attribute TYPE
*/
MediaType type();
/**
* Location of the media playlist file.
*
* @return rendition attribute URI
*/
Optional uri();
/**
* Specify which group to which this rendition belongs to.
*
* @return rendition attribute GROUP-ID
*/
String groupId();
/**
* The primary language used in this rendition.
*
* @return rendition attribute LANGUAGE
* @see
* RFC 5646 - Tags for Identifying Languages
*/
Optional language();
/**
* Identifies a language that is associated with this rendition.
*
* @return rendition attribute ASSOC-LANGUAGE
* @see
* RFC 5646 - Tags for Identifying Languages
*/
Optional assocLanguage();
/**
* Human-readable description of this rendition.
*
* @return rendition attribute NAME
*/
String name();
/**
* @return rendition attribute DEFAULT
*/
Optional defaultRendition();
/**
* @return rendition attribute AUTOSELECT
*/
Optional autoSelect();
/**
* @return rendition attribute FORCED
*/
Optional forced();
/**
* @return rendition attribute INSTREAM-ID
*/
Optional inStreamId();
/**
* @return rendition attributes CHARACTERISTICS
*/
List characteristics();
/**
* @return rendition attributes CHANNELS
*/
List channels();
static Builder builder() {
return new Builder();
}
class Builder extends AlternativeRenditionBuilder {
}
}