Search in sources :

Example 1 with TrackElement

use of com.google.android.exoplayer.smoothstreaming.SmoothStreamingManifest.TrackElement in project edx-app-android by edx.

the class SmoothStreamingChunkSource method getMediaFormat.

private static MediaFormat getMediaFormat(StreamElement streamElement, int trackIndex) {
    TrackElement trackElement = streamElement.tracks[trackIndex];
    String mimeType = trackElement.mimeType;
    if (streamElement.type == StreamElement.TYPE_VIDEO) {
        MediaFormat format = MediaFormat.createVideoFormat(mimeType, -1, trackElement.maxWidth, trackElement.maxHeight, Arrays.asList(trackElement.csd));
        format.setMaxVideoDimensions(streamElement.maxWidth, streamElement.maxHeight);
        return format;
    } else if (streamElement.type == StreamElement.TYPE_AUDIO) {
        List<byte[]> csd;
        if (trackElement.csd != null) {
            csd = Arrays.asList(trackElement.csd);
        } else {
            csd = Collections.singletonList(CodecSpecificDataUtil.buildAudioSpecificConfig(trackElement.sampleRate, trackElement.numChannels));
        }
        MediaFormat format = MediaFormat.createAudioFormat(mimeType, -1, trackElement.numChannels, trackElement.sampleRate, csd);
        return format;
    }
    // TODO: Do subtitles need a format? MediaFormat supports KEY_LANGUAGE.
    return null;
}
Also used : MediaFormat(com.google.android.exoplayer.MediaFormat) TrackElement(com.google.android.exoplayer.smoothstreaming.SmoothStreamingManifest.TrackElement) List(java.util.List)

Aggregations

MediaFormat (com.google.android.exoplayer.MediaFormat)1 TrackElement (com.google.android.exoplayer.smoothstreaming.SmoothStreamingManifest.TrackElement)1 List (java.util.List)1