Skip to content

Commit b64b462

Browse files
authored
Merge branch 'main' into resumeintime
2 parents b5da739 + 5fc6781 commit b64b462

File tree

1,487 files changed

+71159
-18553
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,487 files changed

+71159
-18553
lines changed

RELEASENOTES.md

Lines changed: 178 additions & 8 deletions
Large diffs are not rendered by default.

api.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,6 +1495,23 @@ package androidx.media3.exoplayer.util {
14951495

14961496
}
14971497

1498+
package androidx.media3.muxer {
1499+
1500+
public final class MediaMuxerCompat {
1501+
ctor public MediaMuxerCompat(java.io.FileDescriptor, int) throws java.io.IOException;
1502+
ctor public MediaMuxerCompat(String, int) throws java.io.IOException;
1503+
method public int addTrack(android.media.MediaFormat);
1504+
method public void release();
1505+
method public void setLocation(@FloatRange(from=-90.0, to=90.0) float, @FloatRange(from=-180.0, to=180.0) float);
1506+
method public void setOrientationHint(int);
1507+
method public void start();
1508+
method public void stop();
1509+
method public void writeSampleData(int, java.nio.ByteBuffer, android.media.MediaCodec.BufferInfo);
1510+
field public static final int OUTPUT_FORMAT_MP4 = 0; // 0x0
1511+
}
1512+
1513+
}
1514+
14981515
package androidx.media3.session {
14991516

15001517
public final class CommandButton {
@@ -1858,6 +1875,7 @@ package androidx.media3.session {
18581875

18591876
@com.google.errorprone.annotations.DoNotMock public class MediaSession {
18601877
method public final void broadcastCustomCommand(androidx.media3.session.SessionCommand, android.os.Bundle);
1878+
method public static int getBitmapDimensionLimit(android.content.Context);
18611879
method public final java.util.List<androidx.media3.session.MediaSession.ControllerInfo> getConnectedControllers();
18621880
method @Nullable public final androidx.media3.session.MediaSession.ControllerInfo getControllerForCurrentRequest();
18631881
method public final String getId();

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ buildscript {
1717
mavenCentral()
1818
}
1919
dependencies {
20-
classpath 'com.android.tools.build:gradle:8.8.1'
20+
classpath 'com.android.tools.build:gradle:8.12.3'
2121
classpath 'com.google.android.gms:strict-version-matcher-plugin:1.2.4'
2222
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.20'
2323
classpath 'org.jetbrains.kotlin:compose-compiler-gradle-plugin:2.0.20'

constants.gradle

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ project.ext {
2121
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some
2222
// additional robolectric config.
2323
targetSdkVersion = 31
24-
compileSdkVersion = 36
24+
compileSdkVersion = 35
2525
dexmakerVersion = '2.28.3'
2626
// Use the same JUnit version as the Android repo:
2727
// https://cs.android.com/android/platform/superproject/main/+/main:external/junit/METADATA
@@ -43,13 +43,17 @@ project.ext {
4343
androidxAnnotationExperimentalVersion = '1.3.1'
4444
androidxAppCompatVersion = '1.6.1'
4545
androidxCollectionVersion = '1.2.0'
46+
androidxComposeBomVersion = '2024.12.01'
47+
androidxConcurrentFuturesVersion = '1.2.0'
4648
androidxConstraintLayoutVersion = '2.1.4'
4749
androidxCoreVersion = '1.8.0'
4850
androidxExifInterfaceVersion = '1.3.6'
4951
androidxLifecycleVersion = '2.8.7'
5052
androidxMediaVersion = '1.7.0'
53+
androidxNavigationVersion = '2.9.4'
5154
androidxRecyclerViewVersion = '1.3.0'
5255
androidxMaterialVersion = '1.8.0'
56+
androidxMediaRouterVersion = '1.8.1'
5357
androidxTestCoreVersion = '1.5.0'
5458
androidxTestUiAutomatorVersion = '2.3.0'
5559
androidxWindowVersion = '1.3.0'
@@ -58,8 +62,11 @@ project.ext {
5862
androidxTestRunnerVersion = '1.5.2'
5963
androidxTestRulesVersion = '1.5.0'
6064
androidxTestTruthVersion = '1.5.0'
65+
desugarJdkLibsVersion = '2.1.5'
66+
lottieVersion = '6.6.0'
6167
truthVersion = '1.4.0'
6268
okhttpVersion = '4.12.0'
69+
testParameterInjectorVersion = '1.18'
6370
modulePrefix = ':'
6471
if (gradle.ext.has('androidxMediaModulePrefix')) {
6572
modulePrefix += gradle.ext.androidxMediaModulePrefix

core_settings.gradle

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ include modulePrefix + 'lib-ui-leanback'
5454
project(modulePrefix + 'lib-ui-leanback').projectDir = new File(rootDir, 'libraries/ui_leanback')
5555
include modulePrefix + 'lib-ui-compose'
5656
project(modulePrefix + 'lib-ui-compose').projectDir = new File(rootDir, 'libraries/ui_compose')
57+
include modulePrefix + 'lib-ui-compose-material3'
58+
project(modulePrefix + 'lib-ui-compose-material3').projectDir = new File(rootDir, 'libraries/ui_compose_material3')
5759

5860
include modulePrefix + 'lib-database'
5961
project(modulePrefix + 'lib-database').projectDir = new File(rootDir, 'libraries/database')
@@ -71,8 +73,6 @@ include modulePrefix + 'lib-decoder'
7173
project(modulePrefix + 'lib-decoder').projectDir = new File(rootDir, 'libraries/decoder')
7274
include modulePrefix + 'lib-decoder-av1'
7375
project(modulePrefix + 'lib-decoder-av1').projectDir = new File(rootDir, 'libraries/decoder_av1')
74-
include modulePrefix + 'lib-decoder-dav1d'
75-
project(modulePrefix + 'lib-decoder-dav1d').projectDir = new File(rootDir, 'libraries/decoder_dav1d')
7676
include modulePrefix + 'lib-decoder-ffmpeg'
7777
project(modulePrefix + 'lib-decoder-ffmpeg').projectDir = new File(rootDir, 'libraries/decoder_ffmpeg')
7878
include modulePrefix + 'lib-decoder-flac'
@@ -99,6 +99,9 @@ project(modulePrefix + 'lib-cast').projectDir = new File(rootDir, 'libraries/cas
9999
include modulePrefix + 'lib-effect'
100100
project(modulePrefix + 'lib-effect').projectDir = new File(rootDir, 'libraries/effect')
101101

102+
include modulePrefix + 'lib-inspector'
103+
project(modulePrefix + 'lib-inspector').projectDir = new File(rootDir, 'libraries/inspector')
104+
102105
include modulePrefix + 'lib-muxer'
103106
project(modulePrefix + 'lib-muxer').projectDir = new File(rootDir, 'libraries/muxer')
104107

demos/compose/build.gradle

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,16 @@ android {
6464
}
6565

6666
dependencies {
67-
def composeBom = platform('androidx.compose:compose-bom:2024.12.01')
68-
implementation composeBom
69-
70-
implementation 'androidx.activity:activity-compose:1.9.0'
67+
implementation platform('androidx.compose:compose-bom:' + androidxComposeBomVersion)
7168
implementation 'androidx.compose.foundation:foundation'
7269
implementation 'androidx.compose.material3:material3'
73-
implementation 'androidx.compose.material:material-icons-extended'
74-
implementation 'androidx.compose.ui:ui-tooling-preview'
70+
71+
implementation 'androidx.activity:activity-compose:1.9.0'
7572
implementation 'androidx.lifecycle:lifecycle-runtime-compose:' + androidxLifecycleVersion
76-
implementation 'com.google.android.material:material:' + androidxMaterialVersion
73+
implementation 'androidx.navigation:navigation-compose:' + androidxNavigationVersion
7774

7875
implementation project(modulePrefix + 'lib-exoplayer')
79-
implementation project(modulePrefix + 'lib-ui-compose')
80-
debugImplementation 'androidx.compose.ui:ui-tooling'
76+
implementation project(modulePrefix + 'lib-ui-compose-material3')
8177

8278
// For detecting and debugging leaks only. LeakCanary is not needed for demo app to work.
8379
debugImplementation 'com.squareup.leakcanary:leakcanary-android:' + leakCanaryVersion
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
[
2+
{
3+
"name": "Playlists",
4+
"samples": [
5+
{
6+
"name": "Cats -> Dogs",
7+
"playlist": [
8+
{
9+
"uri": "https://html5demos.com/assets/dizzy.mp4"
10+
},
11+
{
12+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/mkv/android-screens-lavf-56.36.100-aac-avc-main-1280x720.mkv"
13+
}
14+
]
15+
},
16+
{
17+
"name": "Video (MKV) -> Audio Only -> Video Only",
18+
"playlist": [
19+
{
20+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/mkv/android-screens-lavf-56.36.100-aac-avc-main-1280x720.mkv"
21+
},
22+
{
23+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/audio-141.mp4"
24+
},
25+
{
26+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/video-137.mp4"
27+
}
28+
]
29+
},
30+
{
31+
"name": "Horizontal -> Vertical -> Horizontal -> Vertical",
32+
"playlist": [
33+
{
34+
"uri": "https://html5demos.com/assets/dizzy.mp4"
35+
},
36+
{
37+
"uri": "https://storage.googleapis.com/exoplayer-test-media-0/shortform_2.mp4"
38+
},
39+
{
40+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/video-vp9-360.webm"
41+
},
42+
{
43+
"uri": "https://storage.googleapis.com/exoplayer-test-media-0/shortform_3.mp4"
44+
}
45+
]
46+
}
47+
]
48+
},
49+
{
50+
"name": "Progressive",
51+
"samples": [
52+
{
53+
"name": "Dizzy (MP4)",
54+
"uri": "https://html5demos.com/assets/dizzy.mp4"
55+
},
56+
{
57+
"name": "Apple 10s (AAC)",
58+
"uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/gear0/fileSequence0.aac"
59+
},
60+
{
61+
"name": "Apple 10s (TS)",
62+
"uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/gear1/fileSequence0.ts"
63+
},
64+
{
65+
"name": "Android screens (MKV)",
66+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/mkv/android-screens-lavf-56.36.100-aac-avc-main-1280x720.mkv"
67+
},
68+
{
69+
"name": "Screens 360p (WebM, VP9)",
70+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/video-vp9-360.webm"
71+
},
72+
{
73+
"name": "Screens 480p (FMP4, H264)",
74+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/video-avc-baseline-480.mp4"
75+
},
76+
{
77+
"name": "Screens 1080p (FMP4, H264)",
78+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/video-137.mp4"
79+
},
80+
{
81+
"name": "Screens audio (FMP4)",
82+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/audio-141.mp4"
83+
},
84+
{
85+
"name": "Google Play (MP3)",
86+
"uri": "https://storage.googleapis.com/exoplayer-test-media-0/play.mp3"
87+
},
88+
{
89+
"name": "Google Play (Ogg, Vorbis)",
90+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/ogg/play.ogg"
91+
},
92+
{
93+
"name": "Google Play (Flac)",
94+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/flac/play.flac"
95+
},
96+
{
97+
"name": "Big Buck Bunny 480p (MP4, AV1)",
98+
"uri": "https://storage.googleapis.com/downloads.webmproject.org/av1/exoplayer/bbb-av1-480p.mp4"
99+
},
100+
{
101+
"name": "One hour frame counter (MP4)",
102+
"uri": "https://storage.googleapis.com/exoplayer-test-media-1/mp4/frame-counter-one-hour.mp4"
103+
},
104+
{
105+
"name": "Immersive Audio Format Sample (MP4, IAMF)",
106+
"uri": "https://github.com/AOMediaCodec/libiamf/raw/main/tests/test_000036_s.mp4"
107+
},
108+
{
109+
"name": "MPEG-H HD (MP4, H265)",
110+
"uri": "https://media.githubusercontent.com/media/Fraunhofer-IIS/mpegh-test-content/main/TRI_Fileset_17_514H_D1_D2_D3_O1_24bit1080p50.mp4"
111+
}
112+
]
113+
}
114+
]

0 commit comments

Comments
 (0)