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

Commit 75226177 authored by Marco Nelissen's avatar Marco Nelissen
Browse files

Make extractors separate libraries

instead of being integrated into libstagefright

Test: thoroughly
Change-Id: I11cdfde6d2daf248c8e0f99237db1c74be260eb0
parent a098be2b
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