1cc_library_headers {
2    name: "libcodec2_internal",
3
4    export_include_dirs: [
5        "internal",
6    ],
7
8    // TODO: Remove this when this module is moved back to frameworks/av.
9    vendor_available: true,
10
11    min_sdk_version: "29",
12}
13
14// !!!DO NOT DEPEND ON THIS SHARED LIBRARY DIRECTLY!!!
15// use libcodec2-impl-defaults instead
16cc_library_shared {
17    name: "libcodec2_vndk",
18    vendor_available: true,
19    min_sdk_version: "29",
20    // TODO: b/147147883
21    double_loadable: true,
22
23    srcs: [
24        "C2AllocatorBlob.cpp",
25        "C2AllocatorIon.cpp",
26        "C2AllocatorGralloc.cpp",
27        "C2Buffer.cpp",
28        "C2Config.cpp",
29        "C2PlatformStorePluginLoader.cpp",
30        "C2Store.cpp",
31        "platform/C2BqBuffer.cpp",
32        "types.cpp",
33        "util/C2Debug.cpp",
34        "util/C2InterfaceHelper.cpp",
35        "util/C2InterfaceUtils.cpp",
36        "util/C2ParamUtils.cpp",
37    ],
38
39    export_include_dirs: [
40        "include",
41    ],
42
43    export_shared_lib_headers: [
44        "libbase",
45        "android.hardware.media.bufferpool@2.0",
46    ],
47
48    local_include_dirs: [
49        "internal",
50    ],
51
52    header_libs: [
53        "media_plugin_headers",
54        "libcodec2_headers",
55    ],
56
57    shared_libs: [
58        "android.hardware.graphics.bufferqueue@2.0",
59        "android.hardware.graphics.common@1.2",
60        "android.hardware.media.bufferpool@2.0",
61        "libbase",
62        "libcutils",
63        "libdl",
64        "libhardware",
65        "libhidlbase",
66        "libion",
67        "libfmq",
68        "liblog",
69        "libnativewindow",
70        "libstagefright_foundation",
71        "libstagefright_bufferpool@2.0.1",
72        "libui",
73        "libutils",
74    ],
75
76    cflags: [
77        "-Werror",
78        "-Wall",
79    ],
80}
81
82// public dependency for implementing Codec 2 components
83cc_defaults {
84    name: "libcodec2-impl-defaults",
85
86    shared_libs: [
87        "libbase", // for C2_LOG
88        "liblog", // for ALOG
89        "libcodec2",
90        "libcodec2_vndk",
91        "libutils",
92    ],
93
94    min_sdk_version: "29",
95}
96
97// public dependency for implementing Codec 2 framework utilities
98// THIS IS ONLY FOR FRAMEWORK USE ONLY
99cc_defaults {
100    name: "libcodec2-internal-defaults",
101    defaults: ["libcodec2-impl-defaults"],
102
103    header_libs: [
104        "libcodec2_internal",
105    ],
106
107    shared_libs: [
108        "libcutils", // for properties
109    ],
110
111    // TODO: separate internal headers so they can be exposed here
112}
113
114