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

Commit 76922d2f authored by James Dong's avatar James Dong Committed by Android Git Automerger
Browse files

am 79dfb675: am ffd104a9: Merge "Remove dummy surface in CameraSource" into kraken

parents 4952aef1 79dfb675
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -28,7 +28,6 @@ namespace android {


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


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


    virtual ~CameraSource();
    virtual ~CameraSource();


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

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


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


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


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


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

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


        CHECK(cameraSource != NULL);
        CHECK(cameraSource != NULL);


        cameraSource->setPreviewSurface(mPreviewSurface);

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


namespace android {
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 {
struct CameraSourceListener : public CameraListener {
    CameraSourceListener(const sp<CameraSource> &source);
    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 *) {
status_t CameraSource::start(MetaData *) {
    LOGV("start");
    LOGV("start");
    CHECK(!mStarted);
    CHECK(!mStarted);


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

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

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


    mStarted = true;
    mStarted = true;