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.0.2 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
thilo has quit [Ping timeout: 252 seconds]
thilo has joined #ffmpeg-devel
mkver has quit [Ping timeout: 245 seconds]
arch1t3cht5 has joined #ffmpeg-devel
arch1t3cht has quit [Ping timeout: 252 seconds]
arch1t3cht5 is now known as arch1t3cht
<cone-616>
ffmpeg David Rosca release/7.0:345855af80ab: lavc/vaapi_decode: Make it possible to send multiple slice params buffers
<cone-616>
ffmpeg David Rosca release/7.0:96e648ddbc10: lavc/vaapi_av1: Avoid sending the same slice buffer multiple times
Krowl has quit [Read error: Connection reset by peer]
deus0ww has joined #ffmpeg-devel
IndecisiveTurtle has quit [Ping timeout: 244 seconds]
jamrial has joined #ffmpeg-devel
Livio has quit [Ping timeout: 252 seconds]
Krowl has joined #ffmpeg-devel
<haasn>
what operation does rnd_avg_pixel4 correspond to? is it just elementwise (a+b+1) >> 1 ?
<haasn>
for context, the bitwise definition is (a | b) - (((a ^ b) & ~BYTE_VEC32(0x01)) >> 1)
<kurosu>
I think so, the goal was to stay on 8bits arithmetics. Not sure if ffmpeg or x264 was the first to do it
<Lynne>
plugging the expression into python doesn't seem like it does a+b+1>>1
<kurosu>
cf PAVGB_MMX macro
<Lynne>
wow, that code's from 2003
<Lynne>
d8085ea727f8768c3ef62d988df79cda6c052301
<Lynne>
yeah, a+b+1>>1 is an instruction they added specifically for mpeg4
<kurosu>
Too much code refactoring/moving around for my git-fu to track when PAVGB_MMX was introduced, but probably related as that was probably useful for either hpel or bidir
<kurosu>
though MPEG2 hpel is weird (needs to do (a+b+c+d+2) >> 2 iirc)
<kurosu>
(_pixels*_xy2)
IndecisiveTurtle has joined #ffmpeg-devel
sm2n has quit [Write error: Connection reset by peer]
sm2n has joined #ffmpeg-devel
KyleSiefring_ is now known as KyleSiefring
Krowl has quit [Read error: Connection reset by peer]
<haasn>
yeah (a+b+1)>>1 gives me correct results in checkasm
<Lynne>
pretty sure a+b+1>>1 would be faster than the bitwise expression, 3 instructions instead of 4, it ought to be replaced
<haasn>
isn't it about not needing to widen?
<haasn>
I guess it only matters on 32 bit CPUs
Krowl has joined #ffmpeg-devel
IndecisiveTurtle has quit [Ping timeout: 265 seconds]
<courmisch>
don't all self-respecting SIMD have averaging instructions?
<haasn>
I don't think RISC-V V does? The closest I could find is vwaddu.vv + vnclipu.wi, but that's two instructions (one of which is widening)
<courmisch>
vaadd(u)
<haasn>
d'oh, missed it
galad has quit [Remote host closed the connection]
<ramiro>
do you guys think it would be helpful to print the cpu model name from /proc/cpuinfo for checkasm --bench?
<another|>
yes
<Lynne>
there was a plan to hopefully replace checkasm with dav1d's checkasm, you should send it there too
<Lynne>
and to make the program an external dep like x86inc
<ramiro>
meh, apparently each architecture prints a different kind of string for cpu model.
<ramiro>
when adding a new unscaled colorspace converter, what metric should I include in the commit log? it's certainly faster and more accurate than going through the default filtering, but I don't know if we already have a tool that measures that.
<ramiro>
haasn: maybe you have an idea ^^^
<ramiro>
another|: that's a good start. I was thinking a bit more specific information (such as "Raspberry Pi 5 Model B Rev 1.0" from the rpi5).
<nevcairiel>
another one? maybe join haasn on improving sws, or work on vf_colorspace? :D
Livio has joined #ffmpeg-devel
<ramiro>
nevcairiel: I'm just scratching my own itch and adding gbrp output to yuv2rgb :)
<nevcairiel>
so its just part of sws?
<nevcairiel>
or was there another yuv2rgb module somewhere i forgot
<ramiro>
nevcairiel: part of sws
<another|>
ramiro: might be difficult to get such specific info from SOCs
Krowl has quit [Read error: Connection reset by peer]
mkver has quit [Ping timeout: 255 seconds]
<courmisch>
ramiro: maybe define per-arch functions for CPU vendor and model?
<courmisch>
TBH, what I'd most want are: speed ratii to C and right-aligned measurements
Krowl has joined #ffmpeg-devel
wastekoko has quit [Ping timeout: 260 seconds]
wastekoko has joined #ffmpeg-devel
mkver has joined #ffmpeg-devel
zsoltiv_ has quit [Ping timeout: 265 seconds]
\\Mr_C\\ has joined #ffmpeg-devel
<ramiro>
courmisch: for your before/after commit logs, and the multi-arch ones as well (C908/X60), do you manually align the results?
Workl has joined #ffmpeg-devel
Krowl has quit [Ping timeout: 252 seconds]
Workl has quit [Read error: Connection reset by peer]
zsoltiv_ has joined #ffmpeg-devel
ccawley2011 has quit [Read error: Connection reset by peer]
Krowl has joined #ffmpeg-devel
<courmisch>
ramiro: yes :(
<jdek>
courmisch: fwiw I have local patches for this, will submit this week
<jdek>
along with some other checkasm improvements
<cone-114>
ffmpeg Nathan E. Egge master:ba88e8174a84: lavu: Set default FF_TIMER_UNITS to "ns"
<cone-114>
ffmpeg Rémi Denis-Courmont master:cb31f17ca8f0: lavu/riscv: depend on RVB and simplify accordingly
<cone-114>
ffmpeg Rémi Denis-Courmont master:f30e5bf1f5f4: lavfi/riscv: depend on RVB and simplify accordingly
<cone-114>
ffmpeg Rémi Denis-Courmont master:616fdeaea30c: lavc/riscv: depend on RVB and simplify accordingly
<cone-114>
ffmpeg Rémi Denis-Courmont master:210877c5fd30: sws/riscv: depend on RVB and simplify accordingly
<cone-114>
ffmpeg Rémi Denis-Courmont master:d1326b63479f: lavu/riscv: drop probing for zba CPU capability
<cone-114>
ffmpeg Rémi Denis-Courmont master:e0f9f4d49153: lavu/cpu: deprecate RISC-V F, D and zba CPU flags
Livio has quit [Ping timeout: 252 seconds]
Livio has joined #ffmpeg-devel
AbleBacon has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
darkstardevx has quit [Remote host closed the connection]
darkstardevx has joined #ffmpeg-devel
<courmisch>
LinkedIn is down. I guess all the tech bros started looking for a new gig at the same time
markh has quit [Remote host closed the connection]
<ramiro>
jdek: what kind of improvements do you have for checkasm?
<courmisch>
AI code gen
<ramiro>
courmisch: ah, but then we'd have to write a checkai tool...
iive has joined #ffmpeg-devel
<jdek>
ramiro: porting most of the david features over, easy csv outputs, automagically deciding no. of iterations at runtime without user needing to guess
<ramiro>
I am thinking of a way to collect a bunch of checkasm --bench stdout outputs into separate files, then have a python script to magically align output from before/after runs or different arches.
<ramiro>
jdek: oh, csv output could come in handy.
<jdek>
already have this as one of the main usecases of the improvements
<courmisch>
I want a progress bar
<courmisch>
and a Microsoft ETA
<ramiro>
courmisch: one of the first programs I wrote when I was a teenager was the Progress Bar Simulator (in visual basic). good times... good times...
<JEEB>
:D
<jdek>
ramiro: static iterations + csv output on multiple devices can both just be thrown into a sheet and easily make a graph
<courmisch>
pfft, CSV. Serious people use ASN.1
* JEEB
throws TSV into the mix
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg-devel
rvalue has quit [Remote host closed the connection]
markh has joined #ffmpeg-devel
rvalue has joined #ffmpeg-devel
<jdek>
JEEB: yea have --csv and --tsv for those who prefer
<jdek>
both formats should be easy for people to modify post so don't see any benefit in adding anything like xml for this (seems very overkill..)
<JEEB>
yea, for data like benchmarks X separated values should be mighty enough
<another|>
jdek: that reminds me, I also have some unfinished porting patches laying around
<courmisch>
this needs an SQL export function
<wbs>
ramiro: I already have such python scripts, for printing checkasm results from multiple different CPUs
wastekoko has quit [Read error: Connection reset by peer]
<wbs>
ramiro: I run bench-all, which runs three jobs in parallel, which each scp the checkasm binary to a different host and runs checkasm there, then waits for the results, and prettyprints them
<wbs>
ramiro: so when tuning assembly, I directly see if a change makes it better on one cpu but worse on another one
aaabbb_ has quit [Ping timeout: 272 seconds]
aaabbb_ has joined #ffmpeg-devel
Coinflipper has quit [Ping timeout: 248 seconds]
Coinflipper has joined #ffmpeg-devel
<ramiro>
wbs: great! do you think this functionality could be added as scripts in the ffmpeg repo?
<wbs>
ramiro: I'm not really sure if it'd fit in there - the formatting scripts maybe could fit in, while the ones for driving the benchmarking definitely are too user specific
<cone-114>
ffmpeg Michael Niedermayer master:79a1cf30d128: avformat/wavdec: Check if there are 16 bytes before testing them
<cone-114>
ffmpeg Michael Niedermayer master:3978e81809a3: avformat/img2dec: Clear padding data after EOF