diff --git a/app/codec/ffmpeg/ffmpegdecoder.cpp b/app/codec/ffmpeg/ffmpegdecoder.cpp index 499a0a31a..a825584d7 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.cpp +++ b/app/codec/ffmpeg/ffmpegdecoder.cpp @@ -950,9 +950,11 @@ void FFmpegDecoder::RemoveFirstFrame() VideoParams FFmpegDecoder::GetParamsForTexture(const Decoder::RetrieveVideoParams &p) { if (native_pix_fmt_ == VideoParams::kFormatInvalid) { - instance_.GetFrame(working_packet_, working_frame_); - InitScaler(working_frame_, p); - av_frame_unref(working_frame_); + if (instance_.IsOpen()) { + instance_.GetFrame(working_packet_, working_frame_); + InitScaler(working_frame_, p); + av_frame_unref(working_frame_); + } } return VideoParams(instance_.avstream()->codecpar->width, diff --git a/app/codec/ffmpeg/ffmpegdecoder.h b/app/codec/ffmpeg/ffmpegdecoder.h index 60e838aee..b4edcaf99 100644 --- a/app/codec/ffmpeg/ffmpegdecoder.h +++ b/app/codec/ffmpeg/ffmpegdecoder.h @@ -87,6 +87,11 @@ private: bool Open(const char* filename, int stream_index); + bool IsOpen() const + { + return fmt_ctx_; + } + void Close(); /**