summaryrefslogtreecommitdiff
path: root/libavcodec/hevc_filter.c
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2017-12-07 20:37:48 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2017-12-08 20:02:16 +0100
commita428f2fcd95906cdfca1eff574369fb32169317e (patch)
treeae2c56f864cee8be45a02c28a81d5d3316a7d4ce /libavcodec/hevc_filter.c
parent2fdc9f7c4939f83a6c9d1f9d85b6d37ce0bab714 (diff)
downloadffmpeg-a428f2fcd95906cdfca1eff574369fb32169317e.tar.gz
libavcodec/hevc_filter: move AVDISCARD_NONREF switch-case into function
In preparation for implementation of skip_frame. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/hevc_filter.c')
-rw-r--r--libavcodec/hevc_filter.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/libavcodec/hevc_filter.c b/libavcodec/hevc_filter.c
index 94fb7cd3d1..6b9824088c 100644
--- a/libavcodec/hevc_filter.c
+++ b/libavcodec/hevc_filter.c
@@ -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)