Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e665edc
Fix handling of content URIs by demo apps
ojw28 Jun 7, 2022
54bc665
Fix permissions request for media provider content URIs
ojw28 Jun 10, 2022
c4479c7
Cleanup: Remove unnecessary self-refs in Util
ojw28 Jun 15, 2022
56cfa66
Misc javadoc fix.
christosts Jun 15, 2022
265b865
Misc improvement in Util
christosts Jun 16, 2022
4e51ef5
Fix parsing H265 short term reference picture sets
ojw28 Jun 20, 2022
59fbb45
Clear pending doSomeWork messages when sleeping for offload
tonihei Jun 21, 2022
2f1260e
Inform ProgressiveMediaPeriod of known length earlier
ojw28 Jun 23, 2022
7683c8b
Rename shouldUseDummySurface to shouldUsePlaceholderSurface
tonihei Jun 27, 2022
9274f08
Clean up offload state tracking
tonihei Jun 27, 2022
36e92ae
Fix release notes related to track selection renames and deletions
icbaker Jun 28, 2022
cad5134
Fix typo in the media3 1.0.0-alpha02 / ExoPlayer 2.17.0 release notes
icbaker Jun 28, 2022
968169c
Use a helper function and Truth Correspondence instead of NoUidTimeline
icbaker Jun 28, 2022
8b2b786
Consider shuffle order in Timeline.equals()
icbaker Jun 28, 2022
258d936
Ensure TalkBack announces the selected playback speed in the UI menu
icbaker Jun 29, 2022
4d6781b
Fix MP4 parser issue in reading length of URL array from esds boxes.
rohitjoins Jul 1, 2022
1ec7148
Fix MP4 parser issue in reading bitrates from esds boxes.
rohitjoins Jul 1, 2022
23888c1
Use ContextCompat.getMainExecutor when calling MediaBrowser methods
marcbaechinger Jul 1, 2022
3de3f41
Document custom commands in the DefaultMediaNotificationProvider
marcbaechinger Jul 1, 2022
1def7b5
Only consider enabled tracks in ProgressiveMediaPeriod.bufferedPosition
tonihei Jul 1, 2022
1bbaec9
Merge pull request #96 from fengdai:release
marcbaechinger Jul 4, 2022
1f1460a
Use mediaId as contentId if available
marcbaechinger Jul 5, 2022
d2027a8
Exclude HEVC 10bit profile on Pixel 1.
tonihei Jul 6, 2022
9af65a9
Don't block AudioTrack when waiting for previous release
tonihei Jul 7, 2022
f9e0827
Add missing Nullable annotation
christosts Jul 7, 2022
c40d669
Add tests for extracting MP4 with large bitrates
rohitjoins Jul 7, 2022
bc47036
Merge pull request #10260 from sr1990:clearkey_parse_licenseurl
rohitjoins Jul 7, 2022
87b817b
Fix incorrect link tags
marcbaechinger Jul 6, 2022
329aa58
Listen to playWhenReady changes in LeanbackPlayerAdapter
christosts Jul 11, 2022
fe6baee
Use the public MediaItem in the timeline of CastPlayer
marcbaechinger Jul 11, 2022
fff99fe
Group COMMAND_SET_MEDIA_ITEM and COMMAND_CHANGE_MEDIA_ITEMS together
icbaker Jul 12, 2022
97716cd
Enable onMediaMetadataChanged in CastPlayer
marcbaechinger Jul 12, 2022
6180035
Add migration script
marcbaechinger Jul 12, 2022
da52b94
Merge pull request #110 from ittiam-systems:rtp_vp8_test
rohitjoins Jul 13, 2022
05a1bbf
Don't set the tag in CastTimeline
marcbaechinger Jul 12, 2022
3abffb7
Merge pull request #10185 from TiVo:p-custom-logger
rohitjoins Jul 13, 2022
dfe8bee
Fix setDataSourceFactory handling in DefaultMediaSourceFactory
tonihei Jul 13, 2022
37f1116
Version bump to exoplayer:2.18.1 and media3:1.0.0-beta02
rohitjoins Jul 15, 2022
cae428c
Modify release date for 2.18.1 and media3:1.0.0-beta02
rohitjoins Jul 21, 2022
86e2361
Remove unreleased changes section from RELEASENOTES.md
rohitjoins Jul 21, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ body:
label: Media3 Version
description: What version of Media3 are you using?
options:
- 1.0.0-beta02
- 1.0.0-beta01
- 1.0.0-alpha03
- 1.0.0-alpha02
Expand Down
61 changes: 51 additions & 10 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,47 @@
Release notes

### Unreleased changes
### 1.0.0-beta02 (2022-07-21)

