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

Commit 1b088955 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6492800 from 09869a1c to rvc-release

Change-Id: I4ef8012ec7b781bee563359b0bfc4a2e7ae93ae6
parents 6424a264 09869a1c
Loading
Loading
Loading
Loading
+4 −22
Original line number Diff line number Diff line
@@ -17,9 +17,7 @@
// #define LOG_NDEBUG 0

#define LOG_TAG "Camera2-Metadata"
#define ATRACE_TAG ATRACE_TAG_CAMERA
#include <utils/Log.h>
#include <utils/Trace.h>
#include <utils/Errors.h>

#include <binder/Parcel.h>
@@ -40,13 +38,11 @@ CameraMetadata::CameraMetadata() :
CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) :
        mLocked(false)
{
    ATRACE_CALL();
    mBuffer = allocate_camera_metadata(entryCapacity, dataCapacity);
}

CameraMetadata::CameraMetadata(const CameraMetadata &other) :
        mLocked(false) {
    ATRACE_CALL();
    mBuffer = clone_camera_metadata(other.mBuffer);
}

@@ -117,7 +113,6 @@ camera_metadata_t* CameraMetadata::release() {
}

void CameraMetadata::clear() {
    ATRACE_CALL();
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return;
@@ -129,7 +124,6 @@ void CameraMetadata::clear() {
}

void CameraMetadata::acquire(camera_metadata_t *buffer) {
    ATRACE_CALL();
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return;
@@ -143,7 +137,6 @@ void CameraMetadata::acquire(camera_metadata_t *buffer) {
}

void CameraMetadata::acquire(CameraMetadata &other) {
    ATRACE_CALL();
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return;
@@ -152,12 +145,10 @@ void CameraMetadata::acquire(CameraMetadata &other) {
}

status_t CameraMetadata::append(const CameraMetadata &other) {
    ATRACE_CALL();
    return append(other.mBuffer);
}

status_t CameraMetadata::append(const camera_metadata_t* other) {
    ATRACE_CALL();
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return INVALID_OPERATION;
@@ -179,7 +170,6 @@ bool CameraMetadata::isEmpty() const {
}

status_t CameraMetadata::sort() {
    ATRACE_CALL();
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
        return INVALID_OPERATION;
@@ -310,7 +300,6 @@ status_t CameraMetadata::update(const camera_metadata_ro_entry &entry) {

status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
        size_t data_count) {
    ATRACE_CALL();
    status_t res;
    if (mLocked) {
        ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
@@ -368,13 +357,11 @@ status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
}

bool CameraMetadata::exists(uint32_t tag) const {
    ATRACE_CALL();
    camera_metadata_ro_entry entry;
    return find_camera_metadata_ro_entry(mBuffer, tag, &entry) == 0;
}

camera_metadata_entry_t CameraMetadata::find(uint32_t tag) {
    ATRACE_CALL();
    status_t res;
    camera_metadata_entry entry;
    if (mLocked) {
@@ -391,7 +378,6 @@ camera_metadata_entry_t CameraMetadata::find(uint32_t tag) {
}

camera_metadata_ro_entry_t CameraMetadata::find(uint32_t tag) const {
    ATRACE_CALL();
    status_t res;
    camera_metadata_ro_entry entry;
    res = find_camera_metadata_ro_entry(mBuffer, tag, &entry);
@@ -403,7 +389,6 @@ camera_metadata_ro_entry_t CameraMetadata::find(uint32_t tag) const {
}

status_t CameraMetadata::erase(uint32_t tag) {
    ATRACE_CALL();
    camera_metadata_entry_t entry;
    status_t res;
    if (mLocked) {
@@ -434,7 +419,6 @@ status_t CameraMetadata::erase(uint32_t tag) {

status_t CameraMetadata::removePermissionEntries(metadata_vendor_id_t vendorId,
        std::vector<int32_t> *tagsRemoved) {
    ATRACE_CALL();
    uint32_t tagCount = 0;
    std::vector<uint32_t> tagsToRemove;

@@ -511,7 +495,6 @@ void CameraMetadata::dump(int fd, int verbosity, int indentation) const {
}

status_t CameraMetadata::resizeIfNeeded(size_t extraEntries, size_t extraData) {
    ATRACE_CALL();
    if (mBuffer == NULL) {
        mBuffer = allocate_camera_metadata(extraEntries * 2, extraData * 2);
        if (mBuffer == NULL) {
@@ -551,7 +534,7 @@ status_t CameraMetadata::resizeIfNeeded(size_t extraEntries, size_t extraData) {

status_t CameraMetadata::readFromParcel(const Parcel& data,
                                        camera_metadata_t** out) {
    ATRACE_CALL();

    status_t err = OK;

    camera_metadata_t* metadata = NULL;
@@ -642,7 +625,6 @@ status_t CameraMetadata::readFromParcel(const Parcel& data,

status_t CameraMetadata::writeToParcel(Parcel& data,
                                       const camera_metadata_t* metadata) {
    ATRACE_CALL();
    status_t res = OK;

    /**
@@ -737,7 +719,7 @@ status_t CameraMetadata::writeToParcel(Parcel& data,
}

status_t CameraMetadata::readFromParcel(const Parcel *parcel) {
    ATRACE_CALL();

    ALOGV("%s: parcel = %p", __FUNCTION__, parcel);

    status_t res = OK;
@@ -769,7 +751,7 @@ status_t CameraMetadata::readFromParcel(const Parcel *parcel) {
}

status_t CameraMetadata::writeToParcel(Parcel *parcel) const {
    ATRACE_CALL();

    ALOGV("%s: parcel = %p", __FUNCTION__, parcel);

    if (parcel == NULL) {
@@ -798,7 +780,7 @@ void CameraMetadata::swap(CameraMetadata& other) {

status_t CameraMetadata::getTagFromName(const char *name,
        const VendorTagDescriptor* vTags, uint32_t *tag) {
    ATRACE_CALL();

    if (name == nullptr || tag == nullptr) return BAD_VALUE;

    size_t nameLength = strlen(name);
+10 −6
Original line number Diff line number Diff line
@@ -405,7 +405,7 @@ status_t AudioRecord::start(AudioSystem::sync_event_t event, audio_session_t tri
                    ? AMEDIAMETRICS_PROP_CALLERNAME_VALUE_UNKNOWN
                    : mCallerName.c_str())
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_START)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mActive))
            .set(AMEDIAMETRICS_PROP_STATUS, (int32_t)status)
            .record(); });
@@ -481,7 +481,7 @@ void AudioRecord::stop()
    mediametrics::Defer defer([&] {
        mediametrics::LogItem(mMetricsId)
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_STOP)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mActive))
            .record(); });

@@ -742,6 +742,8 @@ status_t AudioRecord::createRecord_l(const Modulo<uint32_t> &epoch, const String
    void *iMemPointer;
    audio_track_cblk_t* cblk;
    status_t status;
    std::string flagsAsString;
    std::string originalFlagsAsString;

    if (audioFlinger == 0) {
        ALOGE("%s(%d): Could not get audioflinger", __func__, mPortId);
@@ -920,13 +922,15 @@ status_t AudioRecord::createRecord_l(const Modulo<uint32_t> &epoch, const String
    mDeathNotifier = new DeathNotifier(this);
    IInterface::asBinder(mAudioRecord)->linkToDeath(mDeathNotifier, this);

    InputFlagConverter::toString(mFlags, flagsAsString);
    InputFlagConverter::toString(mOrigFlags, originalFlagsAsString);
    mMetricsId = std::string(AMEDIAMETRICS_KEY_PREFIX_AUDIO_RECORD) + std::to_string(mPortId);
    mediametrics::LogItem(mMetricsId)
        .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_CREATE)
        .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
        .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
        // the following are immutable (at least until restore)
        .set(AMEDIAMETRICS_PROP_FLAGS, (int32_t)mFlags)
        .set(AMEDIAMETRICS_PROP_ORIGINALFLAGS, (int32_t)mOrigFlags)
        .set(AMEDIAMETRICS_PROP_FLAGS, flagsAsString.c_str())
        .set(AMEDIAMETRICS_PROP_ORIGINALFLAGS, originalFlagsAsString.c_str())
        .set(AMEDIAMETRICS_PROP_SESSIONID, (int32_t)mSessionId)
        .set(AMEDIAMETRICS_PROP_TRACKID, mPortId)
        .set(AMEDIAMETRICS_PROP_SOURCE, toString(mAttributes.source).c_str())
@@ -1387,7 +1391,7 @@ status_t AudioRecord::restoreRecord_l(const char *from)
    mediametrics::Defer defer([&] {
        mediametrics::LogItem(mMetricsId)
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_RESTORE)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mActive))
            .set(AMEDIAMETRICS_PROP_STATUS, (int32_t)result)
            .set(AMEDIAMETRICS_PROP_WHERE, from)
+12 −8
Original line number Diff line number Diff line
@@ -650,7 +650,7 @@ status_t AudioTrack::start()
                    ? AMEDIAMETRICS_PROP_CALLERNAME_VALUE_UNKNOWN
                    : mCallerName.c_str())
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_START)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mState))
            .set(AMEDIAMETRICS_PROP_STATUS, (int32_t)status)
            .record(); });
@@ -783,7 +783,7 @@ void AudioTrack::stop()
    mediametrics::Defer defer([&]() {
        mediametrics::LogItem(mMetricsId)
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_STOP)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mState))
            .record();
        logBufferSizeUnderruns();
@@ -845,7 +845,7 @@ void AudioTrack::flush()
    mediametrics::Defer defer([&]() {
        mediametrics::LogItem(mMetricsId)
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_FLUSH)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mState))
            .record(); });

@@ -886,7 +886,7 @@ void AudioTrack::pause()
    mediametrics::Defer defer([&]() {
        mediametrics::LogItem(mMetricsId)
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_PAUSE)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mState))
            .record(); });

@@ -1715,15 +1715,19 @@ status_t AudioTrack::createTrack_l()
    // The creation of the audio track by AudioFlinger (in the code above)
    // is the first log of the AudioTrack and must be present before
    // any AudioTrack client logs will be accepted.

    std::string flagsAsString;
    OutputFlagConverter::toString(mFlags, flagsAsString);
    std::string originalFlagsAsString;
    OutputFlagConverter::toString(mOrigFlags, originalFlagsAsString);
    mMetricsId = std::string(AMEDIAMETRICS_KEY_PREFIX_AUDIO_TRACK) + std::to_string(mPortId);
    mediametrics::LogItem(mMetricsId)
        .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_CREATE)
        // the following are immutable
        .set(AMEDIAMETRICS_PROP_FLAGS, (int32_t)mFlags)
        .set(AMEDIAMETRICS_PROP_ORIGINALFLAGS, (int32_t)mOrigFlags)
        .set(AMEDIAMETRICS_PROP_FLAGS, flagsAsString.c_str())
        .set(AMEDIAMETRICS_PROP_ORIGINALFLAGS, originalFlagsAsString.c_str())
        .set(AMEDIAMETRICS_PROP_SESSIONID, (int32_t)mSessionId)
        .set(AMEDIAMETRICS_PROP_TRACKID, mPortId) // dup from key
        .set(AMEDIAMETRICS_PROP_STREAMTYPE, toString(mStreamType).c_str())
        .set(AMEDIAMETRICS_PROP_CONTENTTYPE, toString(mAttributes.content_type).c_str())
        .set(AMEDIAMETRICS_PROP_USAGE, toString(mAttributes.usage).c_str())
        .set(AMEDIAMETRICS_PROP_THREADID, (int32_t)output.outputId)
@@ -2440,7 +2444,7 @@ status_t AudioTrack::restoreTrack_l(const char *from)
    mediametrics::Defer defer([&] {
        mediametrics::LogItem(mMetricsId)
            .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_RESTORE)
            .set(AMEDIAMETRICS_PROP_DURATIONNS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs))
            .set(AMEDIAMETRICS_PROP_STATE, stateToString(mState))
            .set(AMEDIAMETRICS_PROP_STATUS, (int32_t)result)
            .set(AMEDIAMETRICS_PROP_WHERE, from)
+4 −0
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@
// They must be appended with another value to make a key.
#define AMEDIAMETRICS_KEY_PREFIX_AUDIO "audio."

// Device related key prefix.
#define AMEDIAMETRICS_KEY_PREFIX_AUDIO_DEVICE  AMEDIAMETRICS_KEY_PREFIX_AUDIO "device."

// The AudioMmap key appends the "trackId" to the prefix.
// This is the AudioFlinger equivalent of the AAudio Stream.
// TODO: unify with AMEDIAMETRICS_KEY_PREFIX_AUDIO_STREAM
@@ -113,6 +116,7 @@
#define AMEDIAMETRICS_PROP_DURATIONNS     "durationNs"     // int64 duration time span
#define AMEDIAMETRICS_PROP_ENCODING       "encoding"       // string value of format
#define AMEDIAMETRICS_PROP_EVENT          "event#"         // string value (often func name)
#define AMEDIAMETRICS_PROP_EXECUTIONTIMENS "executionTimeNs"  // time to execute the event

// TODO: fix inconsistency in flags: AudioRecord / AudioTrack int32,  AudioThread string
#define AMEDIAMETRICS_PROP_FLAGS          "flags"
+1 −1
Original line number Diff line number Diff line
@@ -2812,7 +2812,7 @@ bool AudioFlinger::EffectChain::EffectCallback::isOffloadOrMmap() const {
    if (t == nullptr) {
        return false;
    }
    return t->type() == ThreadBase::OFFLOAD || t->type() == ThreadBase::MMAP;
    return t->isOffloadOrMmap();
}

uint32_t AudioFlinger::EffectChain::EffectCallback::sampleRate() const {
Loading