avcodec/hevcdec: fix non-ref frame judgement
authorMark Wu <wfwf1997@gmail.com>
Tue, 23 Oct 2018 04:49:08 +0000 (12:49 +0800)
committerJames Almer <jamrial@gmail.com>
Sat, 10 Nov 2018 17:32:17 +0000 (14:32 -0300)
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@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/hevcdec.h

index f0f588f..dd951aa 100644 (file)
@@ -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;
         break;
     default: break;