From: Steinar H. Gunderson Date: Sat, 9 Mar 2019 21:01:00 +0000 (+0100) Subject: Fix an issue where Matroska HTTP FFmpeg streams would not correctly restart on connec... X-Git-Tag: 1.8.3~4 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;ds=inline;h=d0e576aa0c63a260d4a27d57326c0d16fb7997a2;p=nageru Fix an issue where Matroska HTTP FFmpeg streams would not correctly restart on connection close. --- diff --git a/nageru/ffmpeg_capture.cpp b/nageru/ffmpeg_capture.cpp index 722d313..9beea85 100644 --- a/nageru/ffmpeg_capture.cpp +++ b/nageru/ffmpeg_capture.cpp @@ -467,6 +467,11 @@ bool FFmpegCapture::play_video(const string &pathname) } if (frame == nullptr) { // EOF. Loop back to the start if we can. + if (format_ctx->pb != nullptr && format_ctx->pb->seekable == 0) { + // Not seekable (but seemingly, sometimes av_seek_frame() would return 0 anyway, + // so don't try). + return true; + } if (av_seek_frame(format_ctx.get(), /*stream_index=*/-1, /*timestamp=*/0, /*flags=*/0) < 0) { fprintf(stderr, "%s: Rewind failed, not looping.\n", pathname.c_str()); return true;