On Mon, Apr 08, 2024 at 02:57:18PM +0200, Niklas Haas wrote: > From: Niklas Haas > > The only meaningful difference between choose_pix_fmts and the default > code was the inclusion of an extra branch for `keep_pix_fmt` being true. > > However, in this case, we either: > 1. Force the specific `ofp->format` that we inherited from > ofilter_bind_ost, or if no format was set: > 2. Print an empty format list > > Both of these goals can be accomplished by simply moving the decision > logic to ofilter_bind_ost, to avoid setting any format list when > keep_pix_fmt is enabled. This is arguably cleaner as it moves format > selection logic to a single function. In the case of branch 1, nothing > else needs to be done as we already force the format provided in > ofp->format, if any is set. Add an assertion to verify this assumption > just in case. > > (Side note: The "choose_*" family of functions are arguably misnomers, > as they should really be called "print_*" - their current behavior is to > print the relevant format lists to the `vf/af_format` filter arguments) > --- > fftools/ffmpeg_filter.c | 49 ++++++++--------------------------------- > 1 file changed, 9 insertions(+), 40 deletions(-) breaks: ./ffmpeg -y -i fate-suite/lena.pnm -pix_fmt +yuv444p -vf scale -strict -1 -bitexact -threads 2 -thread_type slice /tmp/file-2s-444.jpg Press [q] to stop, [?] for help Assertion !ost->keep_pix_fmt || (!ofp->format && !ofp->formats) failed at fftools/ffmpeg_filter.c:1314 Aborted (core dumped) [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The real ebay dictionary, page 2 "100% positive feedback" - "All either got their money back or didnt complain" "Best seller ever, very honest" - "Seller refunded buyer after failed scam"