Loading camera/ndk/ndk_vendor/impl/ACameraDevice.cpp +24 −12 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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 && Loading @@ -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(); Loading camera/ndk/ndk_vendor/impl/utils.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -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; } Loading camera/ndk/ndk_vendor/impl/utils.h +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading media/codec2/components/aac/C2SoftAacDec.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -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; Loading media/codec2/components/aac/C2SoftAacEnc.cpp +21 −28 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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; Loading @@ -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 Loading
camera/ndk/ndk_vendor/impl/ACameraDevice.cpp +24 −12 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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 && Loading @@ -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(); Loading
camera/ndk/ndk_vendor/impl/utils.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -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; } Loading
camera/ndk/ndk_vendor/impl/utils.h +2 −2 Original line number Diff line number Diff line Loading @@ -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); Loading
media/codec2/components/aac/C2SoftAacDec.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -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; Loading
media/codec2/components/aac/C2SoftAacEnc.cpp +21 −28 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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; Loading @@ -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