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

Commit 661e6990 authored by Dongwon Kang's avatar Dongwon Kang
Browse files

Remove libmediametrics dependency from libmediaextractor

- Removes media metrics related methods in the extractor plugin.
- Puts metrics related code in one place, RemoteMediaExtractor.

Test: build & pass android.media.cts.MediaExtractorTest
Bug: 67908556
Change-Id: I5e06e6b6b5c047a3c68d90479e55f1df9061da45
parent bf4637b5
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -5375,11 +5375,6 @@ MPEG4Extractor::Track *MPEG4Extractor::findTrackByMimePrefix(
    return NULL;
}

void MPEG4Extractor::populateMetrics() {
    ALOGV("MPEG4Extractor::populateMetrics");
    // write into mAnalyticsItem
}

static bool LegacySniffMPEG4(
        const sp<DataSource> &source, String8 *mimeType, float *confidence) {
    uint8_t header[8];
+0 −2
Original line number Diff line number Diff line
@@ -69,8 +69,6 @@ public:
protected:
    virtual ~MPEG4Extractor();

    virtual void populateMetrics();

private:

    struct PsshInfo {
+1 −1
Original line number Diff line number Diff line
cc_library_shared {
    name: "libmediaextractor",

    include_dirs: [
        "frameworks/av/include",
        "frameworks/av/media/libmediaextractor/include",
@@ -14,7 +15,6 @@ cc_library_shared {
    ],

    shared_libs: [
        "libmediametrics",
        "libstagefright_foundation",
        "libutils",
        "libcutils",
+1 −43
Original line number Diff line number Diff line
@@ -19,68 +19,26 @@
#include <utils/Log.h>
#include <pwd.h>

#include <media/MediaAnalyticsItem.h>
#include <media/MediaExtractor.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/MetaData.h>

namespace android {

// key for media statistics
static const char *kKeyExtractor = "extractor";

MediaExtractor::MediaExtractor() {
    if (!LOG_NDEBUG) {
        uid_t uid = getuid();
        struct passwd *pw = getpwuid(uid);
        ALOGV("extractor created in uid: %d (%s)", getuid(), pw->pw_name);
    }

    mAnalyticsItem = NULL;
    if (MEDIA_LOG) {
        mAnalyticsItem = new MediaAnalyticsItem(kKeyExtractor);
        (void) mAnalyticsItem->generateSessionID();
    }
}

MediaExtractor::~MediaExtractor() {

    // log the current record, provided it has some information worth recording
    if (MEDIA_LOG) {
        if (mAnalyticsItem != NULL) {
            if (mAnalyticsItem->count() > 0) {
                mAnalyticsItem->setFinalized(true);
                mAnalyticsItem->selfrecord();
            }
        }
    }
    if (mAnalyticsItem != NULL) {
        delete mAnalyticsItem;
        mAnalyticsItem = NULL;
    }
}
MediaExtractor::~MediaExtractor() {}

sp<MetaData> MediaExtractor::getMetaData() {
    return new MetaData;
}

status_t MediaExtractor::getMetrics(Parcel *reply) {

    if (mAnalyticsItem == NULL || reply == NULL) {
        return UNKNOWN_ERROR;
    }

    populateMetrics();
    mAnalyticsItem->writeToParcel(reply);

    return OK;
}

void MediaExtractor::populateMetrics() {
    ALOGV("MediaExtractor::populateMetrics");
    // normally overridden in subclasses
}

uint32_t MediaExtractor::flags() const {
    return CAN_SEEK_BACKWARD | CAN_SEEK_FORWARD | CAN_PAUSE | CAN_SEEK;
}
+0 −11
Original line number Diff line number Diff line
@@ -24,14 +24,10 @@
#include <utils/Errors.h>
#include <utils/RefBase.h>

// still doing some on/off toggling here.
#define MEDIA_LOG       1

namespace android {

class DataSource;
class IMediaSource;
class MediaAnalyticsItem;
class MediaExtractorFactory;
class MetaData;
class Parcel;
@@ -55,8 +51,6 @@ public:
    // returns an empty metadata object.
    virtual sp<MetaData> getMetaData();

    status_t getMetrics(Parcel *reply);

    enum Flags {
        CAN_SEEK_BACKWARD  = 1,  // the "seek 10secs back button"
        CAN_SEEK_FORWARD   = 2,  // the "seek 10secs forward button"
@@ -123,14 +117,9 @@ protected:
    MediaExtractor();
    virtual ~MediaExtractor();

    MediaAnalyticsItem *mAnalyticsItem;

    virtual void populateMetrics();

private:
    MediaExtractor(const MediaExtractor &);
    MediaExtractor &operator=(const MediaExtractor &);
    friend class MediaExtractorFactory;
};

// purposely not defined anywhere so that this will fail to link if
Loading