This release corresponds to the
[ExoPlayer 2.18.1 release](https://github.com/google/ExoPlayer/releases/tag/r2.18.1).

* Core library:
* Ensure that changing the `ShuffleOrder` with `ExoPlayer.setShuffleOrder`
results in a call to `Player.Listener#onTimelineChanged` with
`reason=Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED`
([#9889](https://github.com/google/ExoPlayer/issues/9889)).
* For progressive media, only include selected tracks in buffered position
([#10361](https://github.com/google/ExoPlayer/issues/10361)).
* Allow custom logger for all ExoPlayer log output
([#9752](https://github.com/google/ExoPlayer/issues/9752)).
* Fix implementation of `setDataSourceFactory` in
`DefaultMediaSourceFactory`, which was non-functional in some cases
([#116](https://github.com/androidx/media/issues/116)).
* Extractors:
* Add support for AVI
([#2092](https://github.com/google/ExoPlayer/issues/2092)).
* Fix parsing of H265 short term reference picture sets
([#10316](https://github.com/google/ExoPlayer/issues/10316)).
* Fix parsing of bitrates from `esds` boxes
([#10381](https://github.com/google/ExoPlayer/issues/10381)).
* DASH:
* Parse ClearKey license URL from manifests
([#10246](https://github.com/google/ExoPlayer/issues/10246)).
* UI:
* Ensure TalkBack announces the currently active speed option in the
playback controls menu
([#10298](https://github.com/google/ExoPlayer/issues/10298)).
* RTSP:
* Add RTP reader for H263
([#63](https://github.com/androidx/media/pull/63)).
* Add VP8 fragmented packet handling
([#110](https://github.com/androidx/media/pull/110)).
* Leanback extension:
* Listen to `playWhenReady` changes in `LeanbackAdapter`
([10420](https://github.com/google/ExoPlayer/issues/10420)).
* Cast:
* Use the `MediaItem` that has been passed to the playlist methods as
`Window.mediaItem` in `CastTimeline`
([#25](https://github.com/androidx/media/issues/25),
[#8212](https://github.com/google/ExoPlayer/issues/8212)).
* Support `Player.getMetadata()` and `Listener.onMediaMetadataChanged()`
with `CastPlayer` ([#25](https://github.com/androidx/media/issues/25)).

### 1.0.0-beta01 (2022-06-16)

Expand Down Expand Up @@ -46,7 +80,9 @@ This release corresponds to the
* Rename `TracksInfo` to `Tracks` and `TracksInfo.TrackGroupInfo` to
`Tracks.Group`. `Player.getCurrentTracksInfo` and
`Player.Listener.onTracksInfoChanged` have also been renamed to
`Player.getCurrentTracks` and `Player.Listener.onTracksChanged`.
`Player.getCurrentTracks` and `Player.Listener.onTracksChanged`. This
includes 'un-deprecating' the `Player.Listener.onTracksChanged` method
name, but with different parameter types.
* Change `DefaultTrackSelector.buildUponParameters` and
`DefaultTrackSelector.Parameters.buildUpon` to return
`DefaultTrackSelector.Parameters.Builder` instead of the deprecated
Expand Down Expand Up @@ -100,6 +136,8 @@ This release corresponds to the
* Remove `RawCcExtractor`, which was only used to handle a Google-internal
subtitle format.
* Extractors:
* Add support for AVI
([#2092](https://github.com/google/ExoPlayer/issues/2092)).
* Matroska: Parse `DiscardPadding` for Opus tracks.
* MP4: Parse bitrates from `esds` boxes.
* Ogg: Allow duplicate Opus ID and comment headers
Expand Down Expand Up @@ -149,6 +187,8 @@ This release corresponds to the
of `DefaultCompositeSequenceableLoaderFactory` can be passed explicitly
if required.
* RTSP:
* Add RTP reader for H263
([#63](https://github.com/androidx/media/pull/63)).
* Add RTP reader for MPEG4
([#35](https://github.com/androidx/media/pull/35)).
* Add RTP reader for HEVC
Expand Down Expand Up @@ -211,10 +251,11 @@ This release corresponds to the
AndroidStudio's gradle sync to fail
([#9933](https://github.com/google/ExoPlayer/issues/9933)).
* Remove deprecated symbols:
* Remove `Player.Listener.onTracksChanged`. Use
`Player.Listener.onTracksInfoChanged` instead.
* Remove `Player.Listener.onTracksChanged(TrackGroupArray,
TrackSelectionArray)`. Use `Player.Listener.onTracksChanged(Tracks)`
instead.
* Remove `Player.getCurrentTrackGroups` and
`Player.getCurrentTrackSelections`. Use `Player.getCurrentTracksInfo`
`Player.getCurrentTrackSelections`. Use `Player.getCurrentTracks`
instead. You can also continue to use `ExoPlayer.getCurrentTrackGroups`
and `ExoPlayer.getCurrentTrackSelections`, although these methods remain
deprecated.
Expand Down Expand Up @@ -424,7 +465,7 @@ This release corresponds to the
when creating `PendingIntent`s
([#9528](https://github.com/google/ExoPlayer/issues/9528)).
* Remove deprecated symbols:
* Remove `Player.EventLister`. Use `Player.Listener` instead.
* Remove `Player.EventListener`. Use `Player.Listener` instead.
* Remove `MediaSourceFactory.setDrmSessionManager`,
`MediaSourceFactory.setDrmHttpDataSourceFactory`, and
`MediaSourceFactory.setDrmUserAgent`. Use
Expand Down
2 changes: 1 addition & 1 deletion api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -807,7 +807,7 @@ package androidx.media3.common {
field public static final int TIMELINE_CHANGE_REASON_SOURCE_UPDATE = 1; // 0x1
}

@IntDef({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command {
@IntDef({androidx.media3.common.Player.COMMAND_INVALID, androidx.media3.common.Player.COMMAND_PLAY_PAUSE, androidx.media3.common.Player.COMMAND_PREPARE, androidx.media3.common.Player.COMMAND_STOP, androidx.media3.common.Player.COMMAND_SEEK_TO_DEFAULT_POSITION, androidx.media3.common.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_PREVIOUS, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_TO_NEXT, androidx.media3.common.Player.COMMAND_SEEK_TO_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_SEEK_BACK, androidx.media3.common.Player.COMMAND_SEEK_FORWARD, androidx.media3.common.Player.COMMAND_SET_SPEED_AND_PITCH, androidx.media3.common.Player.COMMAND_SET_SHUFFLE_MODE, androidx.media3.common.Player.COMMAND_SET_REPEAT_MODE, androidx.media3.common.Player.COMMAND_GET_CURRENT_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_GET_TIMELINE, androidx.media3.common.Player.COMMAND_GET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEMS_METADATA, androidx.media3.common.Player.COMMAND_SET_MEDIA_ITEM, androidx.media3.common.Player.COMMAND_CHANGE_MEDIA_ITEMS, androidx.media3.common.Player.COMMAND_GET_AUDIO_ATTRIBUTES, androidx.media3.common.Player.COMMAND_GET_VOLUME, androidx.media3.common.Player.COMMAND_GET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VOLUME, androidx.media3.common.Player.COMMAND_SET_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_ADJUST_DEVICE_VOLUME, androidx.media3.common.Player.COMMAND_SET_VIDEO_SURFACE, androidx.media3.common.Player.COMMAND_GET_TEXT, androidx.media3.common.Player.COMMAND_SET_TRACK_SELECTION_PARAMETERS, androidx.media3.common.Player.COMMAND_GET_TRACKS}) @java.lang.annotation.Documented @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.LOCAL_VARIABLE, java.lang.annotation.ElementType.TYPE_USE}) public static @interface Player.Command {
}

public static final class Player.Commands {
Expand Down
4 changes: 2 additions & 2 deletions constants.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
project.ext {
releaseVersion = '1.0.0-beta01'
releaseVersionCode = 1_000_000_1_01
releaseVersion = '1.0.0-beta02'
releaseVersionCode = 1_000_000_1_02
minSdkVersion = 16
appTargetSdkVersion = 29
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some
Expand Down
6 changes: 6 additions & 0 deletions demos/main/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@
<data android:scheme="file"/>
<data android:scheme="ssai"/>
</intent-filter>
<intent-filter>
<action android:name="androidx.media3.demo.main.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="content"/>
<data android:mimeType="*/*"/>
</intent-filter>
<intent-filter>
<action android:name="androidx.media3.demo.main.action.VIEW_LIST"/>
<category android:name="android.intent.category.DEFAULT"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.media3.common.MediaItem
import androidx.media3.session.LibraryResult
import androidx.media3.session.MediaBrowser
Expand Down Expand Up @@ -164,7 +165,7 @@ class MainActivity : AppCompatActivity() {
val root: MediaItem = result.value!!
pushPathStack(root)
},
MoreExecutors.directExecutor()
ContextCompat.getMainExecutor(this)
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import android.widget.LinearLayout
import android.widget.ListView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.media3.session.MediaBrowser
Expand Down Expand Up @@ -150,7 +151,7 @@ class PlayableFolderActivity : AppCompatActivity() {
val result = mediaItemFuture.get()!!
title.text = result.value!!.mediaMetadata.title
},
MoreExecutors.directExecutor()
ContextCompat.getMainExecutor(this)
)
childrenFuture.addListener(
{
Expand All @@ -161,7 +162,7 @@ class PlayableFolderActivity : AppCompatActivity() {
subItemMediaList.addAll(children)
mediaListAdapter.notifyDataSetChanged()
},
MoreExecutors.directExecutor()
ContextCompat.getMainExecutor(this)
)
}

Expand Down
6 changes: 6 additions & 0 deletions demos/surface/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@
<data android:scheme="asset"/>
<data android:scheme="file"/>
</intent-filter>
<intent-filter>
<action android:name="androidx.media3.demo.surface.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="content"/>
<data android:mimeType="*/*"/>
</intent-filter>
</activity>

</application>
Expand Down
6 changes: 6 additions & 0 deletions demos/transformer/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@
<data android:scheme="asset"/>
<data android:scheme="file"/>
</intent-filter>
<intent-filter>
<action android:name="androidx.media3.demo.transformer.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="content"/>
<data android:mimeType="*/*"/>
</intent-filter>
</activity>
<activity android:name=".TransformerActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
Expand Down
Loading