michaelni changed the topic of #ffmpeg-devel to: Welcome to the FFmpeg development channel | Questions about using FFmpeg or developing with libav* libs should be asked in #ffmpeg | This channel is publicly logged | FFmpeg 7.1 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
zeezie01 has quit [Remote host closed the connection]
zeezie01 has joined #ffmpeg-devel
IndecisiveTurtle has quit [Ping timeout: 245 seconds]
iive has quit [Quit: They came for me...]
Guest40 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<cone-310>
ffmpeg Michael Niedermayer release/7.0:aaaf20a11fbe: avformat/wavdec: Check if there are 16 bytes before testing them
<cone-310>
ffmpeg Michael Niedermayer release/7.0:13ca705eebb4: avformat/img2dec: Clear padding data after EOF
<cone-310>
ffmpeg Michael Niedermayer release/7.0:7b942f342f93: avformat/wtvdec: clear sectors
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d4d154f71497: avformat/wtvdec: Check length of read mpeg2_descriptor
<cone-310>
ffmpeg Michael Niedermayer release/7.0:0a10ae25bac1: tools/target_dec_fuzzer: Use av_buffer_allocz() to avoid missing slices to have unpredictable content
<cone-310>
ffmpeg Michael Niedermayer release/7.0:dd1058a7b467: avformat/lmlm4: Eliminate some AVERROR(EIO)
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d392adb19a41: avfilter/vf_xfade_opencl: Check ff_inlink_consume_frame() for failure
<cone-310>
ffmpeg Michael Niedermayer release/7.0:53ac43637574: avfilter/af_surround: Check output format
<cone-310>
ffmpeg Michael Niedermayer release/7.0:11037bdec094: avfilter/vf_tonemap_opencl: Dereference after NULL check
<cone-310>
ffmpeg Michael Niedermayer release/7.0:069bf0efff20: avfilter/vf_v360: Assert that vf was initialized
<cone-310>
ffmpeg Michael Niedermayer release/7.0:bbba5e041c6e: avfilter/vf_xfade: Compute w2, h2 with float
<cone-310>
ffmpeg Michael Niedermayer release/7.0:bd1b5e7b58ca: avcodec/dxva2: Initialize dxva_size and check it
<cone-310>
ffmpeg Michael Niedermayer release/7.0:32dd9118c74f: avcodec/dxva2: Initialize ConfigBitstreamRaw
<cone-310>
ffmpeg Michael Niedermayer release/7.0:c15df4daca4d: avcodec/dxva2: initialize validate
<cone-310>
ffmpeg Michael Niedermayer release/7.0:02231d401249: avcodec/dxva2: initialize hr in ff_dxva2_common_end_frame()
<cone-310>
ffmpeg Michael Niedermayer release/7.0:21ef3948a5b6: avdevice/dshow: Initialize 2 pointers
<cone-310>
ffmpeg Michael Niedermayer release/7.0:5a0393bf0117: tools/target_dec_fuzzer: Check that FFv1 doesnt leave uninitialized memory in its buffers
<cone-310>
ffmpeg Michael Niedermayer release/7.0:53c666d17ed6: avcodec/sga: av_assert1 check init_get_bits8()
<cone-310>
ffmpeg Michael Niedermayer release/7.0:29fc028ae2b6: avformat/segafilm: Set keyframe
<cone-310>
ffmpeg Michael Niedermayer release/7.0:a6d7abc88b81: avformat/av1dec: Check bits left before get_leb128()
c1480 has quit [Read error: Connection reset by peer]
<cone-310>
ffmpeg Michael Niedermayer release/7.0:c419b928cdc4: avformat/iamfdec: Check nb_layers before dereferencing layer
<cone-310>
ffmpeg Michael Niedermayer release/7.0:68a8dc4dd79b: bsf/media100_to_mjpegb: Clear output buffer padding
<cone-310>
ffmpeg Michael Niedermayer release/7.0:4926619103ab: avcodec/mvha: Clear remaining space after inflate()
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d9e078dcd7fe: avcodec/apac: Clean padding space
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d4394c8dce0d: avformat/mpeg: Check an avio_read() for failure
<cone-310>
ffmpeg Michael Niedermayer release/7.0:87de55344c10: avcodec/shorten: clear padding
<cone-310>
ffmpeg Michael Niedermayer release/7.0:2909f4235126: avcodec/vc1dec: Clear mb_type_base and ttblk_base
<cone-310>
ffmpeg Michael Niedermayer release/7.0:01c406b1d6ae: avcodec/aic: Clear slice_data
<cone-310>
ffmpeg Michael Niedermayer release/7.0:677e7cd8147f: avcodec/alsdec: clear last_acf_mantissa
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d8be286c006e: avcodec/apac: Fix discards ‘const’ qualifier
<cone-310>
ffmpeg Michael Niedermayer release/7.0:470718d8cb9e: avformat/av1dec: Better fix for 70872/clusterfuzz-testcase-minimized-ffmpeg_dem_OBU_fuzzer-6005782487826432
<cone-310>
ffmpeg Michael Niedermayer release/7.0:24396a0caf27: avcodec/avcodec: Warn about data returned from get_buffer*()
<cone-310>
ffmpeg Michael Niedermayer release/7.0:5742fce47afa: avcodec/magicyuvenc: better slice height
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d649d42a2c52: avformat/apetag: Check APETAGEX
<cone-310>
ffmpeg Michael Niedermayer release/7.0:f2d7b8089f45: avcodec/vc1_block: propagate error codes
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d349ad7bb698: avcodec/notchlc: Check bytes left before reading
<cone-310>
ffmpeg Michael Niedermayer release/7.0:7289a09477f7: avformat/argo_brp: Check that ASF chunk header is completely read
<cone-310>
ffmpeg Michael Niedermayer release/7.0:45c9900a9f67: avcodec/wmavoice: Do not use uninitialized pitch[0]
<cone-310>
ffmpeg Michael Niedermayer release/7.0:bd29e0ca5939: avformat/mvdec: Check if name was fully read
<cone-310>
ffmpeg Michael Niedermayer release/7.0:748e8c6afa0e: avcodec/vc2enc: basic sanity check on slice_max_bytes
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d300b23bad12: swscale/swscale: Use unsigned operation to avoid undefined behavior
<cone-310>
ffmpeg Michael Niedermayer release/7.0:8840b8153593: swscale/output: Fix undefined integer overflow in yuv2rgba64_2_c_template()
<cone-310>
ffmpeg Michael Niedermayer release/7.0:73475dfa8d9a: avformat/flvdec: Free metaVideoColor
<cone-310>
ffmpeg Michael Niedermayer release/7.0:c709d551d6ca: avformat/mxfdec: More offset_temp checks
c1480 has joined #ffmpeg-devel
<cone-310>
ffmpeg Michael Niedermayer release/7.0:c3d84bdcbf8b: avformat/mxfdec: Check timecode for overflow
<cone-310>
ffmpeg Michael Niedermayer release/7.0:af50c43d82d7: avcodec/osq: Treat sum = 0 as k = 0
<cone-310>
ffmpeg Michael Niedermayer release/7.0:5ea1ae938525: avformat/asf: Check picsize
<cone-310>
ffmpeg Michael Niedermayer release/7.0:44bf027a3f97: avcodec/jfdctint_template: use unsigned z* in row_fdct()
<cone-310>
ffmpeg Michael Niedermayer release/7.0:b67e271bed0c: avcodec/osq: use unsigned for decorrelation
<cone-310>
ffmpeg Michael Niedermayer release/7.0:ab1b1ef73056: avcodec/cbs_h266_syntax_template: Check bit depth with range extension
<cone-310>
ffmpeg Michael Niedermayer release/7.0:d4bdaa24ea6d: avcodec/encode: Check bitrate
<cone-310>
ffmpeg Michael Niedermayer release/7.0:0b5bfff1c09e: tools/target_dec_fuzzer: Adapt threshold for RASC
<cone-310>
ffmpeg Michael Niedermayer release/7.0:f8b1d416e3b6: avcodec/eacmv: Check input size for intra frames
<cone-310>
ffmpeg Michael Niedermayer release/7.0:0f0645381b95: avcodec/svq3: Check for minimum size input
<cone-310>
ffmpeg Michael Niedermayer release/7.0:6f395fba5720: avcodec/imm4: Check input size
<Lynne>
haasn: does nu-swscale deal with bits_per_raw_sample?
SafeLeader has joined #ffmpeg-devel
zeezie01 has joined #ffmpeg-devel
zeezie01 has quit [Ping timeout: 248 seconds]
SafeLeader has quit [Quit: Client closed]
SafeLeader has joined #ffmpeg-devel
<Lynne>
where are hwaccels meant to alter the pixfmt? the frame_params callback?
<Lynne>
f.ex yuv420p->nv12
SafeLeader has quit [Quit: Client closed]
System_Error has quit [Remote host closed the connection]
ccawley2011 has joined #ffmpeg-devel
<mkver>
Lynne: The user chooses whether he wants to use hwaccel or not in the ff_get_format() callback. ff_get_format() then sets the pixfmt to what the user has chosen.
zeezie01 has joined #ffmpeg-devel
abdu81 has quit [Ping timeout: 240 seconds]
abdu81 has joined #ffmpeg-devel
cone-590 has joined #ffmpeg-devel
<cone-590>
ffmpeg Andreas Rheinhardt master:6f31b05389ae: avcodec/intrax8dsp: Constify DSP functions
<cone-590>
ffmpeg Andreas Rheinhardt master:ee1408cd6698: avcodec/flacdsp: Remove leftover encoding function pointers
<cone-590>
ffmpeg Andreas Rheinhardt master:90d9e2a26c9c: avcodec/intrax8dsp: Copy several bytes at once
<cone-590>
ffmpeg Andreas Rheinhardt master:fa39f07a2943: avcodec/get_bits: Remove LONG_BITSTREAM_READER
<cone-590>
ffmpeg Andreas Rheinhardt master:90ed5ddf664f: avcodec/proresdec: Deduplicate debug message
<cone-590>
ffmpeg Andreas Rheinhardt master:8ad2daec587b: avcodec/proresdec: Don't use LONG_BITSTREAM_READER
<cone-590>
ffmpeg Andreas Rheinhardt master:57d892bd7b22: avcodec/prores{dec,dsp}: Remove always-false checks
<cone-590>
ffmpeg Andreas Rheinhardt master:802e4f4a53b1: avcodec/proresdec: Disable HWAccel at compile-time when possible
<cone-590>
ffmpeg Andreas Rheinhardt master:f1a4787f76cc: avcodec/proresdsp: Make put_pixels truely ptrdiff_t compatible
<cone-590>
ffmpeg Andreas Rheinhardt master:37cf9c53259e: avcodec/simple_idct_template: Move function to its declaration
<cone-590>
ffmpeg Andreas Rheinhardt master:e7ca57d857a5: avcodec/simple_idct: Move ProRes-only code to proresdsp.c
<cone-590>
ffmpeg Andreas Rheinhardt master:deee2fb52d4a: avcodec/proresdec: Reuse permutation
<cone-590>
ffmpeg Andreas Rheinhardt master:e71b3ebaa5b4: avcodec/lcevcdec: Use proper include
abdu81 has quit [Quit: Client closed]
abdu81 has joined #ffmpeg-devel
<Lynne>
mkver: where does the yuv420p->nv12 remapping happen for hwaccels?
<mkver>
Lynne: ff_get_format will return nv12 and decoders will set it to avctx->pix_fmt.
<Lynne>
ah, right, I had forgotten, the hwaccels do get queried via frame_params
<fflogger>
[newticket] groucho86: Ticket #11486 ([avcodec] Half Float EXR with PIZ compression decode with artifacts) created https://trac.ffmpeg.org/ticket/11486
<Lynne>
the vulkan code uses the profile/level/codec to get a list of values from the driver it can decode to, it then converts the list to pixfmts and uses av_find_best_pix_fmt_of_2 to find the best one to output
abdu81 has quit [Ping timeout: 240 seconds]
minimal has joined #ffmpeg-devel
abdu has joined #ffmpeg-devel
Tanay has joined #ffmpeg-devel
psykose has quit [Remote host closed the connection]
psykose has joined #ffmpeg-devel
<haasn>
Lynne: no
<haasn>
what is that even?
<haasn>
is it purely informational?
<Lynne>
no, its the number of bits actually contained for each pixel
<Lynne>
it would help cut down on the pixfmt zoo by eliminating GBRAP12, GRAY12, GRAY14, GBRP10 and so on
System_Error has joined #ffmpeg-devel
abdu69 has joined #ffmpeg-devel
abdu has quit [Ping timeout: 240 seconds]
Tanay has quit [Quit: Leaving]
<haasn>
oh yeah that would certainly be nice
<haasn>
in libplacebo land I don't even distinguish between rgba, brga, etc
<haasn>
nor between gbrp and yuv444p
<haasn>
actually neither does nuscale care
<haasn>
the matrix decode step is wholly separate from the pixel reading/decoding
<Lynne>
cool
<Lynne>
it would have to be propagated and negotiated everywhere, though
<haasn>
clearly we should have a struct AvFormat that groups together all of the encoding properties
<haasn>
like what I hand to invent in the form of SwsFormat for nuscale
<haasn>
I'm not sure how to gracefully handle the dithering operations in nuscale
tanay-man has joined #ffmpeg-devel
<haasn>
so, right now I have a single operation type for dither-and-clamp-to-range, which takes a dither matrix and a value range for each channel, or {0} to leave a channel untouched
<haasn>
e.g. when scaling ya8 you only need to dither y and a channels but can skip the chroma components
<haasn>
the problem is that I then have an NxM number of implementations for each combination of dither size and channel layout
rvalue has quit [Read error: Connection reset by peer]
<haasn>
because there are 2^4=16 possible arrangements of which channels to operate on
<haasn>
well, minus one for the case of no active components
<haasn>
and then you have 16 functions for each size of dither matrix
rvalue has joined #ffmpeg-devel
<haasn>
I considered separating them into a clamp op and a dither op, where the dither op is performed on all channels
<haasn>
and then defining only optimized special cases for a subset of clamp+dither op pairs that are actually used/common
<haasn>
where this special case can then skip dithering the unclamped channels
<haasn>
although I guess that's not really well-defined
<haasn>
alternatively we could branch inside the dither op
<haasn>
that might be the least evil
<haasn>
and then just skip over inactive channels
<haasn>
or we could redefine the dither op to only operate on one channel at a time, but then you have a full function call per channel instead of a conditional jump per channel which is probably even worse
System_Error has quit [Remote host closed the connection]
<cone-590>
ffmpeg Niklas Haas master:c85879c60122: avfilter/vf_libplacebo: set colorspace properties on all inputs
<cone-590>
ffmpeg Niklas Haas master:651bfd0dad07: avfilter/vf_libplacebo: set correct alpha mode before blending
SafeLeader has quit [Quit: Client closed]
SafeLeader has joined #ffmpeg-devel
<fflogger>
[editedticket] Player701: Ticket #10915 ([undetermined] using hardware encoding and decoding, change the resolution of videos, and merge them using concat) updated https://trac.ffmpeg.org/ticket/10915#comment:1
<cone-590>
ffmpeg Lynne master:85d81dcfd6f9: hwcontext_vulkan: enable read/write without storage
<cone-590>
ffmpeg Lynne master:bb87d19cd972: ffv1enc_vulkan: disable autodetection of async_depth
SafeLeader has quit [Quit: Client closed]
<haasn>
Lynne: any reason not to add YUVA support to vulkan hwctx?
<haasn>
certainly more useful than UYVA which is the only way to get yuva currently
<haasn>
by YUVA I mean yuva420p etc
<Lynne>
no one has requested it, and I haven't had the need to use it
<Lynne>
should be as easy as adding an entry in hwcontext_vulkan.c
<BBB>
how did paul not yet learn that you don't ask-to-ask, you just ask
<BBB>
I'm happy to answer his questions (and probably many with me) if only he asked the question
<JEEB>
he did actually point at some code he had written and ask whether it was correct, but then proceeded to never repost that part
aaabbb has quit [Remote host closed the connection]
<BBB>
doesn't show up in my history, sadly
<JEEB>
meanwhile I actually wanted to play some video from a PS3 game. that reminded me that I should probably try to resurface a patch that enables audio playback by adding an ATRAC3 parser.
<JEEB>
if I recall correctly it was blocked from merging years ago due to the parser setting channel layouts and other parameters (something something thread safety), but then again aren't a bunch of parsers doing that?
<JEEB>
will have to rebase and double check
<haasn>
Lynne: oh, we can't map them to planar formats like we do with 3plane yuvp
<haasn>
but I guess we can map them the same way as gbrp
<Lynne>
yup
<Lynne>
(I guess you meant multiplane images)
<haasn>
also interesting that yuva420p12 doesn't exist
<haasn>
but all the other yuva4xxpN combos do
<haasn>
oversight?
aaabbb has joined #ffmpeg-devel
<haasn>
seems like 12 bit formats were added later
<Lynne>
yup, there's been a bit of that
<Lynne>
I had to add GBRAP12 and so on
SafeLeader has joined #ffmpeg-devel
<SafeLeader>
BBB: i believe i have found correct solution for FIR phase shifter of arbitrary phase shift angle, its just normal hilbert coefficient + cos/sin of angle added to right taps
<SafeLeader>
for FIR: you either convolve all FIR filters if they are processed in serial fashion or simply sum taps for parallel combined FIRs
<BBB>
blowfish, adpcm, getcpu.cpp with Detect_MMX_Availability()
<devinheitmueller>
BBB: Oh wow, is that the real code? Very exciting...
<BBB>
lzw
<BBB>
yeah man, it's full of stuff
<BBB>
mplayer.cpp lol
<SafeLeader>
is there bink?
<devinheitmueller>
Are the game assets included, or do I need to find my 30 year old CD? :-)
<JEEB>
assets are probably still required to be acquired :)
<JEEB>
(and yes, I still have my CDs here)
<jamrial>
SafeLeader: unlikely, that'd not be code they could release
<BBB>
I have the CD, but my laptop no longer comes with a CD player
<BBB>
or a casette insert, or a zipdrive, floppydrive (3.5 or 5.25")
<BBB>
makes me wonder why I still have the cd
<devinheitmueller>
BBB: Well, you can come over and bring the CD, and I can rip it for you. :-)
<jamrial>
can get an external usb dvd writer for dirt cheap nowadays
<JEEB>
I have one USB blu-ray drive and like 6 or so years ago I bought a "UHD friendly" asus drive for my desktop
<devinheitmueller>
But yeah, I bought an USB external DVD drive on Amazon for $20.35 two years ago.
<jamrial>
JEEB: not like you can play uhd discs on new cpus ever since intel removed SGX :p
<jamrial>
at least not without extra considerations
<JEEB>
officially yea, thankfully makemkv takes care of the DRM part
<SafeLeader>
audiozap codec? never heard of!
<JEEB>
(also the makemkv author crafted firmware for certain drives that made it work better with UHD discs - that the drive did not officially support)
abdu69 has joined #ffmpeg-devel
Guest40 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
SafeLeader has quit [Quit: Client closed]
mkver has quit [Remote host closed the connection]
mkver has joined #ffmpeg-devel
philipl has quit [Ping timeout: 244 seconds]
SafeLeader has joined #ffmpeg-devel
zeezie01 has joined #ffmpeg-devel
ccawley2011 has quit [Ping timeout: 248 seconds]
SafeLeader has quit [Quit: Client closed]
<Lynne>
oh, right, do you have the link to that thread? I remember trying to find it
zeezie01 has quit [Read error: Connection reset by peer]
<JEEB>
or did you mean the ATRAC3 in MPEG-PS set?
<BtbN>
Could someone take a quick look at "avutil/timecode: add av_timecode_set_smpte"? Not a big change, just exposes existing code as public API.
MisterMinister has joined #ffmpeg-devel
<JEEB>
so uint32 to separate variables
<JEEB>
right, and then utilizing it from avcodec. I wonder if this should be done in the manner we've done some ff_ functions where in case of static library it's built once, while with shared it's then compiled into both
<JEEB>
that way it wouldn't have to be a public API (unless there would be clear benefits for having it as a public API)
DodoGTA has quit [Read error: Connection reset by peer]
<JEEB>
otherwise the whole int vs uint thing, those values are >=0 if I understand it correctly, so it might make sense to have them as unsigned (just like in the original code paths that are being changed in this set in both avutil and avcodec)
cone-590 has quit [Quit: transmission timeout]
<BtbN>
I'm not sure if having "unsigned" on a public function is safe
<BtbN>
though for the ranges those values are possibly ever in, it shouldn't matter
<BtbN>
And it's also in-line with the already existing reverse function, which is also public API
<JEEB>
yea. those values are always within uin8_t, even?
<BtbN>
yeah
<JEEB>
*uint8_t
<JEEB>
I wish C had ways of setting valid value ranges even if you wanted to utilize a normal (u)int for perf benefits
<JEEB>
(IIRC the smaller ones can be less performant or so?)
<JEEB>
not sure under which circuimstances
<JEEB>
and yea, I see uint32_t av_timecode_get_smpte() with ints there
<JEEB>
being utilized from avcodec, avdevice and avformat. I guess that is from before someone (mkver?) came up with the way of sharing ff_ functions between libraries
<BtbN>
I didn't check how old those functions are
ccawley2011_ has joined #ffmpeg-devel
<JEEB>
vscode showed 4 years for the get_smpte
<JEEB>
to be consistent and add a public API for an internal thing that needs to be shared, or to do what had recently been done for such cases...
<BtbN>
I could at least remotely see this to be useful API for some application
ccawley2011 has quit [Ping timeout: 252 seconds]
<haasn>
Neat
<haasn>
Gained 10% speedup in nuscale with this one weird trick
<haasn>
Turns out when you convert e.g. yuv444p to gray8 you don't actually need to read all three input planes...
<haasn>
And I was wondering why all of my conversions to grayscale were so slow :)
<JEEB>
sure, but given that with a quick patchwork search this doesn't seem to have popped up in these four years I'm wondering how requested this would have been. I would side towards only having an internal shared ff_ API. another way of checking things would be to see if there would be any comments if we wanted to deprecate the API towards the other way.
<haasn>
Now we beat old swscale for conversions to grayscale, for everything except yuv444p -> gray8 (where we're merely equal)
<JEEB>
if we can actually find API usage of `av_timecode_get_smpte` in the wild, then I might be willing to side the way of public API as well
<haasn>
although for e.g. yuva444p -> ya8 we still read all four planes because I don't have a way to represent "holes" in my input reading code..
<haasn>
also need to apply this optimization to packed code as well
<JEEB>
haasn: yea, unneeded planes not needing reading can probably improve perf indeed :)
<haasn>
(though miraculously our code for yuva444p -> ya8 is still faster than swscale despite reading all planes)
<haasn>
we solve a full bidirectional dependency/knowledge path for all of the components at each step
<haasn>
to eliminate unneded operations like unneded dithering when the input can be guaranteed to be an integer
<haasn>
this is actually sometimes the case for very high bit depth upconversions
<haasn>
e.g. in rgb565 to gbrp10 we only actually need to dither the G channel
<haasn>
since 1023/31 is an integer :)
<thardin>
sounds like something that could become arbitrarily complicated
Guest40 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<thardin>
could one supply say an accuracy parameter saying "any conversion that gets within +-X of perfect is fine"
<thardin>
question mark
c1480 has quit [Quit: WeeChat 4.1.1]
c1480 has joined #ffmpeg-devel
ccawley2011_ has quit [Ping timeout: 265 seconds]
Guest40 has joined #ffmpeg-devel
f_ has joined #ffmpeg-devel
philipl has joined #ffmpeg-devel
<haasn>
thardin: in this case it’s more of an unintended side effect
<haasn>
The main point is to skip dithering for things like gray -> rgb
<haasn>
Or yuv8 -> yuv10
<haasn>
The basic idea is to have simple format handling code generate a comprehensive list of operations to get from A to B, coupled with a complex optimizer that can optimize it down to the bare essentials
<haasn>
Rather than the alternative of having complicated format handling code
<haasn>
It scales much better with complexity imo
<haasn>
Since each format can be implemented independently and doesn’t need to know about any other format
<haasn>
Rather than the status quo of having NxM special cases
<haasn>
thardin: in theory we could support that, in practice just disable dithering
<haasn>
I’m not sure what else you would expect from such an option
<haasn>
Oh, actually, it could be used to size LUTs
sparsh-n has quit [Quit: Client closed]
<haasn>
One of the things I plan to add is an optimization pass that can convert a complex series of operations into a LUT
<haasn>
And if we know the target accuracy we can calculate the error
<haasn>
But that’s future pipe dreams; for now, it is fast enough even without LUTs
iive has joined #ffmpeg-devel
witchymary has quit [Remote host closed the connection]
<thardin>
might be good to at least pave the way for such a setting
<thardin>
it also sounds a bit like something that'd need an SMT solver in general (:
c1480 has quit [Read error: Connection reset by peer]
c1480_ has joined #ffmpeg-devel
DodoGTA has joined #ffmpeg-devel
<haasn>
thardin: not sure what an smt solver would be doing here, but keep in mind that this is a purely linear series of dependencies
<haasn>
No forks or back references
<haasn>
And the optimizer state is purely additive, ie. information is only ever added to the system
<haasn>
While the optimizer itself is purely subtractive, every optimization only deletes or reduces operations
abdu69 has quit [Quit: Client closed]
HarshK23 has quit [Quit: Connection closed for inactivity]
sparsh-n has joined #ffmpeg-devel
sparsh-n has quit [Client Quit]
ccawley2011_ has joined #ffmpeg-devel
Arcitec has joined #ffmpeg-devel
<fflogger>
[newticket] root670: Ticket #11487 ([undetermined] displaymatrix side data carried through to output when overlay filter is used) created https://trac.ffmpeg.org/ticket/11487
Guest40 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]