cc_library_shared {
    name: "libmedia_jni",

    srcs: [
        "android_media_ImageWriter.cpp",
        "android_media_ImageReader.cpp",
        "android_media_MediaCrypto.cpp",
        "android_media_MediaCodec.cpp",
        "android_media_MediaCodecList.cpp",
        "android_media_MediaDataSource.cpp",
        "android_media_MediaDescrambler.cpp",
        "android_media_MediaDrm.cpp",
        "android_media_MediaExtractor.cpp",
        "android_media_MediaHTTPConnection.cpp",
        "android_media_MediaMetadataRetriever.cpp",
        "android_media_MediaMuxer.cpp",
        "android_media_MediaPlayer.cpp",
        "android_media_MediaProfiles.cpp",
        "android_media_MediaRecorder.cpp",
        "android_media_MediaScanner.cpp",
        "android_media_MediaSync.cpp",
        "android_media_ResampleInputStream.cpp",
        "android_media_Streams.cpp",
        "android_media_SyncParams.cpp",
        "android_mtp_MtpDatabase.cpp",
        "android_mtp_MtpDevice.cpp",
        "android_mtp_MtpServer.cpp",
    ],

    shared_libs: [
        "libandroid_runtime",
        "libnativehelper",
        "libnativewindow",
        "libutils",
        "libbinder",
        "libmedia",
        "libmedia_jni_utils",
        "libmedia_omx",
        "libmediametrics",
        "libmediadrm",
        "libhwui",
        "libui",
        "liblog",
        "libcutils",
        "libgui",
        "libstagefright",
        "libstagefright_foundation",
        "libcamera_client",
        "libmtp",
        "libexif",
        "libpiex",
        "libprocessgroup",
        "libandroidfw",
        "libhidlallocatorutils",
        "libhidlbase",
        "libhidltransport",
        "android.hardware.cas@1.0",
        "android.hardware.cas.native@1.0",
        "android.hidl.memory@1.0",
        "android.hidl.token@1.0-utils",
    ],

    header_libs: ["libhardware_headers"],

    static_libs: ["libgrallocusage"],

    include_dirs: [
        "frameworks/base/core/jni",
        "frameworks/native/include/media/openmax",
        "system/media/camera/include",
    ],

    export_include_dirs: ["."],

    export_shared_lib_headers: [
        "libpiex",
    ],

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-error=deprecated-declarations",
        "-Wunused",
        "-Wunreachable-code",
    ],
}

cc_library_shared {
    name: "libmedia_jni_utils",
    srcs: [
        "android_media_Utils.cpp",
    ],

    shared_libs: [
        "liblog",
        "libgui",
        "libnativewindow",
        "libui",
        "libutils",
        "android.hidl.token@1.0-utils",
    ],

    include_dirs: [
        "system/media/camera/include",
    ],

    export_include_dirs: ["."],

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-error=deprecated-declarations",
        "-Wunused",
        "-Wunreachable-code",
    ],
}

cc_library_shared {
    name: "libmedia2_jni",

    srcs: [
        "android_media_DataSourceCallback.cpp",
        "android_media_MediaMetricsJNI.cpp",
        "android_media_MediaPlayer2.cpp",
        "android_media_SyncParams.cpp",
    ],

    shared_libs: [
        // NDK or LLNDK or NDK-compliant
        "libandroid",
        "libbinder_ndk",
        "libcgrouprc",
        "libmediandk",
        "libmediametrics",
        "libnativehelper_compat_libc++",
        "liblog",
        "libvndksupport",
    ],

    header_libs: [
        "libhardware_headers",
        "libnativewindow_headers",
    ],

    static_libs: [
        // MediaCas
        "android.hidl.allocator@1.0",
        "android.hidl.memory@1.0",
        "libhidlbase",
        "libhidlmemory",
        "libhidltransport",
        "libbinderthreadstate",

        // MediaPlayer2 implementation
        "libbase",
        "libcrypto",
        "libcutils",
        "libjsoncpp",
        "libmedia_player2_util",
        "libmediaplayer2",
        "libmediaplayer2-protos",
        "libmediandk_utils",
        "libmediautils",
        "libprocessgroup",
        "libprotobuf-cpp-lite",
        "libstagefright_esds",
        "libstagefright_foundation_without_imemory",
        "libstagefright_httplive",
        "libstagefright_id3",
        "libstagefright_mpeg2support",
        "libstagefright_nuplayer2",
        "libstagefright_player2",
        "libstagefright_rtsp_player2",
        "libstagefright_timedtext2",
        "libutils",
        "libmedia2_jni_core",
    ],

    group_static_libs: true,

    include_dirs: [
        "frameworks/base/core/jni",
        "frameworks/native/include/media/openmax",
        "system/media/camera/include",
    ],

    export_include_dirs: ["."],

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-error=deprecated-declarations",
        "-Wunused",
        "-Wunreachable-code",
        "-fvisibility=hidden",
    ],

    ldflags: ["-Wl,--exclude-libs=ALL,-error-limit=0"],
}

subdirs = [
    "audioeffect",
    "soundpool",
]