Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Lynne via ffmpeg-devel <ffmpeg-devel@ffmpeg.org>
To: ffmpeg-devel@ffmpeg.org
Cc: Lynne <dev@lynne.ee>
Subject: Re: [FFmpeg-devel] [PATCH] lavc/vp9: set update_map to 0 when segmentation.enabled is 0
Date: Wed, 22 May 2024 19:16:14 +0200
Message-ID: <60a50e80-6c82-4897-9e67-8117dafa4b92@lynne.ee> (raw)
In-Reply-To: <20240522091706.0293e150@phil-Stealth-16Studio-A13VG>


[-- Attachment #1.1.1.1: Type: text/plain, Size: 2783 bytes --]

On 22/05/2024 18:17, Philip Langdale via ffmpeg-devel wrote:
> On Wed, 22 May 2024 11:10:31 -0400
> "Ronald S. Bultje" <rsbultje@gmail.com> wrote:
> 
>> Hi,
>>
>> On Wed, May 22, 2024 at 10:36 AM Hendrik Leppkes <h.leppkes@gmail.com>
>> wrote:
>>
>>> On Thu, Feb 29, 2024 at 7:19 AM llyyr <llyyr@yukari.in> wrote:
>>>>
>>>> segmentation.update_map is never reset to 0 on a new frame, and
>>>> retains the value from the previous frame. This bugs out a bunch
>>>> of hwaccel drivers when segmentation.enabled is 0 but update_map
>>>> isn't because they don't ignore values behind switches. We also
>>>> do this for vp8* so this commit is just mirroring the vp8 logic.
>>>>
>>>> This fixes an issue with certain samples** that causes blocky
>>>> artifacts with vaapi and d3d11va (as far as known hwaccel drivers
>>>> go). Mesa worked around*** this by ignoring this field if
>>>> segmentation.enabled is 0, but d3d11va still doesn't work.
>>>>
>>>> *
>>> https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavcodec/vp8.c#l811
>>>   
>>>> ** https://github.com/mpv-player/mpv/issues/13533
>>>> ***
>>>> https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27816
>>>>
>>>> Signed-off-by: llyyr <llyyr@yukari.in>
>>>> ---
>>>>   libavcodec/vp9.c | 2 ++
>>>>   1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
>>>> index 855936cdc1c7..4a628625131e 100644
>>>> --- a/libavcodec/vp9.c
>>>> +++ b/libavcodec/vp9.c
>>>> @@ -717,6 +717,8 @@ static int decode_frame_header(AVCodecContext
>>>> *avctx, s->s.h.segmentation.feat[i].skip_enabled =
>>> get_bits1(&s->gb);
>>>>               }
>>>>           }
>>>> +    } else {
>>>> +        s->s.h.segmentation.update_map = 0;
>>>>       }
>>>>
>>>>       // set qmul[] based on Y/UV, AC/DC and segmentation Q idx
>>>> deltas
>>>>
>>>> base-commit: d263fce2b209e86a5a1e8f1b6aa33430ecc2c187
>>>> --
>>>
>>> Change LGTM.
>>> I was debugging the same issue today, and found the same problem
>>> with some hwaccels not properly ignoring update_map when
>>> segmentation is disabled.
>>>
>>> Will apply soon if there are no further comments.
>>>   
>>
>> Is fine, please apply.
>>
> 
> Another LGTM. We've been seeing this reported on the mpv side as well.
> 
> --phil
> _______________________________________________
> 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".

Can't this get fixed by hwaccel code rather than globally?
I'd hate to apply fixes with no information in shared code. This can get 
removed with no information about what relies on it.

[-- Attachment #1.1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 637 bytes --]

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
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".

  reply	other threads:[~2024-05-22 17:16 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-29  5:58 llyyr
2024-05-22 14:36 ` Hendrik Leppkes
2024-05-22 15:10   ` Ronald S. Bultje
2024-05-22 16:17     ` Philip Langdale via ffmpeg-devel
2024-05-22 17:16       ` Lynne via ffmpeg-devel [this message]
2024-05-22 17:28         ` Hendrik Leppkes
2024-05-22 17:33           ` Ronald S. Bultje

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=60a50e80-6c82-4897-9e67-8117dafa4b92@lynne.ee \
    --to=ffmpeg-devel@ffmpeg.org \
    --cc=dev@lynne.ee \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git