1// Copyright (C) 2020 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    // See: http://go/android-license-faq
17    // A large-scale-change added 'default_applicable_licenses' to import
18    // all of the 'license_kinds' from "frameworks_base_license"
19    // to get the below license kinds:
20    //   SPDX-license-identifier-Apache-2.0
21    default_applicable_licenses: ["frameworks_base_license"],
22}
23
24java_library {
25    name: "updatable-media",
26
27    srcs: [
28        ":updatable-media-srcs",
29    ],
30
31    permitted_packages: [
32        "android.media",
33    ],
34
35    optimize: {
36        enabled: true,
37        shrink: true,
38        proguard_flags_files: ["updatable-media-proguard.flags"],
39    },
40
41    installable: true,
42
43    sdk_version: "module_current",
44    libs: [
45        "androidx.annotation_annotation",
46        "framework-annotations-lib",
47    ],
48    static_libs: [
49        "exoplayer2-extractor",
50        "mediatranscoding_aidl_interface-java",
51        "modules-annotation-minsdk",
52        "modules-utils-build",
53    ],
54    jarjar_rules: "jarjar_rules.txt",
55
56    plugins: ["java_api_finder"],
57
58    hostdex: true, // for hiddenapi check
59    apex_available: [
60        "com.android.media",
61        "test_com.android.media",
62    ],
63    min_sdk_version: "29",
64    visibility: [
65        "//frameworks/av/apex:__subpackages__",
66        "//frameworks/base", // For framework-all
67        "//frameworks/base/apex/media/service",
68    ],
69}
70
71filegroup {
72    name: "updatable-media-srcs",
73    srcs: [
74        "java/android/media/MediaFrameworkInitializer.java",
75        ":media-aidl-srcs",
76        ":mediaparceledlistslice-java-srcs",
77        ":mediaparser-srcs",
78        ":mediasession2-java-srcs",
79        ":mediatranscoding-srcs",
80    ],
81    visibility: ["//frameworks/base"],
82}
83
84filegroup {
85    name: "mediasession2-java-srcs",
86    srcs: [
87        "java/android/media/Controller2Link.java",
88        "java/android/media/MediaConstants.java",
89        "java/android/media/MediaController2.java",
90        "java/android/media/MediaSession2.java",
91        "java/android/media/MediaSession2Service.java",
92        "java/android/media/Session2Command.java",
93        "java/android/media/Session2CommandGroup.java",
94        "java/android/media/Session2Link.java",
95        "java/android/media/Session2Token.java",
96        "java/android/media/MediaCommunicationManager.java",
97    ],
98    path: "java",
99}
100
101filegroup {
102    name: "mediaparceledlistslice-java-srcs",
103    srcs: [
104        "java/android/media/MediaParceledListSlice.java",
105        "java/android/media/BaseMediaParceledListSlice.java",
106    ],
107    path: "java",
108}
109
110filegroup {
111    name: "mediaparser-srcs",
112    srcs: [
113        "java/android/media/MediaParser.java",
114    ],
115    path: "java",
116}
117
118filegroup {
119    name: "mediatranscoding-srcs",
120    srcs: [
121        "java/android/media/ApplicationMediaCapabilities.java",
122        "java/android/media/MediaFeature.java",
123        "java/android/media/MediaTranscodingManager.java",
124    ],
125    path: "java",
126}
127
128java_sdk_library {
129    name: "framework-media",
130    defaults: ["framework-module-defaults"],
131
132    // This is only used to define the APIs for updatable-media.
133    api_only: true,
134
135    srcs: [
136        ":updatable-media-srcs",
137    ],
138
139    impl_library_visibility: ["//frameworks/av/apex:__subpackages__"],
140}
141
142cc_library_shared {
143    name: "libmediaparser-jni",
144    srcs: [
145        "jni/android_media_MediaParserJNI.cpp",
146    ],
147    header_libs: ["jni_headers"],
148    shared_libs: [
149        "libandroid",
150        "liblog",
151        "libmediametrics",
152    ],
153    cflags: [
154        "-Wall",
155        "-Werror",
156        "-Wno-unused-parameter",
157        "-Wunreachable-code",
158        "-Wunused",
159    ],
160    apex_available: [
161        "com.android.media",
162    ],
163    min_sdk_version: "29",
164}
165