1.1.0-alpha01
Pre-release
Pre-release
tof-tof
released this
10 May 19:42
·
3636 commits
to release
since this release
- Core library:
- Add suppression reason for unsuitable audio route and play when ready change reason for suppressed too long. (#15).
- Add
ExoPlayer.setVideoEffects()
for usingEffect
during video playback. - Update
SampleQueue
to storesourceId
as along
rather than anint
. This changes the signatures of public methodsSampleQueue.sourceId
andSampleQueue.peekSourceId
. - Add parameters to
LoadControl
methodsshouldStartPlayback
andonTracksSelected
that allow associating these methods with the relevantMediaPeriod
. - Change signature of
ServerSideAdInsertionMediaSource.setAdPlaybackStates(Map<Object, AdPlaybackState>)
by adding a timeline parameter that contains the periods with the UIDs used as keys in the map. This is required to avoid concurrency issues with multi-period live streams. - Deprecate
EventDispatcher.withParameters(int windowIndex, @Nullable MediaPeriodId mediaPeriodId, long mediaTimeOffsetMs)
andBaseMediaSource.createEventDispatcher(..., long mediaTimeOffsetMs)
. The variant of the methods without themediaTimeOffsetUs
can be called instead. Note that even for the deprecated variants, the offset is not anymore added tostartTimeUs
andendTimeUs
of theMediaLoadData
objects that are dispatched by the dispatcher. - Rename
ExoTrackSelection.blacklist
toexcludeTrack
andisBlacklisted
toisTrackExcluded
. - Deprecate
Player.COMMAND_GET_MEDIA_ITEMS_METADATA
andCOMMAND_SET_MEDIA_ITEMS_METADATA
. UseCOMMAND_GET_METADATA
andCOMMAND_SET_PLAYLIST_METADATA
instead. - Add
Buffer.isLastSample()
that denotes ifBuffer
contains flagC.BUFFER_FLAG_LAST_SAMPLE
. - Fix issue where last frame may not be rendered if the last sample with frames is dequeued without reading the 'end of stream' sample. (#11079).
- Add
Builder
forDeviceInfo
and deprecate existing constructor. - Add
DeviceInfo.routingControllerId
to specify the routing controller ID for remote playbacks. - Fix inconsistent behavior between
ExoPlayer.setMediaItem(s)
andaddMediaItem(s)
when called on an empty playlist.
- Extractors:
- Fix parsing of H.265 SPS in MPEG-TS files by re-using the parsing logic already used by RTSP and MP4 extractors (#303).
- Session:
- Deprecate 4 volume-controlling methods in
Player
and add overloaded methods which allow users to specify volume flags:void setDeviceVolume(int, int)
void increaseDeviceVolume(int)
void decreaseDeviceVolume(int)
void setDeviceMuted(boolean, int)
- Fix issue where
MediaController
doesn't update its available commands when connected to a legacyMediaSessionCompat
that updates its actions. - Add helper method
MediaSession.getControllerForCurrentRequest
to obtain information about the controller that is currently calling aPlayer
method. - Fix bug that prevented the
MediaLibraryService
from returning null for a call from System UI toCallback.onGetLibraryRoot
withparams.isRecent == true
on API 30 (#355). - Fix memory leak of
MediaSessionService
orMediaLibraryService
(#346).
- Deprecate 4 volume-controlling methods in
- UI:
- Add Util methods
shouldShowPlayButton
andhandlePlayPauseButtonAction
to write custom UI elements with a play/pause button.
- Add Util methods
- Track selection:
- Add
DefaultTrackSelector.Parameters.allowInvalidateSelectionsForRendererCapabilitiesChange
which is disabled by default. When enabled, theDefaultTrackSelector
will trigger a new track selection when the renderer capabilities changed.
- Add
- Audio:
- Fix bug where some playbacks fail when tunneling is enabled and
AudioProcessors
are active, e.g. for gapless trimming (#10847). - Encapsulate Opus frames in Ogg packets in direct playbacks (offload).
- Extrapolate current position during sleep with offload scheduling.
- Add
Renderer.release()
andAudioSink.release()
for releasing the resources at the end of player's lifecycle. - Listen to audio capabilities changes in
DefaultAudioSink
. Add a required parametercontext
in the constructor ofDefaultAudioSink
, with which theDefaultAudioSink
will register as the listener to theAudioCapabilitiesReceiver
and update itsaudioCapabilities
property when informed with a capabilities change. - Propagate audio capabilities changes via a new event
onAudioCapabilitiesChanged
inAudioSink.Listener
interface, and a new interfaceRendererCapabilities.Listener
which triggersonRendererCapabilitiesChanged
events. - Add
ChannelMixingAudioProcessor
for applying scaling/mixing to audio channels. - Add new int value
DISCARD_REASON_AUDIO_BYPASS_POSSIBLE
toDecoderDiscardReasons
to discard audio decoder when bypass mode is possible after audio capabilities change.
- Fix bug where some playbacks fail when tunneling is enabled and
- Metadata:
- Deprecate
MediaMetadata.folderType
in favor ofisBrowsable
andmediaType
.
- Deprecate
- DRM:
- Reduce the visibility of several internal-only methods on
DefaultDrmSession
that aren't expected to be called from outside the DRM package:void onMediaDrmEvent(int)
void provision()
void onProvisionCompleted()
onProvisionError(Exception, boolean)
- Reduce the visibility of several internal-only methods on
- Transformer:
- Remove
Transformer.Builder.setMediaSourceFactory(MediaSource.Factory)
. UseExoPlayerAssetLoader.Factory(MediaSource.Factory)
andTransformer.Builder.setAssetLoaderFactory(AssetLoader.Factory)
instead. - Remove
Transformer.startTransformation(MediaItem, ParcelFileDescriptor)
. - Fix a bug where transformation could get stuck (leading to muxer timeout) if the end of the video stream was signaled at the moment when an input frame was pending processing.
- Query codecs via
MediaCodecList
instead of usingfindDecoder/EncoderForFormat
utilities, to expand support. - Remove B-frame configuration in
DefaultEncoderFactory
because it doesn't work on some devices.
- Remove
- Muxer:
- Add a new muxer library which can be used to create an MP4 container file.
- DASH:
- Remove the media time offset from
MediaLoadData.startTimeMs
andMediaLoadData.endTimeMs
for multi period DASH streams.
- Remove the media time offset from
- RTSP:
- For MPEG4-LATM, use default profile-level-id value if absent in Describe Response SDP message (#302).
- IMA DAI extension:
- Text:
- Fix a bug where a new ad group is inserted in live streams because the calculated content position in consecutive timelines varies slightly.
- SSA: Add support for UTF-16 files if they start with a byte order mark (#319).
- Test Utilities:
- Check for URI scheme case insensitivity in
DataSourceContractTest
.
- Check for URI scheme case insensitivity in
- Remove deprecated symbols:
- Remove
DefaultAudioSink
constructors, useDefaultAudioSink.Builder
instead. - Remove
HlsMasterPlaylist
, useHlsMultivariantPlaylist
instead. - Remove
Player.stop(boolean)
. UsePlayer.stop()
andPlayer.clearMediaItems()
(ifreset
istrue
) instead.
- Remove