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

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

Merge "Initial checkin for pause and resume control" into kraken

parents 9f8cc518 08c7473c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ struct AMRWriter : public MediaWriter {
    virtual bool reachedEOS();
    virtual status_t start();
    virtual void stop();
    virtual void pause();

protected:
    virtual ~AMRWriter();
@@ -46,6 +47,8 @@ private:
    status_t mInitCheck;
    sp<MediaSource> mSource;
    bool mStarted;
    volatile bool mPaused;
    volatile bool mResumed;
    volatile bool mDone;
    volatile bool mReachedEOS;
    pthread_t mThread;
+4 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ public:
    virtual status_t start();
    virtual bool reachedEOS();
    virtual void stop();
    virtual void pause();

    void beginBox(const char *fourcc);
    void writeInt8(int8_t x);
@@ -59,6 +60,8 @@ private:
    class Track;

    FILE *mFile;
    bool mPaused;
    bool mStarted;
    off_t mOffset;
    off_t mMdatOffset;
    uint8_t *mMoovBoxBuffer;
@@ -77,6 +80,7 @@ private:

    void setStartTimestamp(int64_t timeUs);
    int64_t getStartTimestamp();  // Not const
    status_t startTracks();

    void lock();
    void unlock();
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ struct MediaWriter : public RefBase {
    virtual bool reachedEOS() = 0;
    virtual status_t start() = 0;
    virtual void stop() = 0;
    virtual void pause() = 0;
    virtual void setMaxFileSize(int64_t bytes) { mMaxFileSizeLimitBytes = bytes; }
    virtual void setMaxFileDuration(int64_t durationUs) { mMaxFileDurationLimitUs = durationUs; }
    virtual void setListener(const sp<IMediaPlayerClient>& listener) {
+8 −0
Original line number Diff line number Diff line
@@ -692,6 +692,14 @@ status_t StagefrightRecorder::startMPEG4Recording() {
    return OK;
}

status_t StagefrightRecorder::pause() {
    if (mWriter == NULL) {
        return UNKNOWN_ERROR;
    }
    mWriter->pause();
    return OK;
}

status_t StagefrightRecorder::stop() {
    if (mWriter == NULL) {
        return UNKNOWN_ERROR;
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ struct StagefrightRecorder : public MediaRecorderBase {
    virtual status_t setListener(const sp<IMediaPlayerClient>& listener);
    virtual status_t prepare();
    virtual status_t start();
    virtual status_t pause();
    virtual status_t stop();
    virtual status_t close();
    virtual status_t reset();
Loading