From 230ca29eccf48b48f8ad1af99e25a5a35abfdd7f Mon Sep 17 00:00:00 2001 From: Hendi Date: Fri, 6 Jan 2023 22:26:46 +0100 Subject: [PATCH] ffmpegdec: Fix system freeze at end of playback with ffmpeg 4.0+ Origin commit data ------------------ Branch: ni/coolstream Commit: https://github.com/neutrino-images/ni-neutrino/commit/a114d80f218029a65916454f9a162f55905fc507 Author: Hendi Date: 2023-01-06 (Fri, 06 Jan 2023) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- src/driver/audiodec/ffmpegdec.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/driver/audiodec/ffmpegdec.cpp b/src/driver/audiodec/ffmpegdec.cpp index ffa57970b..a176cfcb6 100644 --- a/src/driver/audiodec/ffmpegdec.cpp +++ b/src/driver/audiodec/ffmpegdec.cpp @@ -104,7 +104,15 @@ int CFfmpegDec::Read(void *buf, size_t buf_size) static int read_packet(void *opaque, uint8_t *buf, int buf_size) { +#if LIBAVFORMAT_VERSION_MAJOR < 58 return ((CFfmpegDec *) opaque)->Read(buf, (size_t) buf_size); +#else + // ffmpeg 4.0+: read_packet MUST return a valid AVERROR code instead of 0. + int len = ((CFfmpegDec *) opaque)->Read(buf, (size_t) buf_size); + if (len == 0) + return AVERROR_EOF; + return len; +#endif } int64_t CFfmpegDec::Seek(int64_t offset, int whence)