diff --git a/src/Common/config.cpp b/src/Common/config.cpp index b8cbc458..fa4a1c44 100644 --- a/src/Common/config.cpp +++ b/src/Common/config.cpp @@ -268,12 +268,16 @@ const string kFilePath = RECORD_FIELD"filePath"; //mp4文件写缓存大小 const string kFileBufSize = RECORD_FIELD"fileBufSize"; +//mp4文件是否重头循环读取 +const string kFileRepeat = RECORD_FIELD"fileRepeat"; + onceToken token([](){ mINI::Instance()[kAppName] = RECORD_APP_NAME; mINI::Instance()[kSampleMS] = RECORD_SAMPLE_MS; mINI::Instance()[kFileSecond] = RECORD_FILE_SECOND; mINI::Instance()[kFilePath] = RECORD_FILE_PATH; mINI::Instance()[kFileBufSize] = 64 * 1024; + mINI::Instance()[kFileRepeat] = false; },nullptr); } //namespace Record diff --git a/src/Common/config.h b/src/Common/config.h index 7e115263..89ed9cb1 100644 --- a/src/Common/config.h +++ b/src/Common/config.h @@ -268,6 +268,8 @@ extern const string kFileSecond; extern const string kFilePath; //mp4文件写缓存大小 extern const string kFileBufSize; +//mp4文件是否重头循环读取 +extern const string kFileRepeat; } //namespace Record ////////////HLS相关配置/////////// diff --git a/src/MediaFile/MediaReader.cpp b/src/MediaFile/MediaReader.cpp index 8bf100b8..a39d1354 100644 --- a/src/MediaFile/MediaReader.cpp +++ b/src/MediaFile/MediaReader.cpp @@ -200,6 +200,11 @@ bool MediaReader::readSample(int iTimeInc,bool justSeekSyncFrame) { if((bFlag0 || bFlag1) && bFlag2){ _alive.resetTime(); } + //重头开始循环读取 + GET_CONFIG(bool,fileRepeat,Record::kFileRepeat); + if (fileRepeat && !bFlag0 && !bFlag1) { + seek(0); + } //DebugL << "alive ..."; //3秒延时关闭 return _alive.elapsedTime() < 3 * 1000;