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

Commit 06218d2c authored by Luca Stefani's avatar Luca Stefani
Browse files

Merge remote-tracking branch 'aosp/pie-gsi' into HEAD

* aosp/pie-gsi:
  Camera: consider all cameras in flash light control
  Camera3: Handle stream format override for shared output stream
  audio policy: fix getOutputFromId and getInputFromId
  Camera: extend getBuffer wait timeout

Change-Id: I39384e55edb3f353209f90fbb141cda81e2ff4c0
parents 0ba27056 b08e6cd3
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -313,14 +313,13 @@ bool AudioInputCollection::isSourceActive(audio_source_t source) const

sp<AudioInputDescriptor> AudioInputCollection::getInputFromId(audio_port_handle_t id) const
{
    sp<AudioInputDescriptor> inputDesc = NULL;
    for (size_t i = 0; i < size(); i++) {
        inputDesc = valueAt(i);
        if (inputDesc->getId() == id) {
            break;
        const sp<AudioInputDescriptor> inputDescriptor = valueAt(i);
        if (inputDescriptor->getId() == id) {
            return inputDescriptor;
        }
    }
    return inputDesc;
    return NULL;
}

uint32_t AudioInputCollection::activeInputsCountOnDevices(audio_devices_t devices) const
+3 −4
Original line number Diff line number Diff line
@@ -681,14 +681,13 @@ sp<SwAudioOutputDescriptor> SwAudioOutputCollection::getPrimaryOutput() const

sp<SwAudioOutputDescriptor> SwAudioOutputCollection::getOutputFromId(audio_port_handle_t id) const
{
    sp<SwAudioOutputDescriptor> outputDesc = NULL;
    for (size_t i = 0; i < size(); i++) {
        outputDesc = valueAt(i);
        const sp<SwAudioOutputDescriptor> outputDesc = valueAt(i);
        if (outputDesc->getId() == id) {
            break;
            return outputDesc;
        }
    }
    return outputDesc;
    return NULL;
}

bool SwAudioOutputCollection::isAnyOutputActive(audio_stream_type_t streamToIgnore) const
+3 −3
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@ status_t CameraFlashlight::findFlashUnits() {
    status_t res;

    std::vector<String8> cameraIds;
    std::vector<std::string> ids = mProviderManager->getAPI1CompatibleCameraDeviceIds();
    std::vector<std::string> ids = mProviderManager->getCameraDeviceIds();
    int numberOfCameras = static_cast<int>(ids.size());
    cameraIds.resize(numberOfCameras);
    // No module, must be provider
@@ -217,7 +217,7 @@ status_t CameraFlashlight::prepareDeviceOpen(const String8& cameraId) {

        if (mOpenedCameraIds.size() == 0) {
            // notify torch unavailable for all cameras with a flash
            std::vector<std::string> ids = mProviderManager->getAPI1CompatibleCameraDeviceIds();
            std::vector<std::string> ids = mProviderManager->getCameraDeviceIds();
            int numCameras = static_cast<int>(ids.size());
            for (int i = 0; i < numCameras; i++) {
                String8 id8(ids[i].c_str());
@@ -263,7 +263,7 @@ status_t CameraFlashlight::deviceClosed(const String8& cameraId) {

    if (isBackwardCompatibleMode(cameraId)) {
        // notify torch available for all cameras with a flash
        std::vector<std::string> ids = mProviderManager->getAPI1CompatibleCameraDeviceIds();
        std::vector<std::string> ids = mProviderManager->getCameraDeviceIds();
        int numCameras = static_cast<int>(ids.size());
        for (int i = 0; i < numCameras; i++) {
            String8 id8(ids[i].c_str());
+10 −7
Original line number Diff line number Diff line
@@ -4825,6 +4825,15 @@ status_t Camera3Device::RequestThread::prepareHalRequests() {
                captureRequest->mOutputStreams.size());
        halRequest->output_buffers = outputBuffers->array();
        std::set<String8> requestedPhysicalCameras;

        sp<Camera3Device> parent = mParent.promote();
        if (parent == NULL) {
            // Should not happen, and nowhere to send errors to, so just log it
            CLOGE("RequestThread: Parent is gone");
            return INVALID_OPERATION;
        }
        nsecs_t waitDuration = kBaseGetBufferWait + parent->getExpectedInFlightDuration();

        for (size_t j = 0; j < captureRequest->mOutputStreams.size(); j++) {
            sp<Camera3OutputStreamInterface> outputStream = captureRequest->mOutputStreams.editItemAt(j);

@@ -4845,6 +4854,7 @@ status_t Camera3Device::RequestThread::prepareHalRequests() {
            }

            res = outputStream->getBuffer(&outputBuffers->editItemAt(j),
                    waitDuration,
                    captureRequest->mOutputSurfaces[j]);
            if (res != OK) {
                // Can't get output buffer from gralloc queue - this could be due to
@@ -4871,13 +4881,6 @@ status_t Camera3Device::RequestThread::prepareHalRequests() {
        totalNumBuffers += halRequest->num_output_buffers;

        // Log request in the in-flight queue
        sp<Camera3Device> parent = mParent.promote();
        if (parent == NULL) {
            // Should not happen, and nowhere to send errors to, so just log it
            CLOGE("RequestThread: Parent is gone");
            return INVALID_OPERATION;
        }

        // If this request list is for constrained high speed recording (not
        // preview), and the current request is not the last one in the batch,
        // do not send callback to the app.
+1 −0
Original line number Diff line number Diff line
@@ -220,6 +220,7 @@ class Camera3Device :
    static const size_t        kInFlightWarnLimitHighSpeed = 256; // batch size 32 * pipe depth 8
    static const nsecs_t       kDefaultExpectedDuration = 100000000; // 100 ms
    static const nsecs_t       kMinInflightDuration = 5000000000; // 5 s
    static const nsecs_t       kBaseGetBufferWait = 3000000000; // 3 sec.
    // SCHED_FIFO priority for request submission thread in HFR mode
    static const int           kRequestThreadPriority = 1;

Loading