From patchwork Thu Nov 30 23:22:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: sfan5 X-Patchwork-Id: 6483 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp473588jah; Thu, 30 Nov 2017 15:22:51 -0800 (PST) X-Google-Smtp-Source: AGs4zMb6AkNiwrMZIFStlS8If67nMoEVPzaE2QSvaz1Ld5e3ldR6Dor/f42spVi/VWO0pc03imFV X-Received: by 10.223.139.140 with SMTP id o12mr3419920wra.280.1512084171321; Thu, 30 Nov 2017 15:22:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512084171; cv=none; d=google.com; s=arc-20160816; b=yKh5Q5oTKgUHI2SnZqgzZCM/MwRdXMjA3R5bc5vg4dyN/CNymXkw6+2D34mOtkmYjm LR2Rl3jx9mc8oPFNvysGv4axgIsjlUw7kXuY9F/qZLGl6Pbh5BfuxCN7kaXLI22YIF/E z0/jIWfaKm2Rxb8OR0HlTZmLtetbv0D1Hr0XriIvZlLLXiWnfo+aN/fEVV850aTh/Ygb llVzBQHUSeUQaao4l8/ZWgRj3pZy1UHuyddBX5EsAd47kYS6BldRgramNieUf8elFZCn u0Ogly0d1Nr2Yz7vHBLATk2dirAgRRloCVdNd/Rub1+1eppxidmkJ3e+gSrU0/95IFTh uIsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:message-id:date:thread-index :thread-topic:to:from:delivered-to:arc-authentication-results; bh=AQ3m3qkZe0ilTumG+Og3muj/J1SpmA5DOtqxJBJM1xc=; b=AbD0EgFe/n6ZFj0wqsiZU172ZBd5gBHpT5NyMvjurSFQkeyMsvsu1V+6swa0kVBZ7D oj0yQLyZF7HfAnVD2j/dPkXd/ZvM1ncurBp7gE+MbiUosejaWEePQg8kd3RmueIPn24g ewo0NGooP5cx7ZwDzehUn43C1pW0u9O9/c68IN2Jqx1nzEOtjQh9znygdBqYQo/Ifk6i 4s5a7zJ+d9OyOGZLnONAiCfvLlUmeJgy9/kTNJu/DPPJVWU6RaY9NW6CwGKLjCFAFAIw Qt88/I8yt3z5XFEiaiOciWZqXLibf+buEeJn1VsftX8fiYqLnTPOCfJdVyywWfSopdpa Iblg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id t18si3786120wmh.220.2017.11.30.15.22.50; Thu, 30 Nov 2017 15:22:51 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8A42568A3DC; Fri, 1 Dec 2017 01:22:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-oln040092068042.outbound.protection.outlook.com [40.92.68.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D836A68A19D for ; Fri, 1 Dec 2017 01:22:39 +0200 (EET) Received: from VE1EUR02FT049.eop-EUR02.prod.protection.outlook.com (10.152.12.56) by VE1EUR02HT148.eop-EUR02.prod.protection.outlook.com (10.152.13.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.239.4; Thu, 30 Nov 2017 23:22:41 +0000 Received: from DB3PR0202MB3452.eurprd02.prod.outlook.com (10.152.12.55) by VE1EUR02FT049.mail.protection.outlook.com (10.152.12.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.239.4 via Frontend Transport; Thu, 30 Nov 2017 23:22:41 +0000 Received: from DB3PR0202MB3452.eurprd02.prod.outlook.com ([fe80::f8c4:4dc5:8552:d274]) by DB3PR0202MB3452.eurprd02.prod.outlook.com ([fe80::f8c4:4dc5:8552:d274%13]) with mapi id 15.20.0260.007; Thu, 30 Nov 2017 23:22:41 +0000 From: Stefan _ To: FFmpeg development discussions and patches Thread-Topic: [PATCH] libavcodec/hevc_filter: support for all skip_loop_filter levels Thread-Index: AQHTajIeFDnFZnrPMkiZ8Bo2QWZt2Q== Date: Thu, 30 Nov 2017 23:22:41 +0000 Message-ID: Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:B075811EABD064F5593BC8A584AAA6B35166F51E8FE959D4454E8F7F53C8AA35; UpperCasedChecksum:0E92077D3B268BC857F38759822AF3E01C337565368BDBE44BEC2D6168C340DE; SizeAsReceived:6974; Count:44 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [OJJe7qYjzsRgjMZufsTFH7SwxMDV7PqI] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VE1EUR02HT148; 6:pnoO02tUXvNBHr9oAl1haUofQqxOG97jGDvxLQpsiBaQMYMeaD2M4lgUMseHu3NeQ/WdjDMz3hx+tOqkCD4Viqtk7jLtCmP/YU8KoDov2tUtN8f3hRhj/2+YZ7BL+QVs2ZCDN0/nzPmN4NgPhvseSOBBfwOYJJuo/ChxTECDGB/aNJg5DYBStlnSLisvQPgIUhAAPBjpL8AkLl4LlL8TnCyqYLb/0ZuJ/diJNBoOt4K0RveQFRe7nMSRz5n9RzhBiHzZnOI5HEtetjnfcMmsO5yJB/Gi1MhHnKIhJLzsfKUEr6+9A1xrDx96Lcp5LT/gFUQd502QLgHzHU33mQRDjy454/Obt0oNun12CIKQZZU=; 5:RkJ8zgzR2bJRZXWvV8IQHOMOUPnAsMSrn/UvwH3nb/fSCropZbA6EEm3MHNX7LvneQ4XFt6z4vRApMrJxcUobeIFbneR7t0037o8EWvsRJWxBEvRvrBg4kYXEFhcR4e7flC2s3bJNImYaIlkY4G12YrEm5IbIbKb9tPwZaTrCU8=; 24:NFk/LdiWlqrN+maeHLOERo4BCyRWxDi3aWzPHHHL/8l5m44NVYJC18L/a7xfEgo4hYyTTOQIfkyQsl5vEI6HhOfXKJnz+jKK+S/GY24YNrc=; 7:iOCd6NN3YYpkBcaxNJvTrpsRagm6/jUO/G3Nh+nKb8NV0wBrefX7glUKVso1Jk0SgTDGwikqyOCYxfLBzn5CWaDljTmR86XHc1S8ONM03zptovMqNTgtlAe35tUx0UqixYGk5SqVKARyrWEdNgz1xi0htxIw+yBcS1Hj5xjgHh6M87vlUb8cRXGCxYe2v+rUYY9LkLUm80SRlqChYFychjy7ayctJ7/kQIS5TPk73oLG0D8MUdRgcyPOZ/rvUzuY x-incomingheadercount: 44 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:VE1EUR02HT148; x-ms-traffictypediagnostic: VE1EUR02HT148: x-ms-office365-filtering-correlation-id: 453cf9d8-0912-4f90-0301-08d53849405f x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:VE1EUR02HT148; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:VE1EUR02HT148; x-forefront-prvs: 05079D8470 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:VE1EUR02HT148; H:DB3PR0202MB3452.eurprd02.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 453cf9d8-0912-4f90-0301-08d53849405f X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2017 23:22:41.1217 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR02HT148 Subject: [FFmpeg-devel] [PATCH] libavcodec/hevc_filter: support for all skip_loop_filter levels X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi, Attached patch adds full support for skip_loop_filter (all levels) to the hevc decoder. I'm not too sure about the implementation of "nonref", since this email (http://ffmpeg.org/pipermail/ffmpeg-devel/2015-July/176116.html) mentions looking at nal_unit_type and temporal_id instead. Some help would be appreciated. The 'make fate' test suite passed. From 3e2f7152e3dab1f6cfe7c7e14f2ba1cee519978c Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 30 Nov 2017 23:58:02 +0100 Subject: [PATCH] libavcodec/hevc_filter: support for all skip_loop_filter levels. Continues where commit 52c75d486ed5f75cbb79e5dbd07b7aef24f3071f left off. --- doc/decoders.texi | 7 ------- libavcodec/hevc_filter.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/doc/decoders.texi b/doc/decoders.texi index d149d2bea5..a9510bdf02 100644 --- a/doc/decoders.texi +++ b/doc/decoders.texi @@ -25,13 +25,6 @@ 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 b53f4cc721..17ec59619f 100644 --- a/libavcodec/hevc_filter.c +++ b/libavcodec/hevc_filter.c @@ -842,7 +842,17 @@ 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; - if (s->avctx->skip_loop_filter < AVDISCARD_ALL) + int deblock = 1; + 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 && + ff_hevc_frame_nb_refs(s) == 0)) + deblock = 0; + if (deblock) deblocking_filter_CTB(s, x, y); if (s->ps.sps->sao_enabled) { int y_end = y >= s->ps.sps->height - ctb_size; -- 2.15.0