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

Commit 7c68829a authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 5558509 from 00ffd9e0 to qt-release

Change-Id: I629130da5c3f1e9a6c228307ff4292ce234ad776
parents b9a5be87 00ffd9e0
Loading
Loading
Loading
Loading
+24 −12
Original line number Diff line number Diff line
@@ -259,15 +259,27 @@ camera_status_t CameraDevice::isSessionConfigurationSupported(
    }
}

static void addMetadataToPhysicalCameraSettings(const CameraMetadata *metadata,
        const std::string &cameraId, PhysicalCameraSettings *physicalCameraSettings) {
    CameraMetadata metadataCopy = *metadata;
    camera_metadata_t *camera_metadata = metadataCopy.release();
    HCameraMetadata hCameraMetadata;
    utils::convertToHidl(camera_metadata, &hCameraMetadata, /*shouldOwn*/ true);
    physicalCameraSettings->settings.metadata(std::move(hCameraMetadata));
    physicalCameraSettings->id = cameraId;
}

void CameraDevice::addRequestSettingsMetadata(ACaptureRequest *aCaptureRequest,
        sp<CaptureRequest> &req) {
    CameraMetadata metadataCopy = aCaptureRequest->settings->getInternalData();
    const camera_metadata_t *camera_metadata = metadataCopy.getAndLock();
    HCameraMetadata hCameraMetadata;
    utils::convertToHidl(camera_metadata, &hCameraMetadata);
    metadataCopy.unlock(camera_metadata);
    req->mPhysicalCameraSettings.resize(1);
    req->mPhysicalCameraSettings[0].settings.metadata(std::move(hCameraMetadata));
    req->mPhysicalCameraSettings.resize(1 + aCaptureRequest->physicalSettings.size());
    addMetadataToPhysicalCameraSettings(&(aCaptureRequest->settings->getInternalData()), getId(),
                    &(req->mPhysicalCameraSettings[0]));
    size_t i = 1;
    for (auto &physicalSetting : aCaptureRequest->physicalSettings) {
        addMetadataToPhysicalCameraSettings(&(physicalSetting.second->getInternalData()),
                physicalSetting.first, &(req->mPhysicalCameraSettings[i]));
        i++;
    }
}

