From: Niklas Haas <ffmpeg@haasn.xyz>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] SWS cleanup / SPI Funding Suggestion
Date: Sat, 14 Oct 2023 19:24:51 +0200
Message-ID: <20231014192451.GB62524@haasn.xyz> (raw)
In-Reply-To: <20231014170036.GV3543730@pb2>
On Sat, 14 Oct 2023 19:00:36 +0200 Michael Niedermayer <michael@niedermayer.cc> wrote:
> Well there are 2 further aspects with that.
>
> The first one is bluntly put. If you dont understand the old code, then
> you probably are not qualified to write better code.
> People tend not to successfully improve things they dont understand.
I have a deep understanding of colorspaces and the necessary conversion
steps between them, and am also in a good position to integrate
libplacebo as a possible backend.
However, I do not have a good understanding of CPU/SIMD code, nor the
various swscale internals, beyond the cursory investigation I needed for
some recent swscale bugs I encountered. So I'll definitely need some
help along the way to fully understand those swscale internals.
> The 2nd issue is, ATM, i maintain swscale. If iam involved in the new
> effort and understand it either because of that or because it has some
> similarity then i can continue to maintain swscale. If its totally
> different and i was totally not involded then i also will not maintain
> it obviously.
I think it would be possible to join forces to the extent needed to
arrive at a satisfactory result. At the very least, I have very limited
experience working with "irregular" packed formats.
Obviously, my intent is not to blanket discard the swscale internals. It
has years and years of optimized kernels for various platforms just
lying around, wanting to be used. Hence my proposal of redesigning the
high-level logic, rather than the low-level details.
> This is something to be especially aware of in case the cleanup/new
> code would be done by someone who comes, does it and leaves. you
> could end up with nicer code thats then unmaintained.
>
> PS: whats the real issue with sws ?
> it evolved out of a piece yuv->rgb converter from a video player.
> It evolved from that and stuff was added into it.
> This is a similar situation to why ffmpeg.c needed cleanup
Yes, it amounts to the usual disentangling of various special cases and
branches into one top-down control flow that knows about all of these
special cases and fast/slow paths to begin with.
My goal is to arrive at a place where we have one single code flow that
looks something like:
1. Settle the complete descriptions of the source and destination format/csp
2. Establish a list of operations to get from A to B, taking into
account user settings
3. Determine and dispatch the best available functions for each operation
With the necessary code separation and/or layers of abstraction in place
to make this design manageable. In particular, steps 1 and 2 should be
expanded to include things like conversion between primaries, conversion
between HDR and SDR, conversion between YUV/RGB, and so on.
In particular, I also want to eventually add the ability to plug "Apply
a 3DLUT" in as a possible operation type for colorspace conversion,
probably by sharing the code that is already written for vf_lut3d.
_______________________________________________
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".
next prev parent reply other threads:[~2023-10-14 17:24 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-13 19:19 Michael Niedermayer
2023-10-13 20:30 ` Vittorio Giovara
2023-10-13 21:23 ` Lynne
2023-10-13 22:02 ` Michael Niedermayer
2023-10-13 22:34 ` Niklas Haas
2023-10-13 22:42 ` James Almer
2023-10-13 22:54 ` Niklas Haas
2023-10-13 23:00 ` Vittorio Giovara
[not found] ` <8A960BE2-8364-4AF8-A9B5-E0551C19F9DF@cosmin.at>
2023-10-13 23:16 ` Cosmin Stejerean via ffmpeg-devel
2023-10-14 14:19 ` Kieran Kunhya
2023-10-14 17:00 ` Michael Niedermayer
2023-10-14 17:24 ` Niklas Haas [this message]
2023-10-15 14:36 ` Michael Niedermayer
2023-10-14 17:41 ` Kieran Kunhya
2023-10-14 19:38 ` Vittorio Giovara
2023-10-14 17:26 ` Anton Khirnov
2023-10-14 15:45 ` Michael Niedermayer
2023-10-14 17:53 ` Stefano Sabatini
2023-10-17 14:36 ` Michael Niedermayer
[not found] ` <430D0C5B-53A8-4920-B99A-D8BAD816D715@cosmin.at>
2023-10-17 16:58 ` Cosmin Stejerean via ffmpeg-devel
2023-10-18 21:53 ` Stefano Sabatini
2023-10-17 18:33 ` James Almer
2023-10-17 18:50 ` Rémi Denis-Courmont
2023-10-17 21:57 ` Michael Niedermayer
2023-10-17 22:10 ` Michael Niedermayer
2023-10-18 16:30 ` Rémi Denis-Courmont
2023-10-18 22:12 ` Stefano Sabatini
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=20231014192451.GB62524@haasn.xyz \
--to=ffmpeg@haasn.xyz \
--cc=ffmpeg-devel@ffmpeg.org \
/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