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