camera_status_t CameraDevice::updateOutputConfigurationLocked(ACaptureSessionOutput *output) {
@@ -398,10 +410,9 @@ void CameraDevice::allocateOneCaptureRequestMetadata(
    cameraSettings.id = id;
    // TODO: Do we really need to copy the metadata here ?
    CameraMetadata metadataCopy = metadata->getInternalData();
    const camera_metadata_t *cameraMetadata = metadataCopy.getAndLock();
    camera_metadata_t *cameraMetadata = metadataCopy.release();
    HCameraMetadata hCameraMetadata;
    utils::convertToHidl(cameraMetadata, &hCameraMetadata);
    metadataCopy.unlock(cameraMetadata);
    utils::convertToHidl(cameraMetadata, &hCameraMetadata, true);
    if (metadata != nullptr) {
        if (hCameraMetadata.data() != nullptr &&
            mCaptureRequestMetadataQueue != nullptr &&
@@ -426,11 +437,12 @@ CameraDevice::allocateACaptureRequest(sp<CaptureRequest>& req, const char* devic
        const std::string& id = req->mPhysicalCameraSettings[i].id;
        CameraMetadata clone;
        utils::convertFromHidlCloned(req->mPhysicalCameraSettings[i].settings.metadata(), &clone);
        camera_metadata_t *clonep = clone.release();
        if (id == deviceId) {
            pRequest->settings = new ACameraMetadata(clone.release(), ACameraMetadata::ACM_REQUEST);
            pRequest->settings = new ACameraMetadata(clonep, ACameraMetadata::ACM_REQUEST);
        } else {
            pRequest->physicalSettings[req->mPhysicalCameraSettings[i].id] =
                    new ACameraMetadata(clone.release(), ACameraMetadata::ACM_REQUEST);
                    new ACameraMetadata(clonep, ACameraMetadata::ACM_REQUEST);
        }
    }
    pRequest->targets = new ACameraOutputTargets();
+4 −3
Original line number Diff line number Diff line
@@ -64,13 +64,14 @@ bool convertFromHidlCloned(const HCameraMetadata &metadata, CameraMetadata *rawM
    return true;
}

// Note: existing data in dst will be gone. Caller still owns the memory of src
void convertToHidl(const camera_metadata_t *src, HCameraMetadata* dst) {
// Note: existing data in dst will be gone. dst owns memory if shouldOwn is set
//       to true.
void convertToHidl(const camera_metadata_t *src, HCameraMetadata* dst, bool shouldOwn) {
    if (src == nullptr) {
        return;
    }
    size_t size = get_camera_metadata_size(src);
    dst->setToExternal((uint8_t *) src, size);
    dst->setToExternal((uint8_t *) src, size, shouldOwn);
    return;
}

+2 −2
Original line number Diff line number Diff line
@@ -168,8 +168,8 @@ HRotation convertToHidl(int rotation);

bool convertFromHidlCloned(const HCameraMetadata &metadata, CameraMetadata *rawMetadata);

// Note: existing data in dst will be gone. Caller still owns the memory of src
void convertToHidl(const camera_metadata_t *src, HCameraMetadata* dst);
// Note: existing data in dst will be gone.
void convertToHidl(const camera_metadata_t *src, HCameraMetadata* dst, bool shouldOwn = false);

TemplateId convertToHidl(ACameraDevice_request_template templateId);

+0 −4
Original line number Diff line number Diff line
@@ -205,10 +205,6 @@ public:
    int32_t getDrcEffectType() const { return mDrcEffectType->value; }

private:
    std::shared_ptr<C2StreamBufferTypeSetting::input> mInputFormat;
    std::shared_ptr<C2StreamBufferTypeSetting::output> mOutputFormat;
    std::shared_ptr<C2PortMediaTypeSetting::input> mInputMediaType;
    std::shared_ptr<C2PortMediaTypeSetting::output> mOutputMediaType;
    std::shared_ptr<C2StreamSampleRateInfo::output> mSampleRate;
    std::shared_ptr<C2StreamChannelCountInfo::output> mChannelCount;
    std::shared_ptr<C2StreamBitrateInfo::input> mBitrate;
+21 −28
Original line number Diff line number Diff line
@@ -29,33 +29,32 @@

namespace android {

class C2SoftAacEnc::IntfImpl : public C2InterfaceHelper {
public:
    explicit IntfImpl(const std::shared_ptr<C2ReflectorHelper> &helper)
        : C2InterfaceHelper(helper) {

        setDerivedInstance(this);
namespace {

        addParameter(
                DefineParam(mInputFormat, C2_PARAMKEY_INPUT_STREAM_BUFFER_TYPE)
                .withConstValue(new C2StreamBufferTypeSetting::input(0u, C2BufferData::LINEAR))
                .build());
constexpr char COMPONENT_NAME[] = "c2.android.aac.encoder";

        addParameter(
                DefineParam(mOutputFormat, C2_PARAMKEY_OUTPUT_STREAM_BUFFER_TYPE)
                .withConstValue(new C2StreamBufferTypeSetting::output(0u, C2BufferData::LINEAR))
                .build());
}  // namespace

        addParameter(
                DefineParam(mInputMediaType, C2_PARAMKEY_INPUT_MEDIA_TYPE)
                .withConstValue(AllocSharedString<C2PortMediaTypeSetting::input>(
                        MEDIA_MIMETYPE_AUDIO_RAW))
                .build());
class C2SoftAacEnc::IntfImpl : public SimpleInterface<void>::BaseParams {
public:
    explicit IntfImpl(const std::shared_ptr<C2ReflectorHelper> &helper)
        : SimpleInterface<void>::BaseParams(
                helper,
                COMPONENT_NAME,
                C2Component::KIND_ENCODER,
                C2Component::DOMAIN_AUDIO,
                MEDIA_MIMETYPE_AUDIO_AAC) {
        noPrivateBuffers();
        noInputReferences();
        noOutputReferences();
        noInputLatency();
        noTimeStretch();
        setDerivedInstance(this);

        addParameter(
                DefineParam(mOutputMediaType, C2_PARAMKEY_OUTPUT_MEDIA_TYPE)
                .withConstValue(AllocSharedString<C2PortMediaTypeSetting::output>(
                        MEDIA_MIMETYPE_AUDIO_AAC))
                DefineParam(mAttrib, C2_PARAMKEY_COMPONENT_ATTRIBUTES)
                .withConstValue(new C2ComponentAttributesSetting(
                    C2Component::ATTRIB_IS_TEMPORAL))
                .build());

        addParameter(
@@ -125,10 +124,6 @@ public:
    }

private:
    std::shared_ptr<C2StreamBufferTypeSetting::input> mInputFormat;
    std::shared_ptr<C2StreamBufferTypeSetting::output> mOutputFormat;
    std::shared_ptr<C2PortMediaTypeSetting::input> mInputMediaType;
    std::shared_ptr<C2PortMediaTypeSetting::output> mOutputMediaType;
    std::shared_ptr<C2StreamSampleRateInfo::input> mSampleRate;
    std::shared_ptr<C2StreamChannelCountInfo::input> mChannelCount;
    std::shared_ptr<C2StreamBitrateInfo::output> mBitrate;
@@ -136,8 +131,6 @@ private:
    std::shared_ptr<C2StreamProfileLevelInfo::output> mProfileLevel;
};

constexpr char COMPONENT_NAME[] = "c2.android.aac.encoder";

C2SoftAacEnc::C2SoftAacEnc(
        const char *name,
        c2_node_id_t id,
Loading