From patchwork Fri Jan 18 23:00:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 11795 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id E333B44E75D for ; Sat, 19 Jan 2019 01:02:02 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0B6E268ACA5; Sat, 19 Jan 2019 01:01:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-qmta-pe02-1.mx.upcmail.net (vie01a-qmta-pe02-1.mx.upcmail.net [62.179.121.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7C4D168AC43 for ; Sat, 19 Jan 2019 01:01:45 +0200 (EET) Received: from [172.31.218.43] (helo=vie01a-dmta-pe05-1.mx.upcmail.net) by vie01a-pqmta-pe02.mx.upcmail.net with esmtp (Exim 4.88) (envelope-from ) id 1gkd9E-0007x3-EE for ffmpeg-devel@ffmpeg.org; Sat, 19 Jan 2019 00:02:00 +0100 Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe05.mx.upcmail.net with esmtp (Exim 4.88) (envelope-from ) id 1gkd99-0006Wk-0O for ffmpeg-devel@ffmpeg.org; Sat, 19 Jan 2019 00:01:55 +0100 Received: from localhost ([213.47.41.20]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id kd8AgzepZ2WSskd8Ag3kcc; Sat, 19 Jan 2019 00:00:55 +0100 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.41.20 X-CNFS-Analysis: v=2.3 cv=E7kcWpVl c=1 sm=1 tr=0 a=I1eytVlZLDX1BM2VTtTtSw==:117 a=I1eytVlZLDX1BM2VTtTtSw==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=eBZCLnwfIyvgxFtAVzQA:9 a=zK8ST_jCdHJHnAPt:21 a=xH4gFv3X3CsihQ_Y:21 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Sat, 19 Jan 2019 00:00:48 +0100 Message-Id: <20190118230049.23122-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CMAE-Envelope: MS4wfN+btcL8gjyPoZizYovYjtHL4y/NC6WtjU3xPfC0dVuVlkkzmoUoQqL1TBQPIZAubKOKv+GV/NXp9DwlEySsnJk+C5QR8NmV1Z/MI5dueRjlcWa5x6fo XPjLtUmhXser8CvSuIUDBJ9E265Lq4cLgAry6r8UUCe8eB96Y2fV5BXy Subject: [FFmpeg-devel] [PATCH 1/2] avcodec: Add discard_sample_percentage 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" Suggested-by: BBB Signed-off-by: Michael Niedermayer --- doc/APIchanges | 3 +++ libavcodec/avcodec.h | 8 ++++++++ libavcodec/options_table.h | 1 + tests/ref/fate/api-mjpeg-codec-param | 2 ++ tests/ref/fate/api-png-codec-param | 2 ++ 5 files changed, 16 insertions(+) diff --git a/doc/APIchanges b/doc/APIchanges index 5889fb246b..a146a487ef 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -21,6 +21,9 @@ API changes, most recent first: -------- 8< --------- FFmpeg 4.1 was cut here -------- 8< --------- +2019-XX-XX - XXXXXXXXXX - lavc 58.XX.100 - avcodec.h + Add discard_damaged_percentage + 2018-10-27 - 718044dc19 - lavu 56.21.100 - pixdesc.h Add av_read_image_line2(), av_write_image_line2() diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 90f9f08289..969cf83081 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3344,6 +3344,14 @@ typedef struct AVCodecContext { * used as reference pictures). */ int extra_hw_frames; + + /** + * The percentage of damaged samples to discard a frame. + * + * - decoding: set by user + * - encoding: unused + */ + int discard_damaged_percentage; } AVCodecContext; #if FF_API_CODEC_GET_SET diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h index 2f36ec7b8e..a3235bcd57 100644 --- a/libavcodec/options_table.h +++ b/libavcodec/options_table.h @@ -479,6 +479,7 @@ static const AVOption avcodec_options[] = { {"allow_high_depth", "allow to output YUV pixel formats with a different chroma sampling than 4:2:0 and/or other than 8 bits per component", 0, AV_OPT_TYPE_CONST, {.i64 = AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH }, INT_MIN, INT_MAX, V | D, "hwaccel_flags"}, {"allow_profile_mismatch", "attempt to decode anyway if HW accelerated decoder's supported profiles do not exactly match the stream", 0, AV_OPT_TYPE_CONST, {.i64 = AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH }, INT_MIN, INT_MAX, V | D, "hwaccel_flags"}, {"extra_hw_frames", "Number of extra hardware frames to allocate for the user", OFFSET(extra_hw_frames), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, V|D }, +{"discard_damaged_percentage", "Percentage of damaged samples to discard a frame", OFFSET(discard_damaged_percentage), AV_OPT_TYPE_INT, {.i64 = 95 }, 0, 100, V|D }, {NULL}, }; diff --git a/tests/ref/fate/api-mjpeg-codec-param b/tests/ref/fate/api-mjpeg-codec-param index 0d2b55cff1..0815919d7d 100644 --- a/tests/ref/fate/api-mjpeg-codec-param +++ b/tests/ref/fate/api-mjpeg-codec-param @@ -138,6 +138,7 @@ stream=0, decode=0 max_pixels=2147483647 hwaccel_flags=0x00000001 extra_hw_frames=-1 + discard_damaged_percentage=95 stream=0, decode=1 b=0 ab=0 @@ -278,3 +279,4 @@ stream=0, decode=1 max_pixels=2147483647 hwaccel_flags=0x00000001 extra_hw_frames=-1 + discard_damaged_percentage=95 diff --git a/tests/ref/fate/api-png-codec-param b/tests/ref/fate/api-png-codec-param index 1ae94a2e91..a47d0963da 100644 --- a/tests/ref/fate/api-png-codec-param +++ b/tests/ref/fate/api-png-codec-param @@ -138,6 +138,7 @@ stream=0, decode=0 max_pixels=2147483647 hwaccel_flags=0x00000001 extra_hw_frames=-1 + discard_damaged_percentage=95 stream=0, decode=1 b=0 ab=0 @@ -278,3 +279,4 @@ stream=0, decode=1 max_pixels=2147483647 hwaccel_flags=0x00000001 extra_hw_frames=-1 + discard_damaged_percentage=95