Exoplayer version 2.2 is upon us, exactly what does this mean to the average user? Better video playback and more features in any video oriented applications in a nutshell. People who want to know the underlyings of ExoPlayer please read on.
ExoPlayer 2.2 adds a number of new features, as well as another batch of bug fixes as ExoPlayer V2 continues to mature.
Tunneled Video Playback
Since API 21 which is Lollipop Android device manufacturers have been able to implement an optional feature called tunneled video playback. Most often found on Android TVs, tunneled video playback promises benefits such as better audio/video synchronization, smoother playback and a reduction in CPU load when compared to regular (i.e. non-tunneled) video playback. ExoPlayer 2.2 now adds support for enabling tunneled video playback on devices that support it.
It has always been possible to play downloaded media with ExoPlayer. But for DRM content developers would have to do a lot of leg work. In ExoPlayer 2.2 this functionality is provided directly by the library.
Improved HLS support
Support for HLS has been further improved in ExoPlayer 2.2. The EXT-X-START tag is now supported, as is the EXT-X-DISCONTINUITY tag in cases where EXT-X-DISCONTINUITY-SEQUENCE is omitted. Previously discontinuities were only handled correctly if the discontinuity sequence number was specified, as is required in more recent versions of the HLS specification. Other improvements include a more seamless first quality switch for HLS streams whose master playlists omit RESOLUTION tags, and improved robustness against inconsistent playlist updates received during playback of live streams.
ExoPlayer 2.2 further enhances support for media source composition with the addition of ClippingMediaSource. This source wraps another source and clips it, allowing playback of part of the media between specified start and end times. It can be used to skip the first ten seconds of a stream, for example, or to remove part of a stream by concatenating two clipping sources. When setting a start point, two caveats to be aware of are that the wrapped source must be seekable, and that the player will need to decode up to the specified start time from a preceding keyframe (see the Github issue #2347 for more information).
Full Notes can found in the source link below.