Loading libvideoeditor/lvpp/VideoEditorSRC.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ VideoEditorSRC::VideoEditorSRC(const sp<MediaSource> &source) { mBuffer = NULL; mLeftover = 0; mFormatChanged = false; mStopPending = false; mSeekMode = ReadOptions::SEEK_PREVIOUS_SYNC; // Input Source validation Loading Loading @@ -127,6 +128,11 @@ status_t VideoEditorSRC::read( // Resample to target quality mResampler->resample(pTmpBuffer, outFrameCnt, this); if (mStopPending) { stop(); mStopPending = false; } // Change resampler and retry if format change happened if (mFormatChanged) { mFormatChanged = false; Loading Loading @@ -220,7 +226,10 @@ status_t VideoEditorSRC::getNextBuffer(AudioBufferProvider::Buffer *pBuffer) { // EOS or some other error if (err != OK) { LOGV("EOS or some err: %d", err); stop(); // We cannot call stop() here because stop() will release the // AudioResampler, and we are in a callback of the AudioResampler. // So just remember the fact and let read() call stop(). mStopPending = true; return err; } Loading libvideoeditor/lvpp/VideoEditorSRC.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ class VideoEditorSRC : public MediaSource , public AudioBufferProvider { MediaBuffer* mBuffer; int32_t mLeftover; bool mFormatChanged; bool mStopPending; int64_t mInitialTimeStampUs; int64_t mAccuOutBufferSize; Loading Loading
libvideoeditor/lvpp/VideoEditorSRC.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ VideoEditorSRC::VideoEditorSRC(const sp<MediaSource> &source) { mBuffer = NULL; mLeftover = 0; mFormatChanged = false; mStopPending = false; mSeekMode = ReadOptions::SEEK_PREVIOUS_SYNC; // Input Source validation Loading Loading @@ -127,6 +128,11 @@ status_t VideoEditorSRC::read( // Resample to target quality mResampler->resample(pTmpBuffer, outFrameCnt, this); if (mStopPending) { stop(); mStopPending = false; } // Change resampler and retry if format change happened if (mFormatChanged) { mFormatChanged = false; Loading Loading @@ -220,7 +226,10 @@ status_t VideoEditorSRC::getNextBuffer(AudioBufferProvider::Buffer *pBuffer) { // EOS or some other error if (err != OK) { LOGV("EOS or some err: %d", err); stop(); // We cannot call stop() here because stop() will release the // AudioResampler, and we are in a callback of the AudioResampler. // So just remember the fact and let read() call stop(). mStopPending = true; return err; } Loading
libvideoeditor/lvpp/VideoEditorSRC.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ class VideoEditorSRC : public MediaSource , public AudioBufferProvider { MediaBuffer* mBuffer; int32_t mLeftover; bool mFormatChanged; bool mStopPending; int64_t mInitialTimeStampUs; int64_t mAccuOutBufferSize; Loading