From 52c75d486ed5f75cbb79e5dbd07b7aef24f3071f Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Thu, 23 Jul 2015 12:10:14 +0200 Subject: [PATCH] lavc/hevc: rudimentary support for skip_loop_filter. +~9% speed on Core i5 on test sample. All frames are treated as ref frames, skipping only applies at level "all". The following mail contains information on how to improve that: http://ffmpeg.org/pipermail/ffmpeg-devel/2015-July/176116.html --- doc/decoders.texi | 7 +++++++ libavcodec/hevc_filter.c | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/decoders.texi b/doc/decoders.texi index 2fb533ae2d..2a73cc6536 100644 --- a/doc/decoders.texi +++ b/doc/decoders.texi @@ -25,6 +25,13 @@ enabled decoders. A description of some of the currently available video decoders follows. +@section hevc + +HEVC / H.265 decoder. + +Note: the @option{skip_loop_filter} option has effect only at level +@code{all}. + @section rawvideo Raw video decoder. diff --git a/libavcodec/hevc_filter.c b/libavcodec/hevc_filter.c index 45cb823d6e..cc3aa8ee63 100644 --- a/libavcodec/hevc_filter.c +++ b/libavcodec/hevc_filter.c @@ -843,7 +843,8 @@ 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; - deblocking_filter_CTB(s, x, y); + if (s->avctx->skip_loop_filter < AVDISCARD_ALL) + deblocking_filter_CTB(s, x, y); if (s->ps.sps->sao_enabled) { int y_end = y >= s->ps.sps->height - ctb_size; if (y && x)