Loading camera/aidl/android/hardware/camera2/ICameraDeviceUser.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -79,8 +79,9 @@ interface ICameraDeviceUser * <p> * @param operatingMode The kind of session to create; either NORMAL_MODE or * CONSTRAINED_HIGH_SPEED_MODE. Must be a non-negative value. * @param sessionParams Session wide camera parameters */ void endConfigure(int operatingMode); void endConfigure(int operatingMode, in CameraMetadataNative sessionParams); void deleteStream(int streamId); Loading camera/ndk/NdkCameraDevice.cpp +17 −1 Original line number Diff line number Diff line Loading @@ -220,5 +220,21 @@ camera_status_t ACameraDevice_createCaptureSession( __FUNCTION__, device, outputs, callbacks, session); return ACAMERA_ERROR_INVALID_PARAMETER; } return device->createCaptureSession(outputs, callbacks, session); return device->createCaptureSession(outputs, nullptr, callbacks, session); } EXPORT camera_status_t ACameraDevice_createCaptureSessionWithSessionParameters( ACameraDevice* device, const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session) { ATRACE_CALL(); if (device == nullptr || outputs == nullptr || callbacks == nullptr || session == nullptr) { ALOGE("%s: Error: invalid input: device %p, outputs %p, callbacks %p, session %p", __FUNCTION__, device, outputs, callbacks, session); return ACAMERA_ERROR_INVALID_PARAMETER; } return device->createCaptureSession(outputs, sessionParameters, callbacks, session); } camera/ndk/impl/ACameraDevice.cpp +10 −4 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ CameraDevice::createCaptureRequest( camera_status_t CameraDevice::createCaptureSession( const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session) { sp<ACameraCaptureSession> currentSession = mCurrentSession.promote(); Loading @@ -172,7 +173,7 @@ CameraDevice::createCaptureSession( } // Create new session ret = configureStreamsLocked(outputs); ret = configureStreamsLocked(outputs, sessionParameters); if (ret != ACAMERA_OK) { ALOGE("Fail to create new session. cannot configure streams"); return ret; Loading Loading @@ -460,7 +461,7 @@ CameraDevice::notifySessionEndOfLifeLocked(ACameraCaptureSession* session) { } // No new session, unconfigure now camera_status_t ret = configureStreamsLocked(nullptr); camera_status_t ret = configureStreamsLocked(nullptr, nullptr); if (ret != ACAMERA_OK) { ALOGE("Unconfigure stream failed. Device might still be configured! ret %d", ret); } Loading Loading @@ -618,7 +619,8 @@ CameraDevice::getSurfaceFromANativeWindow( } camera_status_t CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outputs) { CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters) { ACaptureSessionOutputContainer emptyOutput; if (outputs == nullptr) { outputs = &emptyOutput; Loading Loading @@ -714,7 +716,11 @@ CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outpu mConfiguredOutputs.insert(std::make_pair(streamId, outputPair)); } remoteRet = mRemote->endConfigure(/*isConstrainedHighSpeed*/ false); CameraMetadata params; if ((sessionParameters != nullptr) && (sessionParameters->settings != nullptr)) { params.append(sessionParameters->settings->getInternalData()); } remoteRet = mRemote->endConfigure(/*isConstrainedHighSpeed*/ false, params); if (remoteRet.serviceSpecificErrorCode() == hardware::ICameraService::ERROR_ILLEGAL_ARGUMENT) { ALOGE("Camera device %s cannnot support app output configuration: %s", getId(), remoteRet.toString8().string()); Loading camera/ndk/impl/ACameraDevice.h +5 −2 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ class CameraDevice final : public RefBase { camera_status_t createCaptureSession( const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session); Loading Loading @@ -139,7 +140,8 @@ class CameraDevice final : public RefBase { // For capture session to notify its end of life void notifySessionEndOfLifeLocked(ACameraCaptureSession* session); camera_status_t configureStreamsLocked(const ACaptureSessionOutputContainer* outputs); camera_status_t configureStreamsLocked(const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters); // Input message will be posted and cleared after this returns void postSessionMsgAndCleanup(sp<AMessage>& msg); Loading Loading @@ -309,9 +311,10 @@ struct ACameraDevice { camera_status_t createCaptureSession( const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session) { return mDevice->createCaptureSession(outputs, callbacks, session); return mDevice->createCaptureSession(outputs, sessionParameters, callbacks, session); } /*********************** Loading camera/ndk/impl/ACameraMetadata.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -235,7 +235,7 @@ ACameraMetadata::getTags(/*out*/int32_t* numTags, } const CameraMetadata& ACameraMetadata::getInternalData() { ACameraMetadata::getInternalData() const { return mData; } Loading Loading
camera/aidl/android/hardware/camera2/ICameraDeviceUser.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -79,8 +79,9 @@ interface ICameraDeviceUser * <p> * @param operatingMode The kind of session to create; either NORMAL_MODE or * CONSTRAINED_HIGH_SPEED_MODE. Must be a non-negative value. * @param sessionParams Session wide camera parameters */ void endConfigure(int operatingMode); void endConfigure(int operatingMode, in CameraMetadataNative sessionParams); void deleteStream(int streamId); Loading
camera/ndk/NdkCameraDevice.cpp +17 −1 Original line number Diff line number Diff line Loading @@ -220,5 +220,21 @@ camera_status_t ACameraDevice_createCaptureSession( __FUNCTION__, device, outputs, callbacks, session); return ACAMERA_ERROR_INVALID_PARAMETER; } return device->createCaptureSession(outputs, callbacks, session); return device->createCaptureSession(outputs, nullptr, callbacks, session); } EXPORT camera_status_t ACameraDevice_createCaptureSessionWithSessionParameters( ACameraDevice* device, const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session) { ATRACE_CALL(); if (device == nullptr || outputs == nullptr || callbacks == nullptr || session == nullptr) { ALOGE("%s: Error: invalid input: device %p, outputs %p, callbacks %p, session %p", __FUNCTION__, device, outputs, callbacks, session); return ACAMERA_ERROR_INVALID_PARAMETER; } return device->createCaptureSession(outputs, sessionParameters, callbacks, session); }
camera/ndk/impl/ACameraDevice.cpp +10 −4 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ CameraDevice::createCaptureRequest( camera_status_t CameraDevice::createCaptureSession( const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session) { sp<ACameraCaptureSession> currentSession = mCurrentSession.promote(); Loading @@ -172,7 +173,7 @@ CameraDevice::createCaptureSession( } // Create new session ret = configureStreamsLocked(outputs); ret = configureStreamsLocked(outputs, sessionParameters); if (ret != ACAMERA_OK) { ALOGE("Fail to create new session. cannot configure streams"); return ret; Loading Loading @@ -460,7 +461,7 @@ CameraDevice::notifySessionEndOfLifeLocked(ACameraCaptureSession* session) { } // No new session, unconfigure now camera_status_t ret = configureStreamsLocked(nullptr); camera_status_t ret = configureStreamsLocked(nullptr, nullptr); if (ret != ACAMERA_OK) { ALOGE("Unconfigure stream failed. Device might still be configured! ret %d", ret); } Loading Loading @@ -618,7 +619,8 @@ CameraDevice::getSurfaceFromANativeWindow( } camera_status_t CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outputs) { CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters) { ACaptureSessionOutputContainer emptyOutput; if (outputs == nullptr) { outputs = &emptyOutput; Loading Loading @@ -714,7 +716,11 @@ CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outpu mConfiguredOutputs.insert(std::make_pair(streamId, outputPair)); } remoteRet = mRemote->endConfigure(/*isConstrainedHighSpeed*/ false); CameraMetadata params; if ((sessionParameters != nullptr) && (sessionParameters->settings != nullptr)) { params.append(sessionParameters->settings->getInternalData()); } remoteRet = mRemote->endConfigure(/*isConstrainedHighSpeed*/ false, params); if (remoteRet.serviceSpecificErrorCode() == hardware::ICameraService::ERROR_ILLEGAL_ARGUMENT) { ALOGE("Camera device %s cannnot support app output configuration: %s", getId(), remoteRet.toString8().string()); Loading
camera/ndk/impl/ACameraDevice.h +5 −2 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ class CameraDevice final : public RefBase { camera_status_t createCaptureSession( const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session); Loading Loading @@ -139,7 +140,8 @@ class CameraDevice final : public RefBase { // For capture session to notify its end of life void notifySessionEndOfLifeLocked(ACameraCaptureSession* session); camera_status_t configureStreamsLocked(const ACaptureSessionOutputContainer* outputs); camera_status_t configureStreamsLocked(const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters); // Input message will be posted and cleared after this returns void postSessionMsgAndCleanup(sp<AMessage>& msg); Loading Loading @@ -309,9 +311,10 @@ struct ACameraDevice { camera_status_t createCaptureSession( const ACaptureSessionOutputContainer* outputs, const ACaptureRequest* sessionParameters, const ACameraCaptureSession_stateCallbacks* callbacks, /*out*/ACameraCaptureSession** session) { return mDevice->createCaptureSession(outputs, callbacks, session); return mDevice->createCaptureSession(outputs, sessionParameters, callbacks, session); } /*********************** Loading
camera/ndk/impl/ACameraMetadata.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -235,7 +235,7 @@ ACameraMetadata::getTags(/*out*/int32_t* numTags, } const CameraMetadata& ACameraMetadata::getInternalData() { ACameraMetadata::getInternalData() const { return mData; } Loading