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 DCCAF47070 for ; Tue, 25 Jul 2023 22:00:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AE88768C85C; Wed, 26 Jul 2023 01:00:40 +0300 (EEST) Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 318EB68C81E for ; Wed, 26 Jul 2023 01:00:34 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 5229460002 for ; Tue, 25 Jul 2023 22:00:33 +0000 (UTC) Date: Wed, 26 Jul 2023 00:00:32 +0200 From: Michael Niedermayer To: FFmpeg development discussions and patches Message-ID: <20230725220032.GU7802@pb2> References: <20230721133746.33335-1-jdek@itanimul.li> MIME-Version: 1.0 In-Reply-To: X-GND-Sasl: michael@niedermayer.cc Subject: Re: [FFmpeg-devel] [PATCH 1/7] lavu: add ecinfo sidedata 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-Type: multipart/mixed; boundary="===============0752406086410561998==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --===============0752406086410561998== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="rW45g2D1DgwV0HVw" Content-Disposition: inline --rW45g2D1DgwV0HVw Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 25, 2023 at 02:05:43PM +0200, J. Dekker wrote: >=20 > Hi Devin, >=20 > Devin Heitmueller writes: > > On Fri, Jul 21, 2023 at 9:38=E2=80=AFAM J. Dekker wr= ote: > > > > I appreciate the value of stats so I can tell that the stream had > > errors, but how is this side data "helpful to a renderer attempting to > > filter or conceal video decoding errors and artifacts" if there is no > > information relating to the region of the picture where the errors are > > present? Is the assumption that an application will simply have some > > threshold at which it decides to duplicate the previous frame rather > > than showing the current one? >=20 > Yes, this is primarily the usecase here initially. As some point a > renderer would rather duplicate previous frame than rely on > reconstruction. This could be done within EC itself but letting the > decoder make this choice rather than exporting the information to a > renderer and doing it there seems incorrect to me. Error concealment is not merely a choice of copying or not Some areas may be damaged, surrounding areas may be undamaged an example could be a row of macroblocks / a slice To perform error concealment properly you need to know the motion vectors of the surrounding slices and their macroblock types for example if all the surrounding macroblocks have a motion vector pointing left by 7 pixels the lost slice likely needs to be using the same. This requires also knowledge of the reference frames the decoder used and ability to apply similar motion compensation to know what "-7" means If there are different motion vecstors used in surrounding macroblocks it becomes even more complex Also with some decoders you can loose the texture of a slice but have undamaged motion vectors. Or you may have intra slices with DC undamaged but AC lost for every macroblock And if its all intra blocks, some inpainting based on spatial surroundings may be better than using the previosu frames. This is all implemented in our error concealment code. Trying to do this outside is a mistake. Not only is it hard due to the deep connection to decoder state it is also something every user of libavcodec needs. The code belongs in a place every libavcodec user has access to and can reuse it from. Thx [...] --=20 Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB If a bugfix only changes things apparently unrelated to the bug with no further explanation, that is a good sign that the bugfix is wrong. --rW45g2D1DgwV0HVw Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABEIAB0WIQSf8hKLFH72cwut8TNhHseHBAsPqwUCZMBF/AAKCRBhHseHBAsP q9JZAJ9WpyHZsI0kevu6yskPGYdH1CzhfgCfT83xP7HeyeVYkwt2kUOVI66Rksw= =XRuj -----END PGP SIGNATURE----- --rW45g2D1DgwV0HVw-- --===============0752406086410561998== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --===============0752406086410561998==--