]> git.sesse.net Git - ffmpeg/commitdiff
lavc/hevc: rudimentary support for skip_loop_filter.
authorNicolas George <george@nsup.org>
Thu, 23 Jul 2015 10:10:14 +0000 (12:10 +0200)
committerNicolas George <george@nsup.org>
Thu, 23 Jul 2015 14:26:14 +0000 (16:26 +0200)
+~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
libavcodec/hevc_filter.c

index 2fb533ae2df49943049ceb3e8d701018ab0ea991..2a73cc653602de83eea2595446019d38f343d480 100644 (file)
@@ -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.
index 45cb823d6ea7d04db6528dc697535e1c3012c66e..cc3aa8ee63e6a5e82b534808cdddeb79a01d2408 100644 (file)
@@ -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)