|
|
|
@ -842,29 +842,15 @@ void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0, |
|
|
|
|
void ff_hevc_hls_filter(HEVCContext *s, int x, int y, int ctb_size) |
|
|
|
|
{ |
|
|
|
|
int x_end = x >= s->ps.sps->width - ctb_size; |
|
|
|
|
int skip = 0, is_n = 0; |
|
|
|
|
switch (s->nal_unit_type) { |
|
|
|
|
case HEVC_NAL_TRAIL_N: |
|
|
|
|
case HEVC_NAL_TSA_N: |
|
|
|
|
case HEVC_NAL_STSA_N: |
|
|
|
|
case HEVC_NAL_RADL_N: |
|
|
|
|
case HEVC_NAL_RASL_N: |
|
|
|
|
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: |
|
|
|
|
is_n = 1; |
|
|
|
|
break; |
|
|
|
|
default: break; |
|
|
|
|
} |
|
|
|
|
int skip = 0; |
|
|
|
|
if (s->avctx->skip_loop_filter >= AVDISCARD_ALL || |
|
|
|
|
(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY && !IS_IDR(s)) || |
|
|
|
|
(s->avctx->skip_loop_filter >= AVDISCARD_NONINTRA && |
|
|
|
|
s->sh.slice_type != HEVC_SLICE_I) || |
|
|
|
|
(s->avctx->skip_loop_filter >= AVDISCARD_BIDIR && |
|
|
|
|
s->sh.slice_type == HEVC_SLICE_B) || |
|
|
|
|
(s->avctx->skip_loop_filter >= AVDISCARD_NONREF && is_n)) |
|
|
|
|
(s->avctx->skip_loop_filter >= AVDISCARD_NONREF && |
|
|
|
|
ff_hevc_nal_is_nonref(s->nal_unit_type))) |
|
|
|
|
skip = 1; |
|
|
|
|
|
|
|
|
|
if (!skip) |
|
|
|
|