//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

// Exposes ExoPlayer classes required for implementing the MediaParser API.
package {
    default_applicable_licenses: ["external_exoplayer_license"],
}

// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
    name: "external_exoplayer_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "LICENSE",
    ],
}

java_library {
    name: "exoplayer2-extractor",
    srcs: [
        "tree/library/extractor/src/main/java/**/*.java",
        "tree/library/common/src/main/java/**/*.java",
    ],
    sdk_version: "29", // Needs to be a prebuilt, so not "current".
    apex_available: [
        "com.android.media",
    ],
    min_sdk_version: "16", // match with tree/constants.gradle
    static_libs: [
        "exoplayer2-extractor-annotation-stubs",
        "androidx.annotation_annotation",
        "jsr305",
    ],
    jarjar_rules: "exoplayer2-extractor-jarjar-rules.txt",
    visibility: ["//frameworks/base:__subpackages__"],
    notice: "LICENSE",
}

// Compile dummy implementations of annotations used by exoplayer but not
// present in the Android tree.
java_library {
    name: "exoplayer2-extractor-annotation-stubs",
    host_supported: true,
    sdk_version: "core_current",
    apex_available: [
        "com.android.media",
    ],
    min_sdk_version: "16",
    srcs: ["annotation-stubs/src/**/*.java"],
    static_libs: ["jsr305"],
    visibility: ["//visibility:private"],
}

// Exposes util classes for testing MediaParser.
android_library {
    name: "exoplayer2-extractor-test-utils",
    manifest: "tree/library/extractor/src/test/AndroidManifest.xml",
    srcs: [
        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/Dumper.java",
        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorInput.java",
        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java",
        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java",
        "tree/testutils/src/main/java/com/google/android/exoplayer2/testutil/TestUtil.java",
        "tree/library/core/src/main/java/com/google/android/exoplayer2/database/DatabaseProvider.java",
        "tree/library/core/src/main/java/com/google/android/exoplayer2/database/DefaultDatabaseProvider.java",
    ],
    sdk_version: "29",
    static_libs: [
        "exoplayer2-extractor",
        "exoplayer2-extractor-annotation-stubs",
        "androidx.annotation_annotation",
        "truth-prebuilt",
        "junit",
        "androidx.test.core",
    ],
    jarjar_rules: "exoplayer2-extractor-jarjar-rules.txt",
    visibility: ["//cts/tests/tests/mediaparser:__subpackages__"],
    notice: "LICENSE",
}

// Exposes the assets for testing MediaParser.
android_library {
    name: "exoplayer2-extractor-tests-assets",
    manifest: "tree/library/extractor/src/main/AndroidManifest.xml",
    srcs: [],
    sdk_version: "29",
    visibility: ["//cts/tests/tests/mediaparser:__subpackages__"],
    asset_dirs: ["tree/testdata/src/test/assets/"],
    // Do not compress media files.
    aaptflags: [
        "-0 .ac3",
        "-0 .ac4",
        "-0 .adts",
        "-0 .amr",
        "-0 .eac3",
        "-0 .flac",
        "-0 .flv",
        "-0 .id3",
        "-0 .mkv",
        "-0 .mp3",
        "-0 .mp4",
        "-0 .mpg",
        "-0 .ogg",
        "-0 .opus",
        "-0 .ps",
        "-0 .rawcc",
        "-0 .ts",
        "-0 .wav",
        "-0 .webm",
    ],
}
