• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17// README:
18// - Before expanding the visiblity of any of the targets in this file,
19//   please add a test that covers the new dependencies in the TEST_MAPPING file
20//   of this directory. We cannot guarantee that ExoPlayer dependents will not
21//   be accidentally broken if it is not covered by presubmit.
22// - The names in this files follow the pattern exoplayer-dep_name[-module_name]
23//   where dep_name identifies the client, and module_name disambiguates the
24//   module for cases where necessary (example: The same client depends
25//   separately on two exoplayer modules).
26
27package {
28    default_applicable_licenses: ["external_exoplayer_license"],
29}
30
31// Added automatically by a large-scale-change
32// See: http://go/android-license-faq
33license {
34    name: "external_exoplayer_license",
35    visibility: [":__subpackages__"],
36    license_kinds: [
37        "SPDX-license-identifier-Apache-2.0",
38    ],
39    license_text: [
40        "LICENSE",
41    ],
42}
43
44android_library {
45    name: "exoplayer-mediaprovider-ui",
46    srcs: [
47        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/ui/src/main/java/**/*.java",
48    ],
49    resource_dirs: [
50        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/ui/src/main/res",
51    ],
52    sdk_version: "31",     // Needs to be a prebuilt, so not "current".
53    min_sdk_version: "16", // match with
54                           // tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/constants.gradle
55    libs: ["androidx.annotation_annotation"],
56    static_libs: [
57        "androidx.core_core",
58        "androidx.media_media",
59        "androidx.recyclerview_recyclerview",
60        "error_prone_annotations",
61        "exoplayer-annotation_stubs",
62        "exoplayer-mediaprovider-core",
63        "guava",
64        "jsr305",
65    ],
66    apex_available: [
67        "com.android.mediaprovider",
68        "//apex_available:platform",
69    ],
70
71    manifest: "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/ui/src/main/AndroidManifest.xml",
72    jarjar_rules: "annotation-stripping-jarjar-rules.txt",
73    visibility: ["//packages/providers/MediaProvider:__subpackages__"],
74    notice: "LICENSE"
75}
76
77// Needed because exoplayer-mediaprovider-ui depends on a resource from core, using the core package
78// name, meaning the resources from this target need to use the package name from core's manifest,
79// while exoplayer-mediaprovider-ui resources need to keep ui's package name.
80android_library {
81    name: "exoplayer-mediaprovider-core",
82    srcs: [
83        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/common/src/main/java/**/*.java",
84        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/core/src/main/java/**/*/*.java",
85        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/database/src/main/java/**/*.java",
86        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/datasource/src/main/java/**/*.java",
87        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/decoder/src/main/java/**/*.java",
88        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/extractor/src/main/java/**/*.java",
89    ],
90    resource_dirs: [
91        "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/core/src/main/res",
92    ],
93    sdk_version: "31",     // Needs to be a prebuilt, so not "current".
94    min_sdk_version: "16", // match with
95                           // tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/constants.gradle
96    libs: ["androidx.annotation_annotation"],
97    static_libs: [
98        "androidx.core_core",
99        "androidx.media_media",
100        "androidx.recyclerview_recyclerview",
101        "error_prone_annotations",
102        "exoplayer-annotation_stubs",
103        "guava",
104        "jsr305",
105    ],
106    apex_available: [
107        "com.android.mediaprovider",
108    ],
109    manifest: "tree_8e57d3715f9092d5ec54ebe2e538f34bfcc34479/library/core/src/main/AndroidManifest.xml",
110    jarjar_rules: "annotation-stripping-jarjar-rules.txt",
111    visibility: ["//visibility:private"],
112    notice: "LICENSE"
113}
114
115
116// Used by MediaMuxerTest to test features not supported by MediaExtractor.
117android_library {
118    name: "exoplayer-mediamuxer_tests",
119    srcs: [
120        "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/common/src/main/java/**/*.java",
121        "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/decoder/src/main/java/**/*.java",
122        "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/core/src/main/java/**/*.java",
123        "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/database/src/main/java/**/*.java",
124        "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/datasource/src/main/java/**/*.java",
125        "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/extractor/src/main/java/**/*.java",
126    ],
127    manifest: "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/core/src/main/AndroidManifest.xml",
128    resource_dirs: [
129        "tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/library/core/src/main/res",
130    ],
131    sdk_version: "31",     // Needs to be a prebuilt, so not "current".
132    min_sdk_version: "16", // match with
133                           // tree_15dc86382f17a24a3e881e52e31a810c1ea44b49/constants.gradle
134    libs: ["androidx.annotation_annotation"],
135    static_libs: [
136        "androidx.core_core",
137        "error_prone_annotations",
138        "exoplayer-annotation_stubs",
139        "guava",
140        "jsr305",
141    ],
142    jarjar_rules: "annotation-stripping-jarjar-rules.txt",
143    visibility: ["//cts/tests/tests/media/muxer:__subpackages__"],
144    notice: "LICENSE",
145}
146
147java_library {
148    name: "exoplayer-media_apex",
149    srcs: [
150        "tree/library/extractor/src/main/java/**/*.java",
151        "tree/library/common/src/main/java/**/*.java",
152    ],
153    sdk_version: "29", // Needs to be a prebuilt, so not "current".
154    apex_available: [
155        "com.android.media",
156    ],
157    min_sdk_version: "16", // match with tree/constants.gradle
158    libs: ["androidx.annotation_annotation"],
159    static_libs: [
160        "exoplayer-annotation_stubs",
161        "jsr305",
162    ],
163    jarjar_rules: "annotation-stripping-jarjar-rules.txt",
164    visibility: [
165        "//frameworks/base:__subpackages__",
166        "//packages/modules/Media/apex/framework",
167    ],
168    notice: "LICENSE",
169}
170
171// Exposes util classes for testing MediaParser.
172android_library {
173    name: "exoplayer-cts_media-test_utils",
174    manifest: "tree/library/extractor/src/test/AndroidManifest.xml",
175    srcs: [
176        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/Dumper.java",
177        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorInput.java",
178        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java",
179        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java",
180        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/TestUtil.java",
181        "tree/library/core/src/main/java/com/google/android/exoplayer2/database/DatabaseProvider.java",
182        "tree/library/core/src/main/java/com/google/android/exoplayer2/database/DefaultDatabaseProvider.java",
183    ],
184    sdk_version: "29",
185    libs: ["androidx.annotation_annotation"],
186    static_libs: [
187        "exoplayer-annotation_stubs",
188        "exoplayer-media_apex",
189        "truth-prebuilt",
190        "junit",
191        "androidx.test.core",
192    ],
193    jarjar_rules: "annotation-stripping-jarjar-rules.txt",
194    visibility: ["//cts/tests/tests/mediaparser:__subpackages__"],
195    notice: "LICENSE",
196}
197
198// Exposes the assets for testing MediaParser.
199android_library {
200    name: "exoplayer-cts_media-test_assets",
201    manifest: "tree/library/extractor/src/main/AndroidManifest.xml",
202    srcs: [],
203    sdk_version: "29",
204    visibility: ["//cts/tests/tests/mediaparser:__subpackages__"],
205    asset_dirs: ["tree/testdata/src/test/assets/"],
206    // Do not compress media files.
207    aaptflags: [
208        "-0 .ac3",
209        "-0 .ac4",
210        "-0 .adts",
211        "-0 .amr",
212        "-0 .eac3",
213        "-0 .flac",
214        "-0 .flv",
215        "-0 .id3",
216        "-0 .mkv",
217        "-0 .mp3",
218        "-0 .mp4",
219        "-0 .mpg",
220        "-0 .ogg",
221        "-0 .opus",
222        "-0 .ps",
223        "-0 .rawcc",
224        "-0 .ts",
225        "-0 .wav",
226        "-0 .webm",
227    ],
228}
229
230// Compile dummy implementations of annotations used by exoplayer but not
231// present in the Android tree.
232java_library {
233    name: "exoplayer-annotation_stubs",
234    host_supported: true,
235    sdk_version: "core_current",
236    apex_available: [
237        "//apex_available:anyapex",
238        "//apex_available:platform",
239    ],
240    min_sdk_version: "16",
241    srcs: ["annotation-stubs/src/**/*.java"],
242    static_libs: ["jsr305"],
243    visibility: ["//visibility:private"],
244}
245