All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.alexeylapin.m3u8.model.AlternativeRendition Maven / Gradle / Ivy

package com.github.alexeylapin.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 STABLE-RENDITION-ID
     */
    Optional stableRenditionId();

    /**
     * @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
     */
    Optional channels();

    static Builder builder() {
        return new Builder();
    }

    class Builder extends AlternativeRenditionBuilder {
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy