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

Commit 700a4cdc authored by Eino-Ville Talvala's avatar Eino-Ville Talvala Committed by Android Git Automerger
Browse files

am 73bbd1f1: Camera2: Refactor preview/recording management to separate class.

* commit '73bbd1f1':
  Camera2: Refactor preview/recording management to separate class.
parents 52aafab9 73bbd1f1
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@ LOCAL_SRC_FILES:= \
    camera2/CameraMetadata.cpp \
    camera2/CameraMetadata.cpp \
    camera2/Parameters.cpp \
    camera2/Parameters.cpp \
    camera2/FrameProcessor.cpp \
    camera2/FrameProcessor.cpp \
    camera2/StreamingProcessor.cpp \
    camera2/JpegProcessor.cpp \
    camera2/JpegProcessor.cpp \
    camera2/CallbackProcessor.cpp \
    camera2/CallbackProcessor.cpp \
    camera2/ZslProcessor.cpp \
    camera2/ZslProcessor.cpp \
+74 −492

File changed.

Preview size limit exceeded, changes collapsed.

+4 −40
Original line number Original line Diff line number Diff line
@@ -21,17 +21,15 @@
#include "CameraService.h"
#include "CameraService.h"
#include "camera2/Parameters.h"
#include "camera2/Parameters.h"
#include "camera2/FrameProcessor.h"
#include "camera2/FrameProcessor.h"
#include "camera2/StreamingProcessor.h"
#include "camera2/JpegProcessor.h"
#include "camera2/JpegProcessor.h"
#include "camera2/ZslProcessor.h"
#include "camera2/ZslProcessor.h"
#include "camera2/CaptureSequencer.h"
#include "camera2/CaptureSequencer.h"
#include "camera2/CallbackProcessor.h"
#include "camera2/CallbackProcessor.h"
#include <binder/MemoryBase.h>
#include <binder/MemoryHeapBase.h>
#include <gui/CpuConsumer.h>
#include <gui/BufferItemConsumer.h>


namespace android {
namespace android {


class IMemory;
/**
/**
 * Implements the android.hardware.camera API on top of
 * Implements the android.hardware.camera API on top of
 * camera device HAL version 2.
 * camera device HAL version 2.
@@ -184,15 +182,10 @@ private:


    sp<camera2::FrameProcessor> mFrameProcessor;
    sp<camera2::FrameProcessor> mFrameProcessor;


    /* Preview related members */
    /* Preview/Recording related members */


    int mPreviewStreamId;
    CameraMetadata mPreviewRequest;
    sp<IBinder> mPreviewSurface;
    sp<IBinder> mPreviewSurface;
    sp<ANativeWindow> mPreviewWindow;
    sp<camera2::StreamingProcessor> mStreamingProcessor;

    status_t updatePreviewRequest(const Parameters &params);
    status_t updatePreviewStream(const Parameters &params);


    /** Preview callback related members */
    /** Preview callback related members */


@@ -204,35 +197,6 @@ private:
    sp<camera2::JpegProcessor> mJpegProcessor;
    sp<camera2::JpegProcessor> mJpegProcessor;
    sp<camera2::ZslProcessor> mZslProcessor;
    sp<camera2::ZslProcessor> mZslProcessor;


    /* Recording related members */

    int mRecordingStreamId;
    int mRecordingFrameCount;
    sp<BufferItemConsumer>    mRecordingConsumer;
    sp<ANativeWindow>  mRecordingWindow;
    // Simple listener that forwards frame available notifications from
    // a CPU consumer to the recording notification
    class RecordingWaiter: public BufferItemConsumer::FrameAvailableListener {
      public:
        RecordingWaiter(Camera2Client *parent) : mParent(parent) {}
        void onFrameAvailable() { mParent->onRecordingFrameAvailable(); }
      private:
        Camera2Client *mParent;
    };
    sp<RecordingWaiter>  mRecordingWaiter;
    CameraMetadata mRecordingRequest;
    sp<camera2::Camera2Heap> mRecordingHeap;

    static const size_t kDefaultRecordingHeapCount = 8;
    size_t mRecordingHeapCount;
    Vector<BufferItemConsumer::BufferItem> mRecordingBuffers;
    size_t mRecordingHeapHead, mRecordingHeapFree;
    // Handle new recording image buffers
    void onRecordingFrameAvailable();

    status_t updateRecordingRequest(const Parameters &params);
    status_t updateRecordingStream(const Parameters &params);

    /** Notification-related members */
    /** Notification-related members */


    bool mAfInMotion;
    bool mAfInMotion;
+2 −0
Original line number Original line Diff line number Diff line
@@ -20,6 +20,8 @@


#include <netinet/in.h>
#include <netinet/in.h>


#include <binder/MemoryBase.h>
#include <binder/MemoryHeapBase.h>
#include <utils/Log.h>
#include <utils/Log.h>
#include <utils/Trace.h>
#include <utils/Trace.h>


+1 −1
Original line number Original line Diff line number Diff line
@@ -25,11 +25,11 @@
#include <gui/CpuConsumer.h>
#include <gui/CpuConsumer.h>
#include "Parameters.h"
#include "Parameters.h"
#include "CameraMetadata.h"
#include "CameraMetadata.h"
#include "Camera2Heap.h"


namespace android {
namespace android {


class Camera2Client;
class Camera2Client;
class MemoryHeapBase;


namespace camera2 {
namespace camera2 {


Loading