1cc_defaults {
2    name: "libmedia_defaults",
3    include_dirs: [
4        "bionic/libc/private",
5    ],
6}
7
8cc_library_headers {
9    name: "libmedia_headers",
10    vendor_available: true,
11    export_include_dirs: ["include"],
12    header_libs:[
13        "libbase_headers",
14        "libgui_headers",
15        "libstagefright_headers",
16        "media_plugin_headers",
17    ],
18    export_header_lib_headers: [
19        "libgui_headers",
20        "libstagefright_headers",
21        "media_plugin_headers",
22    ],
23}
24
25cc_library {
26    name: "libmedia_helper",
27    vendor_available: true,
28    vndk: {
29        enabled: true,
30    },
31    double_loadable: true,
32    srcs: ["AudioParameter.cpp", "TypeConverter.cpp"],
33    cflags: [
34        "-Werror",
35        "-Wno-error=deprecated-declarations",
36        "-Wall",
37    ],
38    shared_libs: ["libutils", "liblog"],
39    header_libs: [
40        "libmedia_headers",
41        "libaudioclient_headers",
42        "libaudio_system_headers",
43    ],
44    export_header_lib_headers: [
45        "libmedia_headers",
46    ],
47    clang: true,
48}
49
50cc_library_shared {
51    name: "libmedia_omx",
52    vendor_available: true,
53    vndk: {
54        enabled: true,
55    },
56    double_loadable: true,
57
58    srcs: [
59        "aidl/android/IGraphicBufferSource.aidl",
60        "aidl/android/IOMXBufferSource.aidl",
61
62        "IMediaCodecList.cpp",
63        "IOMX.cpp",
64        "MediaCodecBuffer.cpp",
65        "MediaCodecInfo.cpp",
66        "OMXBuffer.cpp",
67        "omx/1.0/WGraphicBufferSource.cpp",
68        "omx/1.0/WOmxBufferSource.cpp",
69        "omx/1.0/WOmxNode.cpp",
70        "omx/1.0/WOmxObserver.cpp",
71    ],
72
73    aidl: {
74        local_include_dirs: ["aidl"],
75        export_aidl_headers: true,
76    },
77
78    local_include_dirs: [
79        "include",
80    ],
81
82    shared_libs: [
83        "android.hidl.token@1.0-utils",
84        "android.hardware.media.omx@1.0",
85        "libbinder",
86        "libcutils",
87        "libhidlbase",
88        "libhidltransport",
89        "liblog",
90        "libstagefright_foundation",
91        "libui",
92        "libutils",
93    ],
94
95    export_shared_lib_headers: [
96        "android.hidl.token@1.0-utils",
97        "android.hardware.media.omx@1.0",
98        "libstagefright_foundation",
99        "libui",
100    ],
101
102    header_libs: [
103        "libstagefright_headers",
104        "media_plugin_headers",
105    ],
106
107    export_header_lib_headers: [
108        "libstagefright_headers",
109        "media_plugin_headers",
110    ],
111
112    export_include_dirs: [
113        "aidl",
114        "include",
115    ],
116
117    cflags: [
118        "-Werror",
119        "-Wno-error=deprecated-declarations",
120        "-Wall",
121    ],
122
123    sanitize: {
124        misc_undefined: [
125            "unsigned-integer-overflow",
126            "signed-integer-overflow",
127        ],
128        cfi: true,
129    },
130}
131
132
133cc_library_shared {
134    name: "libmedia_omx_client",
135
136    srcs: [
137        "omx/1.0/WOmx.cpp",
138    ],
139
140    local_include_dirs: [
141        "include",
142    ],
143
144    shared_libs: [
145        "libbinder",
146        "libcutils",
147        "libgui",
148        "libhidlbase",
149        "libhidltransport",
150        "liblog",
151        "libmedia_omx",
152        "libstagefright_foundation",
153        "libui",
154        "libutils",
155    ],
156
157    export_shared_lib_headers: [
158        "libgui",
159        "libmedia_omx",
160        "libstagefright_foundation",
161        "libui",
162    ],
163
164    header_libs: [
165        "libstagefright_headers",
166        "media_plugin_headers",
167    ],
168
169    export_header_lib_headers: [
170        "libstagefright_headers",
171        "media_plugin_headers",
172    ],
173
174    export_include_dirs: [
175        "include",
176    ],
177
178    cflags: [
179        "-Werror",
180        "-Wno-error=deprecated-declarations",
181        "-Wall",
182    ],
183
184    sanitize: {
185        misc_undefined: [
186            "unsigned-integer-overflow",
187            "signed-integer-overflow",
188        ],
189        cfi: true,
190    },
191}
192
193cc_library_static {
194    name: "libmedia_midiiowrapper",
195
196    srcs: ["MidiIoWrapper.cpp"],
197
198    static_libs: [
199        "libsonivox",
200    ],
201
202    header_libs: [
203        "media_ndk_headers",
204    ],
205
206    cflags: [
207        "-Werror",
208        "-Wno-error=deprecated-declarations",
209        "-Wall",
210    ],
211
212    sanitize: {
213        misc_undefined: [
214            "unsigned-integer-overflow",
215            "signed-integer-overflow",
216        ],
217        cfi: true,
218    },
219}
220
221cc_library {
222    name: "libmedia",
223
224    defaults: [ "libmedia_defaults" ],
225
226    srcs: [
227        "IDataSource.cpp",
228        "BufferingSettings.cpp",
229        "mediaplayer.cpp",
230        "IMediaHTTPConnection.cpp",
231        "IMediaHTTPService.cpp",
232        "IMediaExtractor.cpp",
233        "IMediaExtractorService.cpp",
234        "IMediaPlayerService.cpp",
235        "IMediaPlayerClient.cpp",
236        "IMediaRecorderClient.cpp",
237        "IMediaPlayer.cpp",
238        "IMediaRecorder.cpp",
239        "IMediaSource.cpp",
240        "IRemoteDisplay.cpp",
241        "IRemoteDisplayClient.cpp",
242        "IResourceManagerClient.cpp",
243        "IResourceManagerService.cpp",
244        "IStreamSource.cpp",
245        "MediaUtils.cpp",
246        "Metadata.cpp",
247        "mediarecorder.cpp",
248        "IMediaMetadataRetriever.cpp",
249        "mediametadataretriever.cpp",
250        "MidiDeviceInfo.cpp",
251        "JetPlayer.cpp",
252        "MediaScanner.cpp",
253        "MediaScannerClient.cpp",
254        "CharacterEncodingDetector.cpp",
255        "IMediaDeathNotifier.cpp",
256        "MediaProfiles.cpp",
257        "MediaResource.cpp",
258        "MediaResourcePolicy.cpp",
259        "Visualizer.cpp",
260        "StringArray.cpp",
261        "NdkMediaFormatPriv.cpp",
262        "NdkMediaErrorPriv.cpp",
263    ],
264
265    aidl: {
266        local_include_dirs: ["aidl"],
267        export_aidl_headers: true,
268    },
269
270    header_libs: [
271        "libstagefright_headers",
272        "media_ndk_headers",
273    ],
274
275    export_header_lib_headers: [
276        "libstagefright_headers",
277        "media_ndk_headers",
278    ],
279
280    shared_libs: [
281        "android.hidl.token@1.0-utils",
282        "liblog",
283        "libcutils",
284        "libprocessgroup",
285        "libutils",
286        "libbinder",
287        "libsonivox",
288        "libandroidicu",
289        "libexpat",
290        "libcamera_client",
291        "libstagefright_foundation",
292        "libgui",
293        "libdl",
294        "libaudioutils",
295        "libaudioclient",
296        "libmedia_omx",
297    ],
298
299    export_shared_lib_headers: [
300        "libaudioclient",
301        "libbinder",
302        "libandroidicu",
303        "libsonivox",
304        "libmedia_omx",
305    ],
306
307    static_libs: [
308        "libc_malloc_debug_backtrace",  // for memory heap analysis
309        "libmedia_midiiowrapper",
310    ],
311
312    export_include_dirs: [
313        "include",
314    ],
315
316    cflags: [
317        "-Werror",
318        "-Wno-error=deprecated-declarations",
319        "-Wall",
320    ],
321
322    version_script: "exports.lds",
323
324    sanitize: {
325        misc_undefined: [
326            "unsigned-integer-overflow",
327            "signed-integer-overflow",
328        ],
329        cfi: true,
330    },
331}
332
333cc_library_static {
334    name: "libmedia_player2_util",
335
336    defaults: [ "libmedia_defaults" ],
337
338    srcs: [
339        "AudioParameter.cpp",
340        "BufferingSettings.cpp",
341        "DataSourceDesc.cpp",
342        "MediaCodecBuffer.cpp",
343        "Metadata.cpp",
344        "NdkWrapper.cpp",
345    ],
346
347    shared_libs: [
348        "libbinder",
349        "libcutils",
350        "liblog",
351        "libmediandk",
352        "libnativewindow",
353        "libmediandk_utils",
354        "libstagefright_foundation",
355        "libui",
356        "libutils",
357    ],
358
359    export_shared_lib_headers: [
360        "libbinder",
361        "libmediandk",
362    ],
363
364    header_libs: [
365        "media_plugin_headers",
366    ],
367
368    include_dirs: [
369        "frameworks/av/media/ndk",
370    ],
371
372    static_libs: [
373        "libstagefright_rtsp",
374        "libstagefright_timedtext",
375    ],
376
377    export_include_dirs: [
378        "include",
379    ],
380
381    cflags: [
382        "-Werror",
383        "-Wno-error=deprecated-declarations",
384        "-Wall",
385    ],
386
387    sanitize: {
388        misc_undefined: [
389            "unsigned-integer-overflow",
390            "signed-integer-overflow",
391        ],
392        cfi: true,
393    },
394}
395