diff --git a/framework/demuxer/play_list/HLSStream.cpp b/framework/demuxer/play_list/HLSStream.cpp index 1c8c7d06b..a44f68480 100644 --- a/framework/demuxer/play_list/HLSStream.cpp +++ b/framework/demuxer/play_list/HLSStream.cpp @@ -123,7 +123,7 @@ namespace Cicada { int64_t HLSStream::seekSegment(off_t offset, int whence) { - int ret; + int64_t ret; if (mSegDecrypter == nullptr) { if (mExtDataSource) { @@ -901,7 +901,7 @@ namespace Cicada { AF_LOGW("mPDemuxer->readPacket FRAMEWORK_ERR_EXIT\n"); } - if (mStopOnSegEnd) { + if (ret == 0 && mStopOnSegEnd) { mIsEOS = true; AF_LOGE("mStopOnSegEnd"); return -EAGAIN; @@ -1142,6 +1142,8 @@ namespace Cicada { delete mSegKeySource; mSegKeySource = nullptr; } + + mIsOpened_internal = false; } clearDataFrames(); AF_LOGD("%s\n", __func__);