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

Commit 28567def authored by Eino-Ville Talvala's avatar Eino-Ville Talvala Committed by Android (Google) Code Review
Browse files

Merge "Camera2: Use more buffers for video encoding."

parents 82f517ba 803cbf61
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -769,7 +769,7 @@ void Camera2Client::releaseRecordingFrame(const sp<IMemory>& mem) {
    }
    buffer_handle_t imgBuffer = *(buffer_handle_t*)(data + 4);
    ALOGV("%s: Camera %d: Freeing buffer_handle_t %p", __FUNCTION__, mCameraId,
            imgBuffer, *(uint32_t*)(data + 4));
            imgBuffer);
    res = mRecordingConsumer->freeBuffer(imgBuffer);
    if (res != OK) {
        ALOGE("%s: Camera %d: Unable to free recording frame (buffer_handle_t: %p):"
@@ -1623,7 +1623,7 @@ void Camera2Client::onRecordingFrameAvailable() {
        memcpy(data, &type, 4);
        memcpy(data + 4, &imgBuffer, sizeof(buffer_handle_t));
        ALOGV("%s: Camera %d: Sending out buffer_handle_t %p",
                __FUNCTION__, mCameraId, imgBuffer, *(uint32_t*)(data + 4));
                __FUNCTION__, mCameraId, imgBuffer);
        currentClient = mCameraClient;
    }
    // Call outside mICameraLock to allow re-entrancy from notification
@@ -2615,7 +2615,7 @@ status_t Camera2Client::updateRecordingStream() {

    if (mRecordingConsumer == 0) {
        // Create CPU buffer queue endpoint
        mRecordingConsumer = new MediaConsumer(4);
        mRecordingConsumer = new MediaConsumer(kRecordingHeapCount);
        mRecordingConsumer->setFrameAvailableListener(new RecordingWaiter(this));
        mRecordingConsumer->setName(String8("Camera2Client::RecordingConsumer"));
        mRecordingWindow = new SurfaceTextureClient(
+3 −2
Original line number Diff line number Diff line
@@ -238,8 +238,9 @@ private:
    sp<Camera2Heap> mRecordingHeap;

    // TODO: This needs to be queried from somewhere, or the BufferQueue needs
    // to be passed all the way to stagefright
    static const size_t kRecordingHeapCount = 4;
    // to be passed all the way to stagefright. Right now, set to a large number
    // to avoid starvation of the video encoders.
    static const size_t kRecordingHeapCount = 8;
    size_t mRecordingHeapHead, mRecordingHeapFree;
    // Handle new recording image buffers
    void onRecordingFrameAvailable();