[FFmpeg-cvslog] avcodec/hevcdec: fix non-ref frame judgement

Mark Wu git at videolan.org
Sat Nov 10 19:38:09 EET 2018

ffmpeg | branch: master | Mark Wu <wfwf1997 at gmail.com> | Tue Oct 23 12:49:08 2018 +0800| [10bc4c3a7df7bb26303067b97311b7eeedfd453e] | committer: James Almer

avcodec/hevcdec: fix non-ref frame judgement

After inspecting the source code of x265, mpv and ffmpeg, I've found that
ffmpeg mistakenly regards EVC_NAL_BLA_N_LP and HEVC_NAL_IDR_N_LP as non-
reference frames, which are acutally reference frames according to the
specification in x265, and drops them.

This patch should address the problem. I have tested it with mpv.

Signed-off-by: Mark Wu <wfwf1997 at gmail.com>
Signed-off-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=10bc4c3a7df7bb26303067b97311b7eeedfd453e

 libavcodec/hevcdec.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h
index f0f588f2b8..dd951aae06 100644
--- a/libavcodec/hevcdec.h
+++ b/libavcodec/hevcdec.h
@@ -559,8 +559,6 @@ static av_always_inline int ff_hevc_nal_is_nonref(enum HEVCNALUnitType type)
     case HEVC_NAL_VCL_N10:
     case HEVC_NAL_VCL_N12:
     case HEVC_NAL_VCL_N14:
-    case HEVC_NAL_BLA_N_LP:
-    case HEVC_NAL_IDR_N_LP:
         return 1;
     default: break;

More information about the ffmpeg-cvslog mailing list