Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03517391 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Make extractors separate libraries"

parents 06702248 75226177
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
subdirs = [
    "*",
]
+31 −14
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
#define LOG_TAG "AACExtractor"
#include <utils/Log.h>

#include "include/AACExtractor.h"
#include "AACExtractor.h"
#include "include/avc_utils.h"

#include <media/stagefright/foundation/ABuffer.h>
@@ -140,14 +140,9 @@ AACExtractor::AACExtractor(
    sp<AMessage> meta = _meta;

    if (meta == NULL) {
        String8 mimeType;
        float confidence;
        sp<AMessage> _meta;

        if (!SniffAAC(mDataSource, &mimeType, &confidence, &meta)) {
        ALOGE("no metadata specified");
        return;
    }
    }

    int64_t offset;
    CHECK(meta->findInt64("offset", &offset));
@@ -333,7 +328,13 @@ status_t AACSource::read(

////////////////////////////////////////////////////////////////////////////////

bool SniffAAC(
static MediaExtractor* CreateExtractor(
        const sp<DataSource> &source,
        const sp<AMessage>& meta) {
    return new AACExtractor(source, meta);
}

static MediaExtractor::CreatorFunc Sniff(
        const sp<DataSource> &source, String8 *mimeType, float *confidence,
        sp<AMessage> *meta) {
    off64_t pos = 0;
@@ -342,7 +343,7 @@ bool SniffAAC(
        uint8_t id3header[10];
        if (source->readAt(pos, id3header, sizeof(id3header))
                < (ssize_t)sizeof(id3header)) {
            return false;
            return NULL;
        }

        if (memcmp("ID3", id3header, 3)) {
@@ -368,7 +369,7 @@ bool SniffAAC(
    uint8_t header[2];

    if (source->readAt(pos, &header, 2) != 2) {
        return false;
        return NULL;
    }

    // ADTS syncword
@@ -379,10 +380,26 @@ bool SniffAAC(
        *meta = new AMessage;
        (*meta)->setInt64("offset", pos);

        return true;
        return CreateExtractor;
    }

    return false;
    return NULL;
}


extern "C" {
// This is the only symbol that needs to be exported
__attribute__ ((visibility ("default")))
MediaExtractor::ExtractorDef GETEXTRACTORDEF() {
    return {
        MediaExtractor::EXTRACTORDEF_VERSION,
        UUID("4fd80eae-03d2-4d72-9eb9-48fa6bb54613"),
        1, // version
        "AAC Extractor",
        Sniff
    };
}

} // extern "C"

} // namespace android
+39 −0
Original line number Diff line number Diff line
cc_library_shared {

    srcs: ["AACExtractor.cpp"],

    include_dirs: [
        "frameworks/av/media/libstagefright/",
    ],

    shared_libs: [
        "libstagefright",
        "libmedia",
        "libstagefright_foundation",
        "libutils",
        "liblog",
    ],

    name: "libaacextractor",
    relative_install_path: "extractors",

    compile_multilib: "first",

    cflags: [
        "-Werror",
        "-Wall",
        "-fvisibility=hidden",
    ],

    sanitize: {
        cfi: true,
        misc_undefined: [
            "unsigned-integer-overflow",
            "signed-integer-overflow",
        ],
        diag: {
            cfi: true,
        },
    },

}
Loading