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

Commit ffd104a9 authored by James Dong's avatar James Dong Committed by Android (Google) Code Review
Browse files

Merge "Remove dummy surface in CameraSource" into kraken

parents 3f5ed04f e292b3bc
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ namespace android {

class ICamera;
class IMemory;
class ISurface;
class Camera;

class CameraSource : public MediaSource {
@@ -38,8 +37,6 @@ public:

    virtual ~CameraSource();

    void setPreviewSurface(const sp<ISurface> &surface);

    virtual status_t start(MetaData *params = NULL);
    virtual status_t stop();

@@ -52,7 +49,6 @@ private:
    friend class CameraSourceListener;

    sp<Camera> mCamera;
    sp<ISurface> mPreviewSurface;

    Mutex mLock;
    Condition mFrameAvailableCondition;
+2 −2
Original line number Diff line number Diff line
@@ -585,13 +585,13 @@ status_t StagefrightRecorder::startMPEG4Recording() {
            return UNKNOWN_ERROR;
        }

        CHECK_EQ(OK, mCamera->setPreviewDisplay(mPreviewSurface));

        sp<CameraSource> cameraSource =
            CameraSource::CreateFromCamera(mCamera);

        CHECK(cameraSource != NULL);

        cameraSource->setPreviewSurface(mPreviewSurface);

        sp<MetaData> enc_meta = new MetaData;
        enc_meta->setInt32(kKeyBitRate, mVideoBitRate);
        enc_meta->setInt32(kKeySampleRate, mFrameRate);  // XXX: kKeySampleRate?
+1 −44
Original line number Diff line number Diff line
@@ -27,42 +27,10 @@
#include <media/stagefright/MetaData.h>
#include <camera/Camera.h>
#include <camera/CameraParameters.h>
#include <ui/GraphicBuffer.h>
#include <ui/Overlay.h>
#include <surfaceflinger/ISurface.h>
#include <utils/String8.h>

namespace android {

struct DummySurface : public BnSurface {
    DummySurface() {}

    virtual sp<GraphicBuffer> requestBuffer(int bufferIdx, int usage) {
        return NULL;
    }
    virtual status_t setBufferCount(int bufferCount) {
        return INVALID_OPERATION;
    }

    virtual status_t registerBuffers(const BufferHeap &buffers) {
        return OK;
    }

    virtual void postBuffer(ssize_t offset) {}
    virtual void unregisterBuffers() {}

    virtual sp<OverlayRef> createOverlay(
            uint32_t w, uint32_t h, int32_t format, int32_t orientation) {
        return NULL;
    }

protected:
    virtual ~DummySurface() {}

    DummySurface(const DummySurface &);
    DummySurface &operator=(const DummySurface &);
};

struct CameraSourceListener : public CameraListener {
    CameraSourceListener(const sp<CameraSource> &source);

@@ -150,23 +118,12 @@ CameraSource::~CameraSource() {
    }
}

void CameraSource::setPreviewSurface(const sp<ISurface> &surface) {
    mPreviewSurface = surface;
}

status_t CameraSource::start(MetaData *) {
    LOGV("start");
    CHECK(!mStarted);

    mCamera->setListener(new CameraSourceListener(this));

    status_t err =
        mCamera->setPreviewDisplay(
                mPreviewSurface != NULL ? mPreviewSurface : new DummySurface);
    CHECK_EQ(err, OK);

    err = mCamera->startRecording();
    CHECK_EQ(err, OK);
    CHECK_EQ(OK, mCamera->startRecording());

    mStarted = true;