Class VideoTrackQuality
- java.lang.Object
-
- com.castlabs.android.player.models.VideoTrackQuality
-
- All Implemented Interfaces:
Parcelable,Comparable<VideoTrackQuality>
public class VideoTrackQuality extends Object implements Comparable<VideoTrackQuality>, Parcelable
Represents a single quality of a video track. This is typically generated from a Representation for DASH streams, a QualityLevel for SmoothStreaming, and a Variant for HLS. The model contains at least the information about the quality bitrate as this is used to compare instances of VideoTrackQuality. Video qualities are sorted by bitrate in decreasing order with theComparableimplementation in this class. Other attributes should be set if the information is available, but they are not mandatory. If the information is missing, the value is either -1 or null.- Since:
- 3.0.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface android.os.Parcelable
Parcelable.ClassLoaderCreator<T extends Object>, Parcelable.Creator<T extends Object>
-
-
Field Summary
Fields Modifier and Type Field Description static Parcelable.Creator<VideoTrackQuality>CREATOR-
Fields inherited from interface android.os.Parcelable
CONTENTS_FILE_DESCRIPTOR, PARCELABLE_WRITE_RETURN_VALUE
-
-
Constructor Summary
Constructors Constructor Description VideoTrackQuality(int bitrate)Create a new video track quality with a bitrate > 0VideoTrackQuality(com.google.android.exoplayer2.Format format)Create a new video track quality based on the given format
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(VideoTrackQuality another)intdescribeContents()booleanequals(Object obj)intgetBitrate()StringgetCodecs()DrmgetDrm()GetDrmof the current qualitycom.google.android.exoplayer2.drm.DrmInitDatagetDrmInitData()KeyStatusgetDrmKeyStatus()com.google.android.exoplayer2.FormatgetFormat()floatgetFrameRate()intgetHeight()StringgetId()Set the id of this trackStringgetLabel()floatgetMaxPlayoutRate()StringgetMimeType()intgetOriginalGroupIndex()intgetOriginalTrackIndex()floatgetPictureWidthHeightRatio()floatgetPixelWidthHeightRatio()intgetTrackIndex()intgetWidth()inthashCode()booleanisDisabled()booleanmatchesFormat(com.google.android.exoplayer2.Format format)Returns true if this quality matches the given formats width, height, frameRate, codecs, bitrate, max playout rate and mimetypevoidsetCodecs(String codecs)voidsetDrm(Drm drm)AssignDrmto the current qualityvoidsetDrmKeyStatus(KeyStatus drmKeyStatus)voidsetFrameRate(float frameRate)voidsetHeight(int height)voidsetId(String id)Set the id associated with this trackvoidsetMaxPlayoutRate(float maxPlayoutRate)voidsetMimeType(String mimeType)voidsetOriginalGroupIndex(int originalGroupIndex)Set the original index of the corresponding track groupvoidsetOriginalTrackIndex(int originalTrackIndex)Set the original index of this trackvoidsetPictureWidthHeightRatio(float pictureWidthHeightRatio)voidsetPixelWidthHeightRatio(float pixelWidthHeightRatio)voidsetTrackIndex(int trackIndex)voidsetWidth(int width)StringtoString()voidwriteToParcel(Parcel dest, int flags)
-
-
-
Field Detail
-
CREATOR
public static final Parcelable.Creator<VideoTrackQuality> CREATOR
-
-
Constructor Detail
-
VideoTrackQuality
public VideoTrackQuality(int bitrate)
Create a new video track quality with a bitrate > 0- Parameters:
bitrate- the bitrate
-
VideoTrackQuality
public VideoTrackQuality(@NonNull com.google.android.exoplayer2.Format format)Create a new video track quality based on the given format- Parameters:
format- the format
-
-
Method Detail
-
isDisabled
public boolean isDisabled()
- Returns:
- false if the quality can be played and true otherwise
-
getId
@Nullable public String getId()
Set the id of this track- Returns:
- The id associated with this track
-
setId
public void setId(@Nullable String id)Set the id associated with this track- Parameters:
id- the id
-
getDrm
@Nullable public Drm getDrm()
GetDrmof the current quality- Returns:
Drmornullfor clear content
-
setDrm
public void setDrm(@Nullable Drm drm)AssignDrmto the current quality- Parameters:
drm-Drmor null for clear content
-
getDrmKeyStatus
@Nullable public KeyStatus getDrmKeyStatus()
- Returns:
- The
KeyStatusor null for clear content
-
setDrmKeyStatus
public void setDrmKeyStatus(@Nullable KeyStatus drmKeyStatus)
-
getBitrate
public int getBitrate()
- Returns:
- The average bandwidth in bits per second.
-
getWidth
public int getWidth()
- Returns:
- The width of this quality in pixel or -1
-
setWidth
public void setWidth(int width)
- Parameters:
width- the width of this quality in pixel
-
getHeight
public int getHeight()
- Returns:
- The height of this quality in pixel or -1
-
setPixelWidthHeightRatio
public void setPixelWidthHeightRatio(float pixelWidthHeightRatio)
- Parameters:
pixelWidthHeightRatio- the pixel width height ratio
-
getPixelWidthHeightRatio
public float getPixelWidthHeightRatio()
- Returns:
- The pixel width height ratio of this quality if known or 1.0f The value equals to DASH sar value
-
getPictureWidthHeightRatio
public float getPictureWidthHeightRatio()
- Returns:
- The picture width height ratio of this quality if known or 1.0f The value equals to DASH par value
-
setPictureWidthHeightRatio
public void setPictureWidthHeightRatio(float pictureWidthHeightRatio)
- Parameters:
pictureWidthHeightRatio- the picture width height ratio
-
setHeight
public void setHeight(int height)
- Parameters:
height- the width of this quality in pixel
-
getFrameRate
public float getFrameRate()
- Returns:
- The frame rate of this quality or -1
-
setFrameRate
public void setFrameRate(float frameRate)
- Parameters:
frameRate- the framerate of this quality
-
getMaxPlayoutRate
public float getMaxPlayoutRate()
-
setMaxPlayoutRate
public void setMaxPlayoutRate(float maxPlayoutRate)
-
getCodecs
@Nullable public String getCodecs()
- Returns:
- A ist of codec of this quality or null
-
setCodecs
public void setCodecs(@Nullable String codecs)- Parameters:
codecs- the codecs of this quality
-
getMimeType
@Nullable public String getMimeType()
- Returns:
- The mime type of this quality
-
setMimeType
public void setMimeType(@Nullable String mimeType)- Parameters:
mimeType- the mime type of this quality
-
getTrackIndex
public int getTrackIndex()
- Returns:
- The index of this quality within the set of qualities on the parent track
-
setTrackIndex
public void setTrackIndex(int trackIndex)
- Parameters:
trackIndex- the track index within the set of parent tracks
-
getOriginalTrackIndex
public int getOriginalTrackIndex()
- Returns:
- The original index if this track, when no filters where applied
-
setOriginalTrackIndex
public void setOriginalTrackIndex(int originalTrackIndex)
Set the original index of this track- Parameters:
originalTrackIndex- The original index
-
getOriginalGroupIndex
public int getOriginalGroupIndex()
- Returns:
- The original index if the corresponding track group, when no filters where applied
-
setOriginalGroupIndex
public void setOriginalGroupIndex(int originalGroupIndex)
Set the original index of the corresponding track group- Parameters:
originalGroupIndex- The original index
-
matchesFormat
public boolean matchesFormat(@NonNull com.google.android.exoplayer2.Format format)Returns true if this quality matches the given formats width, height, frameRate, codecs, bitrate, max playout rate and mimetype- Parameters:
format- the format- Returns:
- True if this quality matches the given format properties
-
getFormat
@NonNull public com.google.android.exoplayer2.Format getFormat()
-
getLabel
public String getLabel()
- Returns:
- The label for this quality as DASH label if available or width x height
-
getDrmInitData
@Nullable public com.google.android.exoplayer2.drm.DrmInitData getDrmInitData()
-
compareTo
public int compareTo(@NonNull VideoTrackQuality another)- Specified by:
compareToin interfaceComparable<VideoTrackQuality>
-
describeContents
public int describeContents()
- Specified by:
describeContentsin interfaceParcelable
-
writeToParcel
public void writeToParcel(Parcel dest, int flags)
- Specified by:
writeToParcelin interfaceParcelable
-
-