Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update media3 to v1.1.0 #2030

Merged
merged 1 commit into from
Jul 5, 2023
Merged

Update media3 to v1.1.0 #2030

merged 1 commit into from
Jul 5, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 5, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
androidx.media3:media3-test-utils-robolectric 1.1.0-rc01 -> 1.1.0 age adoption passing confidence
androidx.media3:media3-test-utils 1.1.0-rc01 -> 1.1.0 age adoption passing confidence
androidx.media3:media3-session 1.1.0-rc01 -> 1.1.0 age adoption passing confidence
androidx.media3:media3-exoplayer 1.1.0-rc01 -> 1.1.0 age adoption passing confidence

Release Notes

androidx/media (androidx.media3:media3-test-utils-robolectric)

v1.1.0

Compare Source

This release corresponds to the
ExoPlayer 2.19.0 release.

This release contains the following changes since the
1.0.2 release:

  • Common Library:
    • Add suppression reason for unsuitable audio route and play when ready
      change reason for suppressed too long.
      (#​15).
    • Add commands to Player:
      • COMMAND_GET_METADATA
      • COMMAND_SET_PLAYLIST_METADATA
      • COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS
      • COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS
    • Add overloaded methods to Player which allow users to specify volume
      flags:
      • void setDeviceVolume(int, int)
      • void increaseDeviceVolume(int)
      • void decreaseDeviceVolume(int)
      • void setDeviceMuted(boolean, int)
    • Add Builder for DeviceInfo and deprecate existing constructor.
    • Add DeviceInfo.routingControllerId to specify the routing controller
      ID for remote playbacks.
    • Add Player.replaceMediaItem(s) as a shortcut to adding and removing
      items at the same position
      (#​8046).
  • ExoPlayer:
    • Allow ExoPlayer to have control of device volume methods only if
      explicitly opted in. Use
      ExoPlayer.Builder.setDeviceVolumeControlEnabled to have access to:
      • getDeviceVolume()
      • isDeviceMuted()
      • setDeviceVolume(int) and setDeviceVolume(int, int)
      • increaseDeviceVolume(int) and increaseDeviceVolume(int, int)
      • decreaseDeviceVolume(int) and decreaseDeviceVolume(int, int)
    • Add FilteringMediaSource that allows to filter available track types
      from a MediaSource.
    • Add support for including Common Media Client Data (CMCD) in the
      outgoing requests of adaptive streaming formats DASH, HLS, and
      SmoothStreaming. The following fields, br, bl, cid, rtp, and
      sid, have been incorporated
      (#​8699). API
      structure and API methods:
      • CMCD logging is disabled by default, use
        MediaSource.Factory.setCmcdConfigurationFactory(CmcdConfiguration.Factory cmcdConfigurationFactory) to enable it.
      • All keys are enabled by default, override
        CmcdConfiguration.RequestConfig.isKeyAllowed(String key) to filter
        out which keys are logged.
      • Override CmcdConfiguration.RequestConfig.getCustomData() to enable
        custom key logging.
    • Add additional action to manifest of main demo to make it easier to
      start the demo app with a custom *.exolist.json file
      (#​439).
    • Add ExoPlayer.setVideoEffects() for using Effect during video
      playback.
    • Update SampleQueue to store sourceId as a long rather than an
      int. This changes the signatures of public methods
      SampleQueue.sourceId and SampleQueue.peekSourceId.
    • Add parameters to LoadControl methods shouldStartPlayback and
      onTracksSelected that allow associating these methods with the
      relevant MediaPeriod.
    • 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, @&#8203;Nullable MediaPeriodId mediaPeriodId, long mediaTimeOffsetMs) and
      BaseMediaSource.createEventDispatcher(..., long mediaTimeOffsetMs).
      The variant of the methods without the mediaTimeOffsetUs can be called
      instead. Note that even for the deprecated variants, the offset is not
      anymore added to startTimeUs and endTimeUs of the MediaLoadData
      objects that are dispatched by the dispatcher.
    • Rename ExoTrackSelection.blacklist to excludeTrack and
      isBlacklisted to isTrackExcluded.
    • Fix inconsistent behavior between ExoPlayer.setMediaItem(s) and
      addMediaItem(s) when called on an empty playlist.
  • Transformer:
    • Remove Transformer.Builder.setMediaSourceFactory(MediaSource.Factory).
      Use ExoPlayerAssetLoader.Factory(MediaSource.Factory) and
      Transformer.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 using
      findDecoder/EncoderForFormat utilities, to expand support.
    • Remove B-frame configuration in DefaultEncoderFactory because it
      doesn't work on some devices.
  • Track selection:
    • Add
      DefaultTrackSelector.Parameters.allowInvalidateSelectionsForRendererCapabilitiesChange
      which is disabled by default. When enabled, the DefaultTrackSelector
      will trigger a new track selection when the renderer capabilities
      changed.
  • Extractors:
    • Ogg: Fix bug when seeking in files with a long duration
      (#​391).
    • FMP4: Fix issue where TimestampAdjuster initializes a wrong timestamp
      offset with metadata sample time from emsg atom
      (#​356).
  • 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() and AudioSink.release() for releasing the
      resources at the end of player's lifecycle.
    • Listen to audio capabilities changes in DefaultAudioSink. Add a
      required parameter context in the constructor of DefaultAudioSink,
      with which the DefaultAudioSink will register as the listener to the
      AudioCapabilitiesReceiver and update its audioCapabilities property
      when informed with a capabilities change.
    • Propagate audio capabilities changes via a new event
      onAudioCapabilitiesChanged in AudioSink.Listener interface, and a
      new interface RendererCapabilities.Listener which triggers
      onRendererCapabilitiesChanged events.
    • Add ChannelMixingAudioProcessor for applying scaling/mixing to audio
      channels.
    • Add new int value DISCARD_REASON_AUDIO_BYPASS_POSSIBLE to
      DecoderDiscardReasons to discard audio decoder when bypass mode is
      possible after audio capabilities change.
    • Add direct playback support for DTS Express and DTS:X
      (#​335).
  • Video:
    • Make MediaCodecVideoRenderer report a VideoSize with a width and
      height of 0 when the renderer is disabled.
      Player.Listener.onVideoSizeChanged is called accordingly when
      Player.getVideoSize() changes. With this change, ExoPlayer's video
      size with MediaCodecVideoRenderer has a width and height of 0 when
      Player.getCurrentTracks does not support video, or the size of the
      supported video track is not yet determined.
  • 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)
  • Muxer:
    • Add a new muxer library which can be used to create an MP4 container
      file.
  • IMA extension:
    • Enable multi-period live DASH streams for DAI. Please note that the
      current implementation does not yet support seeking in live streams
      (#​10912).
    • Fix a bug where a new ad group is inserted in live streams because the
      calculated content position in consecutive timelines varies slightly.
  • Session:
    • Add helper method MediaSession.getControllerForCurrentRequest to
      obtain information about the controller that is currently calling
      aPlayer method.
    • Add androidx.media3.session.MediaButtonReceiver to enable apps to
      implement playback resumption with media button events sent by, for
      example, a Bluetooth headset
      (#​167).
    • Add default implementation to MediaSession.Callback.onAddMediaItems to
      allow requested MediaItems to be passed onto Player if they have
      LocalConfiguration (e.g. URI)
      (#​282).
    • Add "seek to previous" and "seek to next" command buttons on compact
      media notification view by default for Android 12 and below
      (#​410).
    • Add default implementation to MediaSession.Callback.onAddMediaItems to
      allow requested MediaItems to be passed onto Player if they have
      LocalConfiguration (e.g. URI)
      (#​282).
    • Add "seek to previous" and "seek to next" command buttons on compact
      media notification view by default for Android 12 and below
      (#​410).
  • UI:
    • Add Util methods shouldShowPlayButton and
      handlePlayPauseButtonAction to write custom UI elements with a
      play/pause button.
  • RTSP Extension:
    • For MPEG4-LATM, use default profile-level-id value if absent in Describe
      Response SDP message
      (#​302).
    • Use base Uri for relative path resolution from the RTSP session if
      present in DESCRIBE response header
      (#​11160).
  • DASH Extension:
    • Remove the media time offset from MediaLoadData.startTimeMs and
      MediaLoadData.endTimeMs for multi period DASH streams.
    • Fix a bug where re-preparing a multi-period live Dash media source
      produced a IndexOutOfBoundsException
      (#​10838).
  • HLS Extension:
    • Add
      HlsMediaSource.Factory.setTimestampAdjusterInitializationTimeoutMs(long)
      to set a timeout for the loading thread to wait for the
      TimestampAdjuster to initialize. If the initialization doesn't
      complete before the timeout, a PlaybackException is thrown to avoid
      the playback endless stalling. The timeout is set to zero by default
      (#​323).
  • Test Utilities:
    • Check for URI scheme case insensitivity in DataSourceContractTest.
  • Remove deprecated symbols:
    • Remove DefaultAudioSink constructors, use DefaultAudioSink.Builder
      instead.
    • Remove HlsMasterPlaylist, use HlsMultivariantPlaylist instead.
    • Remove Player.stop(boolean). Use Player.stop() and
      Player.clearMediaItems() (if reset is true) instead.
    • Remove two deprecated SimpleCache constructors, use a non-deprecated
      constructor that takes a DatabaseProvider instead for better
      performance.
    • Remove DefaultBandwidthMeter constructor, use
      DefaultBandwidthMeter.Builder instead.
    • Remove DefaultDrmSessionManager constructors, use
      DefaultDrmSessionManager.Builder instead.
    • Remove two deprecated HttpDataSource.InvalidResponseCodeException
      constructors, use a non-deprecated constructor that accepts additional
      fields(cause, responseBody) to enhance error logging.
    • Remove DownloadHelper.forProgressive, DownloadHelper.forHls,
      DownloadHelper.forDash, and DownloadHelper.forSmoothStreaming, use
      DownloadHelper.forMediaItem instead.
    • Remove deprecated DownloadService constructor, use a non deprecated
      constructor that includes the option to provide a
      channelDescriptionResourceId parameter.
    • Remove deprecated String constants for Charsets (ASCII_NAME,
      UTF8_NAME, ISO88591_NAME, UTF16_NAME and UTF16LE_NAME), use
      Kotlin Charsets from the kotlin.text package, the
      java.nio.charset.StandardCharsets or the
      com.google.common.base.Charsets instead.
    • Remove deprecated WorkManagerScheduler constructor, use a non
      deprecated constructor that includes the option to provide a Context
      parameter instead.
    • Remove the deprecated methods createVideoSampleFormat,
      createAudioSampleFormat, createContainerFormat, and
      createSampleFormat, which were used to instantiate the Format class.
      Instead use Format.Builder for creating instances of Format.
    • Remove the deprecated methods copyWithMaxInputSize,
      copyWithSubsampleOffsetUs, copyWithLabel,
      copyWithManifestFormatInfo, copyWithGaplessInfo,
      copyWithFrameRate, copyWithDrmInitData, copyWithMetadata,
      copyWithBitrate and copyWithVideoSize, use Format.buildUpon() and
      setter methods instead.
    • Remove deprecated ExoPlayer.retry(), use prepare() instead.
    • Remove deprecated zero-arg DefaultTrackSelector constructor, use
      DefaultTrackSelector(Context) instead.
    • Remove deprecated OfflineLicenseHelper constructor, use
      OfflineLicenseHelper(DefaultDrmSessionManager, DrmSessionEventListener.EventDispatcher) instead.
    • Remove deprecated DownloadManager constructor, use the constructor
      that takes an Executor instead.
    • Remove deprecated Cue constructors, use Cue.Builder instead.
    • Remove deprecated OfflineLicenseHelper constructor, use
      OfflineLicenseHelper(DefaultDrmSessionManager, DrmSessionEventListener.EventDispatcher) instead.
    • Remove four deprecated AnalyticsListener methods:
      • onDecoderEnabled, use onAudioEnabled and/or onVideoEnabled
        instead.
      • onDecoderInitialized, use onAudioDecoderInitialized and/or
        onVideoDecoderInitialized instead.
      • onDecoderInputFormatChanged, use onAudioInputFormatChanged
        and/or onVideoInputFormatChanged instead.
      • onDecoderDisabled, use onAudioDisabled and/or onVideoDisabled
        instead.
    • Remove the deprecated Player.Listener.onSeekProcessed and
      AnalyticsListener.onSeekProcessed, use onPositionDiscontinuity with
      DISCONTINUITY_REASON_SEEK instead.
    • Remove ExoPlayer.setHandleWakeLock(boolean), use setWakeMode(int)
      instead.
    • Remove deprecated
      DefaultLoadControl.Builder.createDefaultLoadControl(), use build()
      instead.
    • Remove deprecated MediaItem.PlaybackProperties, use
      MediaItem.LocalConfiguration instead. Deprecated field
      MediaItem.playbackProperties is now of type
      MediaItem.LocalConfiguration.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@PaulWoitaschek PaulWoitaschek merged commit 965f3ff into main Jul 5, 2023
3 checks passed
@PaulWoitaschek PaulWoitaschek deleted the renovate/media3 branch July 5, 2023 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant