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

Commit baf2d2c6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "StagefrightRecorder:close next filedescriptor"

parents 11993758 b2ba4859
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -402,12 +402,11 @@ status_t StagefrightRecorder::setNextOutputFile(int fd) {

    // start with a clean, empty file
    ftruncate(fd, 0);
    int nextFd = dup(fd);
    if (mWriter == NULL) {
        ALOGE("setNextOutputFile failed. Writer has been freed");
        return INVALID_OPERATION;
    }
    return mWriter->setNextFd(nextFd);
    return mWriter->setNextFd(fd);
}

// Attempt to parse an float literal optionally surrounded by whitespace,
+8 −4
Original line number Diff line number Diff line
@@ -460,7 +460,7 @@ private:
};

MPEG4Writer::MPEG4Writer(int fd) {
    initInternal(fd, true /*isFirstSession*/);
    initInternal(dup(fd), true /*isFirstSession*/);
}

MPEG4Writer::~MPEG4Writer() {
@@ -481,7 +481,7 @@ MPEG4Writer::~MPEG4Writer() {

void MPEG4Writer::initInternal(int fd, bool isFirstSession) {
    ALOGV("initInternal");
    mFd = dup(fd);
    mFd = fd;
    mNextFd = -1;
    mInitCheck = mFd < 0? NO_INIT: OK;

@@ -1044,6 +1044,10 @@ void MPEG4Writer::writeCompositionMatrix(int degrees) {
void MPEG4Writer::release() {
    close(mFd);
    mFd = -1;
    if (mNextFd != -1) {
        close(mNextFd);
        mNextFd = -1;
    }
    mInitCheck = NO_INIT;
    mStarted = false;
    free(mInMemoryCache);
@@ -1981,7 +1985,7 @@ status_t MPEG4Writer::setNextFd(int fd) {
        // No need to set a new FD yet.
        return INVALID_OPERATION;
    }
    mNextFd = fd;
    mNextFd = dup(fd);
    return OK;
}

@@ -2180,11 +2184,11 @@ void MPEG4Writer::onMessageReceived(const sp<AMessage> &msg) {
    switch (msg->what()) {
        case kWhatSwitch:
        {
            finishCurrentSession();
            mLock.lock();
            int fd = mNextFd;
            mNextFd = -1;
            mLock.unlock();
            finishCurrentSession();
            initInternal(fd, false /*isFirstSession*/);
            start(mStartMeta.get());
            mSwitchPending = false;