From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9C9BE482BD for ; Tue, 21 Nov 2023 12:28:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3F39268CC2B; Tue, 21 Nov 2023 14:28:01 +0200 (EET) Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C236B68C9C5 for ; Tue, 21 Nov 2023 14:27:54 +0200 (EET) Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-5bdbe2de25fso4180852a12.3 for ; Tue, 21 Nov 2023 04:27:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700569672; x=1701174472; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=3hPNstWW+p5k2HFFyHUJLFnF+mq9UPTsxx7XAZDGcr4=; b=IOaFV6qQ514OSID3O1uXIfbN58bZKGYvZ42M4V6c4q6qVEqp8frqLausjPC7LHe/NB cHIUnb59+5AUFxDgRtnglZxyD9tZcr3YOdP3hRlGYrinjJx8D8sbxJXlSSbL/gvNIGb0 lxUGocD6wpSQPjPD7M0WRNvYpVHo/FfY6NN+blq9/05DcxTo2yP/NIto05THgYcHBgPg Y4u5U+AafmG1SYyQI4CCP9k03GWJPjhD3zoMMMtURMwtPWXEFJPj0BRlRmhaPTOmL9fb O6+8bSzlvRMzgTYk6YMO1pOexFVOWRyNXnLy84Y6uUw+e/CtaBfEutiSMOMWLl4lCsA/ zobQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700569672; x=1701174472; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3hPNstWW+p5k2HFFyHUJLFnF+mq9UPTsxx7XAZDGcr4=; b=XXp4fDgKM+wnNteQEnsr+z+PUcUOp9OG2e3a3hS9pk6x+PRx82OHjzvjG0/c598Jo6 REl3xE98/iv/n4dKPgcXKR2Up23W7ubogC6XYr+QgtRDmGs4mALhrNx9ZJ6WGNDujDyn 6bExTNvr03guvvQb6O7XqnvAMWFKyIHzO/q9u6sCEGumy6FBm4mhrk+9L+lr4KZ/TpNK ve9kpuveS/Rx05DVl2MlSRiOar/apucEsCMJd4kqFTGfPg/Xc3rVUvYa53+onfi/TxkV Zw9wBrNM/2VW7r3lTssUSs9pEj3Ir5hnGjG6grqTnV7rkY7sW0XbAow6184MANAJsG9c HVqw== X-Gm-Message-State: AOJu0YzyXdWgi3Z4V9qyjSyeDnF6C8gXY2LgQToNHmYG2Xtdth0y4jp7 U1fN/LLc33t7tiwsGs+irD7+qy/7bas= X-Google-Smtp-Source: AGHT+IHeCaQOjYQmQQugO0r9OhPbJWUoO1GFK27M6MjAIPnsnCqasAh1e6SQz7d1uL4Dd/0blRvmYw== X-Received: by 2002:a05:6a20:729e:b0:174:c134:81fa with SMTP id o30-20020a056a20729e00b00174c13481famr13813431pzk.17.1700569671563; Tue, 21 Nov 2023 04:27:51 -0800 (PST) Received: from [192.168.0.14] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id ka16-20020a056a00939000b006c1221bc58bsm7810705pfb.115.2023.11.21.04.27.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 21 Nov 2023 04:27:50 -0800 (PST) Message-ID: Date: Tue, 21 Nov 2023 09:27:59 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20231114172051.13872-1-michael@niedermayer.cc> <20231114172051.13872-5-michael@niedermayer.cc> From: James Almer Autocrypt: addr=jamrial@gmail.com; keydata= xsBNBFjZtqABCADLW+vdEoZaJZDsIO6geYFTOcn1unsEHefj9zn+3oTHlDFFzO47mzHsSfbK 9JE2xpOJEVnC8FAF5Sayi/pVwV+mtQUV3n5dgVeVBYF9GUQwOGFCpK8X54RRqhkgknbunOEE 0CtgAJgmpFmmmHgq02GvEspx1h/rh4apqwQR6QX4Favb+x9+i9ytVpwVcBX94vo2toyP7h/K BWfadQmb8ltgE1kshfg+SQs/H5bTV5Z1DuEASf02ZL/1qYB/sdTgWPLv9XMUHHsRFmMY8TMx wJSkP+Af3AiYQPJYz1B1D4tt98T/NoiVdin10zATakPjV8hXaobuRmxgakkUASXudydDABEB AAHNH0phbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT7CwJIEEwEIADwCGwMGCwkIBwMC BhUIAgkKCwQWAgMBAh4BAheAFiEEd1EujP2UoWlX5pp6FGMBrXN2WeAFAmJoLUUCGQEACgkQ FGMBrXN2WeAFVQf9GtGhniRs1PzNUOgJktCnv6j4BbLieaIPYPEFXKDHOgjqQE2zVMYXnoXl Jam928ii902a8OY06r9ywn/R8ApD1/3NY/v64O71CY9scz5XyH2au8wIZ6HwFy3/f7sqjdGD uctY8Qs7rjT7NkoC5lmgMu2v2k03dGtM9AAf5AK5gU+H0EUw7vmKKiXzUqt5kvBuf4CEwXvH AQT1SMJ52rIlDWB7FQFyZeUbOAK2IgY/KNedfK6nsgd/eQVnlofPd2XoddE7kP6iys7jJefw DD3g3rZyDTq7in5dyk5glaNpWZpbHGBs+9SCYLnfQ8XvWqPFOD+gj0plamKANgOvavKTxM7A TQRY2bagAQgA69YtILj8kYxmqPr/M8+MXT7wVoOWVW9lvSmPquCELaDy/NIS7D06VC5EuE/6 JlJXZMTn37NLlyWhzwOgXuXw5w2tyoQQBuvqGiXJijuXwXH7HKdzrc6rpYtAqt5w05hzNrFS KrS0izG64VpWrfproy3BsL+8TBm9brLhhNPynVRqVukbbGzlATTzNQGZ14TTi2/dL6DkMQnM qn4jX9UEe4GdGQBP50bUJSSmeiIkyNLWA+znuN2PZEz930ZwNrF9GtDVw7mzcmpCZ7spldE2 tutbpy9D1bIqxyqBrYDSezyzL2adR1qgHyOTMCHg2AYNkrIQHrSyJxKTpZ1/hqOp8wARAQAB wsBfBBgBAgAJBQJY2bagAhsMAAoJEBRjAa1zdlnghekH/0Yb0iYJ74oID2f/Fj+AJKS2ekQF P2xOr8lpGzgp/+yWUvPtqbX0A33anBJdYwxaAC0NataX3tfZ+oJkzXqfmqhIHMPYHdZesJA2 Bk9hU/33mDl5s5U66/z0uelWzwKVHoQ2O6or4+qF3HJFSJLCe9uvWJ3zXf9F342Ftj73sfx+ 3xkw/IXsN1RqbYqDlzpoEQ99SIEfY/8Jjwnd3sIPfqkuyeaYfe6GJDqKawdCEP1oRRlbXEAp TJgYz8r3nPhGv9cdHNDCk44ISbsqVuxIEnLqi4fTPZaGupiQhT+srl268TTAp2TQW7+6Ce/b NPQorMquzS/LZoyALpmsYi/miMc= In-Reply-To: <20231114172051.13872-5-michael@niedermayer.cc> Subject: Re: [FFmpeg-devel] [PATCH 5/6] avcodec/h264: Avoid using gray gap frames as references X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 11/14/2023 2:20 PM, Michael Niedermayer wrote: > Signed-off-by: Michael Niedermayer > --- > libavcodec/h264_refs.c | 11 +++++++++++ > libavcodec/h264dec.c | 1 + > libavcodec/h264dec.h | 1 + > 3 files changed, 13 insertions(+) > > diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c > index 92778e737a5..9bc7b20988f 100644 > --- a/libavcodec/h264_refs.c > +++ b/libavcodec/h264_refs.c > @@ -410,6 +410,17 @@ int ff_h264_build_ref_list(H264Context *h, H264SliceContext *sl) > else > return -1; > } > + if (h->noref_gray>0 && sl->ref_list[list][index].parent->gray && h->non_gray) { > + for (int j=0; jlist_count; j++) { > + int list2 = (list+j)&1; > + if (h->default_ref[list2].parent && !h->default_ref[list2].parent->gray > + && !(!FIELD_PICTURE(h) && (h->default_ref[list2].reference&3) != 3)) { > + sl->ref_list[list][index] = h->default_ref[list2]; > + av_log(h, AV_LOG_DEBUG, "replacement of gray gap frame\n"); > + break; > + } > + } > + } > av_assert0(av_buffer_get_ref_count(sl->ref_list[list][index].parent->f->buf[0]) > 0); > } > } > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > index 7ea55db75dd..b48821db244 100644 > --- a/libavcodec/h264dec.c > +++ b/libavcodec/h264dec.c > @@ -1091,6 +1091,7 @@ static const AVOption h264_options[] = { > { "nal_length_size", "nal_length_size", OFFSET(nal_length_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, VDX }, > { "enable_er", "Enable error resilience on damaged frames (unsafe)", OFFSET(enable_er), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VD }, > { "x264_build", "Assume this x264 version if no x264 version found in any SEI", OFFSET(x264_build), AV_OPT_TYPE_INT, {.i64 = -1}, -1, INT_MAX, VD }, > + { "noref_gray", "Avoid using gray gap frames as references", OFFSET(noref_gray), AV_OPT_TYPE_INT, {.i64 = 1}, -1, 1, VD }, Should be AV_OPT_TYPE_BOOL, and there's no point allowing -1. That's only useful for example when used with external modules as "use the default from the external library". > { NULL }, > }; > > diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h > index 366626c056c..591769ab258 100644 > --- a/libavcodec/h264dec.h > +++ b/libavcodec/h264dec.h > @@ -571,6 +571,7 @@ typedef struct H264Context { > int ref2frm[MAX_SLICES][2][64]; ///< reference to frame number lists, used in the loop filter, the first 2 are for -2,-1 > > int non_gray; ///< Did we encounter a intra frame after a gray gap frame > + int noref_gray; > } H264Context; > > extern const uint16_t ff_h264_mb_sizes[4]; _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".