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 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
ccawley2011_ has quit [Read error: Connection reset by peer]
Traneptora has joined #ffmpeg-devel
SystemError has joined #ffmpeg-devel
tufei__ has joined #ffmpeg-devel
tufei_ has quit [Remote host closed the connection]
System_Error has quit [Remote host closed the connection]
kekePower1 has joined #ffmpeg-devel
marcj has quit [Ping timeout: 252 seconds]
root has joined #ffmpeg-devel
ramiro__ has joined #ffmpeg-devel
root is now known as Guest5689
marcj has joined #ffmpeg-devel
ramiro has quit [Ping timeout: 252 seconds]
Guest4514 has quit [Ping timeout: 252 seconds]
kekePower has quit [Read error: Connection reset by peer]
<BtbN>
Is NG trying to get banned again or what is this toxis waste he just unloaded on the ml?
<JEEB>
he trying to infer from thardin's comment regarding one possibility being license switcharoos that it was actually a comment that something like that should be done was weird, too
<BtbN>
"This, sadly, your ilk has the power to enforce" that alone seems worth some ML-timeout to me.
cone-074 has joined #ffmpeg-devel
<cone-074>
ffmpeg Anton Khirnov master:b0e1bc6298ce: lavfi/vf_scale: fix AVOption flags for "size"/"s"
<cone-074>
ffmpeg Anton Khirnov master:d7cde009ce78: lavfi/avfilter: add an "auto" constant to the threads option
<cone-074>
ffmpeg Anton Khirnov master:8e35e33d42ef: fftools/ffmpeg_filter: stop accessing AVCodecContext.codec
<cone-074>
ffmpeg Anton Khirnov master:8c330853131e: fftools/ffmpeg_filter: do not pass OutputStream to set_channel_layout()
<cone-074>
ffmpeg Anton Khirnov master:b3864e7a080d: fftools/ffmpeg_filter: pass ts offset through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:651c79da362b: fftools/ffmpeg_filter: check that filter type matches output stream type
<cone-074>
ffmpeg Anton Khirnov master:e903c31fd159: fftools/ffmpeg_filter: pass keep_pix_fmt through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:606c71bb117a: fftools/ffmpeg: warn about ignored -enc_time_base for subtitles earlier
<cone-074>
ffmpeg Anton Khirnov master:9d5bf2d69e6a: fftools/ffmpeg_filter: pass enc_timebase through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:17702c5f7bfd: fftools/ffmpeg_filter: move the MJPEG format selection hack to muxer setup
<cone-074>
ffmpeg Anton Khirnov master:bc206ed1b363: fftools/ffmpeg_filter: stop accessing encoder AVCodecContext
<cone-074>
ffmpeg Anton Khirnov master:509afedaafa1: fftools/ffmpeg_filter: pass vsync method through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:82c7c21b1812: fftools/ffmpeg: drop OutputStream.is_cfr
<cone-074>
ffmpeg Anton Khirnov master:da80e0b07755: fftools/ffmpeg_filter: accept a caller-provided output name
<cone-074>
ffmpeg Anton Khirnov master:114cbaa316d7: fftools/ffmpeg_filter: drop a redundant check
<cone-074>
ffmpeg Anton Khirnov master:3c3e04c8a3fc: fftools/ffmpeg_filter: simplify retrieving filter type
<cone-074>
ffmpeg Anton Khirnov master:fc6354c39cb0: fftools/ffmpeg_filter: add an AVClass to OutputFilter
<cone-074>
ffmpeg Anton Khirnov master:23c23077fc79: fftools/ffmpeg_filter: drop an unnecessary use of OutputStream
<cone-074>
ffmpeg Anton Khirnov master:b8e6802023a5: fftools/ffmpeg_filter: pass sws/swr opts through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:83304f7c1f26: fftools/ffmpeg_filter: pass autoscale through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:a2892dbe0616: fftools/ffmpeg_filter: pass trim parameters through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:a4c940c86a46: fftools/ffmpeg_filter: move most of -apad logic to the muxer
<cone-074>
ffmpeg Anton Khirnov master:5b0589c8c37b: fftools/ffmpeg_mux: drop OutputFile.shortest
<cone-074>
ffmpeg Anton Khirnov master:bfeb751171c8: fftools/ffmpeg_mux: drop OutputFile.format
<cone-074>
ffmpeg Anton Khirnov master:f2c919252da4: fftools/ffmpeg_filter: accept encoder thread count through OutputFilterOptions
<cone-074>
ffmpeg Anton Khirnov master:d74cbcb9635f: fftools/ffmpeg_filter: drop OutputFilter.ost
<cone-074>
ffmpeg Anton Khirnov master:243a51490a85: fftools/ffmpeg_filter: only store complex filtergraphs in global array
<cone-074>
ffmpeg Anton Khirnov master:3d01996b242e: fftools/ffmpeg_filter: change processing order in fg_finalise_bindings()
<cone-074>
ffmpeg Anton Khirnov master:255ae0360121: fftools/ffmpeg_sched: allow filtergraphs to send to filtergraphs
<cone-074>
ffmpeg Anton Khirnov master:3bd7c5712574: fftools/ffmpeg_filter: implement filtergraph chaining
<cone-074>
ffmpeg Anton Khirnov master:baf17c15bec6: doc/ffmpeg: document that there can be multiple complex filtergraphs
<elenril>
haasn: is your lavc set pullable from somewhere?
<jdek>
wbs: the shebang issue is from running containers with qemu-user, essentially for non-native build farms. I guess it's related to how binfmt_misc interacts? I'm not 100% sure
<wbs>
jdek: ok, but wouldn't it be good if others who read the mailing list also would get to know that?
<jdek>
yes of course, just clarified where it was coming from now. The #! without space afterwards is purely a stylistic change, there can be any number of spaces after #! but I opted to just make it consistent. Will split the commits too, thanks for the comments
<wbs>
ok
cmp_ has joined #ffmpeg-devel
<andrewrk>
j-b: awesome, how was it?
cmp_ is now known as cmp
<jdek>
andrewrk: was pretty great
<j-b>
andrewrk: a-mazing.
<j-b>
andrewrk: this year, I want to do VDD in Korea, and if it does not work, we do Japan again.
<andrewrk>
are you suggesting that vlc or ffmpeg would accept a zig audio filter?
<j-b>
andrewrk: VLC? clearly yes.
<andrewrk>
ok cool! I will do that :)
<j-b>
andrewrk: I want Zig in VLC.
<elenril>
andrewrk: doesn't zig insist on using its own build system?
<j-b>
I'm fed up with Rust in VLC, requiring to do bindgen, reverse-bindgen and so on.
<elenril>
j-b: consider C
<j-b>
elenril: C is crap.
* elenril
strangles j-b
<j-b>
Only truth makes people angry.
<andrewrk>
elenril: zig has a build system but you can also just use it to create an object file or static library
<andrewrk>
downsides to using it in vlc would be 1. instability (pre 1.0) and 2. an additional dependency (the zig compiler)
<andrewrk>
I'll go find my old VLC hoodie from Dublin and wear it for inspiration while making this patch
<jdek>
andrewrk: did you generate the build.zig in your ffmpeg fork
<jdek>
how*
<andrewrk>
by hand
<andrewrk>
in the readme there is a "update process" listed there, which gives you an idea of how it is maintained
cmp is now known as cmp_
<andrewrk>
the intent is still for applications to end up using a distribution's ffmpeg version where applicable; however my fork is handy for upstream application development. for example, it's already updated to 7.0 whereas linux distributions will take years to do that
<frankplow>
Very strange stuff, it sounds like it adds backing singers at the very low bitrates on that first sample
<jdek>
'Upstream devs didn't seem interested in the simple fix of `#include <libavcodec/bsf.h>` instead.'
<Lynne>
#ffmpeg-devel changed topic to: "evangelists and evangelism discussions"
<psykose>
Lynne: repent or burn in hell!
<j-b>
frankplow: interesting
<jdek>
andrewrk: you submitted this and it was rejected?
<andrewrk>
jdek: hmm, I think it was a mistake to word it that way, it's a bit aggressive, sorry about that. I only chatted about it here with one person about it. I didn't actually make a patch
<andrewrk>
I would be happy to make a patch
<andrewrk>
btw ffmpeg currently relies on UB in nasm
<andrewrk>
if you compile nasm with UBSAN, ffmpeg FTBFS
<andrewrk>
discovered when updating my fork to 7.0
<elenril>
for what purpose
<elenril>
ah, I remember now, nevermind
<andrewrk>
to simplify ffmpeg's build script
<andrewrk>
(and my fork's build script)
<andrewrk>
I mean I honestly think it's just good C hygiene
<frankplow>
thardin: Yeah there's >80MiB of model parameters and <5MiB of executable
<thardin>
"remember VQ? it's back, in GAN form"
<thardin>
I've seen some papers pointing out that a lot of these "AI" systems are just decision trees
<thardin>
I wonder what guarantees there are that the output actually resembles the input. with traditional codecs this can be guaranteed. the more black box-y and table driven the codec, the harder this is
<nevcairiel>
what people call "AI" is just ML, and ML at its core is complex decision trees
<elenril>
The thing that hath been, it is that which shall be; and that which is done is that which shall be done: and there is no new thing under the sun.
<thardin>
yeah. it's just fancy statistics
<thardin>
this has been explored in codec2. LPCnet has an ML based codec2 decoder that produces more natural sounding decodes than the stock decoder
<Lynne>
I wouldn't say lpcnet has anything to do with modern ML codecs
<Lynne>
all the audio is coming from a voicebox emulator
<Lynne>
rather than directly out of an ML
<Lynne>
is tsac not even open source?
<Lynne>
the archive just has binary and ML models
tufei_ has joined #ffmpeg-devel
<thardin>
the license seems to be bsd
<thardin>
total size of decompressed archive is 262M
tufei__ has quit [Remote host closed the connection]
<thardin>
how would one go about defining a standard based on something like this? hundreds of megs of model is hard to fit in an RFC
<thardin>
I guess one could provide a hash and IPFS link or something
<elenril>
>IPFS
<elenril>
a torrent file might look more respectable
<thardin>
respectability is a spook
<Lynne>
I'd just define a mechanism to provide weights out of band
<Lynne>
or just a standard set of weights, with a LoRA-like mechanism for each file to update or tune them
<Lynne>
I don't think *right now* is a good idea to publish or standardize ML
<Lynne>
a few months ago, a paper came out about a 1.58bit compression of weights, which requires to retrain from scratch
<thardin>
oh yeah the weights need compressing too. and yeah you could train on each individual sample if you like. but that's an old idea as well I think
<thardin>
perhaps KLT will come back into fashion. tensor units should make it practical
tufei_ has quit [Remote host closed the connection]
<thardin>
KLT plus some polynomial predictor thing
<Lynne>
1.58b isn't compression, it's just the model being trained to learn to overcome the reduced weights resolution
tufei_ has joined #ffmpeg-devel
<frankplow>
The latent space is interesting - if you feed in white noise there are what sounds like voices added, certainly some rhythm https://0x0.st/XiUf.out.wav
<Lynne>
perhaps a mechanism for some dynamic adaptation of actual models over the duration of the stream would help more rather than a explicitly signalled adaptation package
<frankplow>
It's a bit easier to hear if you lowpass filter
<thardin>
frankplow: not at all surprising. I wonder what size of corpus ffabrice has used ehre
<thardin>
because if it isn't hundreds of gigabytes at least then there is likely overfitting
<frankplow>
Even with a large dataset, the model will reflect the statistics of the input and precisely reproducing noise is unlikely to be a priority
<thardin>
yep
<thardin>
do any audio codecs try to model noise? I know celt did something like that
<Lynne>
I think the codec would have really benefitted from an anti-pop filter
<frankplow>
"audio grain synthesis"
<thardin>
right
<Lynne>
opus and aac do noise synthesis
Krowl has quit [Read error: Connection reset by peer]
<thardin>
in the codec2 world the point has been made that the human ear is akin to a set of FM demodulators
<Lynne>
ac4 too, vorbis doesn't
<Lynne>
thardin: is that a way of describing activity masking?
<thardin>
yes
<thardin>
much like an FM demod locks onto the strongest signal
<Lynne>
that's rather contrived, but okay
<thardin>
it works for speech (:
<Lynne>
rather than "locking in", there's a researched dependency between the amplitude of a tonal coefficient of a band and the masking it performs on the rest of the band
<thardin>
you could probably model that by mixing the signal with some shaped noise
<Lynne>
yeah, that's what Opus does :)
<Lynne>
and AAC doesn't, so it suffers from the infamous "spectral holes" that plague our encoder
<Lynne>
*used to plague our encoder, now it avoids them to the extent that it sacrifices quality
<Lynne>
Opus avoids them by simply rotating the coefficients in a vector such that the energy of a single tonal coefficient spreads out
<Lynne>
the decoder undoes the rotation after dequant
<thardin>
oh yeah I remember reading about that somewhere
markh has quit [Ping timeout: 246 seconds]
markh has joined #ffmpeg-devel
<haasn>
nowadays AI := "uses an attention head"
<thardin>
"AI" is the new "smart"
<Lynne>
...actually what tsac needs is a way to handle transients
<Lynne>
rather than an anti-pop filter
<Lynne>
https://0x0.st/XiUG.wav can be fully made listenable by just trading off frequency resolution for time resolution
jamrial has joined #ffmpeg-devel
tufei__ has joined #ffmpeg-devel
<Lynne>
ah... tsac seems like it's entirely file-at-once, rather than frame-based codec
tufei_ has quit [Remote host closed the connection]
<Lynne>
I think that's a dead end to adoption, no matter how efficient the codec is
<sdc>
Sort of related but thought you all
<another|>
for me it's the requirement of an nvidia gpu
<JEEB>
michaelni: just fyi Ubuntu ESM is the paid support tier @ Ubuntu, so it wouldn't be relevant to a normal user who doesn't want to go through "please tell us how many machines you have any give us your email so we can discuss pricing" kind of hoops
<JEEB>
it's very much enterprise
<JEEB>
not sure we want to consider the ESM support period as a thing where we need to support the built-in versions of f.ex. libx264
<JEEB>
then the Pro page just says ESM is a feature
<michaelni>
makes sense, have a page for corporate users who want to pay and are used to pay and under different name give the same for free to private people who are not willing to pay :)
<jamrial>
nevcairiel: just managed to crash mpc-hc twice with conformance vvc samples after they pulled your lavfilters update that includes the vvc decoder :p
<JEEB>
michaelni: yea, just funny when then the pro page links to the ESM page for more info, and that then is 100% about "get in touch" :D
<JEEB>
jamrial: ah, the classic stuff
<cone-854>
ffmpeg J. Dekker master:3090106635b3: configure: simplify bigendian check
<cone-854>
ffmpeg J. Dekker master:fcfd17dbb4a6: ffbuild/libversion.sh: add shebang
<cone-854>
ffmpeg J. Dekker master:67e2f8b6bf5a: configure, etc: switch to shebang without space
<BtbN>
It's till scummy to hold back security updates, unless you sign up with them
<BtbN>
And then there's also a limit of 5 machines. I have more than 5 private machines.
<BtbN>
I wonder what'd be stopping you from just copying the packages from one machine to another either
<jamrial>
we're talking about a very old distro release
<JEEB>
they have started advertising it on their latest LTS as well, so people are now much more easily noticing that some packages don't get even 2 years of support in Ubuntu
<JEEB>
I think that's what BtbN is mentioning
<JEEB>
I think FFmpeg related packages are atm already in the Pro-only stuff with 22.04 which was slightly WTF
<JEEB>
there before used to be a tool available in ubuntu to show the support period of installed packages, but I'm not finding that in any modern search results
<BtbN>
22.04 is not very old even. It's the latest lts
<nevcairiel>
jamrial: oh no its a two week old version of the decoder :D
<JEEB>
alternatively, it's a really scummy way of advertising some different build of FFmpeg in Ubuntu Pro
<JEEB>
(for the record, I don't consider providing additional support by itself scummy, it's actually one of the less bad business models - just that the confusing manner this stuff is being advertised to end users is what makes me scratch my hea)
<jdek>
the asahi guys took the stance that requesting exclude_guest = 0 should return EINVAL even if the option itself isn't supported because it's more correct
<kierank>
jamrial: lol clsid
<kierank>
that guy
<kierank>
must live in a mansion by now
<jamrial>
why?
<JEEB>
k-lite?
<kierank>
iirc that's the guy that does codec packs and installs spyware
<JEEB>
not sure re:spyware, but yea - he maintains k-lite
<JEEB>
probably some installer sponsor things?
<jamrial>
he's been developing mpc-hc ever since the original dev stopped
<JEEB>
yea
<kierank>
yeah but it has some kind of weird spyware on install
<JEEB>
I would guess k-lite is why he maintains ffdshow-tryouts and mpc-hc etc
<kierank>
yeah
<kierank>
he still ships weird acm stuff as well lol
<kierank>
which must be security hole central
<Daemon404>
wouldnt want a security hole to ship with your spyware
<jdek>
wbs: I think in theory our linux perf usage shouldn't work on non-x86 devices but in practice seems to only be asahi linux which requires exclude_guest = 1 since power, mips all work too
<wbs>
jdek: our perf api usage was added specifically for arm, though
<jdek>
Should we just always set exclude_guest = 1 then?
<wbs>
I have no idea about this api
<wbs>
just that I've used it on arm, and that's where it was primarily developed
<wbs>
also, the commit message of your patch on the ML feels like there's some negation missing or something
Livio has joined #ffmpeg-devel
<jdek>
> The exclude_guest option is currently only supported on x86. Omitting 'exclude_guest' defaults to zero which implies that you can count guest events should you run one. This creates an ABI issue whereby some strict kernels require specifying exclude_guest = 1 explicitly even though they do not support the option.
<jdek>
better?
<jamrial>
av_opt_serialize() does not look at child AVClasses?
Workl has joined #ffmpeg-devel
Krowl has quit [Ping timeout: 252 seconds]
Workl has quit [Read error: Connection reset by peer]
b50d has joined #ffmpeg-devel
<wbs>
jdek: still hard to read... what about, "The exclude_guest option only have an effect on x86. Omitting 'exclude_guest' defaults to zero which implies that you can count guest events should you run one. Some non-x86 kernels just ignore it, while others (e.g. the Asahi Linux kernels) require the user to set the option to 1, i.e. the only behaviour that makes sense when counting guest events isn't
<wbs>
supported.
<wbs>
jdek: I prefer to spell out the vague "some kernels" references, because usually I don't remember it myself what I referred to, 2 years later
Krowl has joined #ffmpeg-devel
j45_ has joined #ffmpeg-devel
j45 has quit [Ping timeout: 260 seconds]
j45_ is now known as j45
j45 has quit [Changing host]
j45 has joined #ffmpeg-devel
<BBB>
so, tsac
b50d has quit [Remote host closed the connection]
dykai has quit [Quit: dykai]
<jdek>
wbs: sure seems better thanks
Workl has joined #ffmpeg-devel
Krowl has quit [Ping timeout: 272 seconds]
cone-854 has quit [Quit: transmission timeout]
SystemError has quit [Remote host closed the connection]
SystemError has joined #ffmpeg-devel
ccawley2011 has quit [Read error: Connection reset by peer]
<thardin>
nicolas being his usual self I see
<kierank>
thardin: imo your post deliberately or otherwise came out too strong
<kierank>
I agree containers like TS and MXF do not fit well into ffmpeg
<kierank>
mp4 as well arguably
<kierank>
as FFmpeg is "designed" around AVI
<kierank>
And we could do without hacks
<kierank>
and let a container specific api lib do that
<kierank>
but it is annoying to have deps
<thardin>
kierank: eh, maybe
<thardin>
I still think we should keep business code outside of lavf, or at least segregated from the actual parsing
<kierank>
lack of layering is a problem yes
<thardin>
imagine a situation where we have libavbiz which acts much like git's porcelain layer
<thardin>
as opposed to mixing up porcelain and plumbing as lavf does now
<thardin>
perhaps it is too late for such a change
Workl has quit [Read error: Connection reset by peer]
<thardin>
also deps isn't that much of a problem in practice. I was surprised to see debian packagers enabled libcodec2 for example. which is partly why I've been trying to get more thorough testing in
<thardin>
I think michael's suggesting of adding a nut fourcc put me off, since it means subscribing to another ml
<thardin>
suggestion
ccawley2011 has joined #ffmpeg-devel
kasper93_ has joined #ffmpeg-devel
kasper93 has quit [Ping timeout: 240 seconds]
beastd has quit [Remote host closed the connection]
beastd has joined #ffmpeg-devel
<elenril>
kierank: i disagree that it's a fundamental problem with lavf
<elenril>
it can be fixed, it just requires some effort
<thardin>
at some point it's better to write your own demuxers, like vlc does
<thardin>
melt does as well, but has fallbacks to alvf
<thardin>
lavf
<elenril>
no
<elenril>
at every point it's better for us to fix our code
<thardin>
nah. we're engaged in a labour process. it just becomes a question of what takes more labour
<thardin>
I did some experimenting using hammer (a parser combinator library) a while back
iive has joined #ffmpeg-devel
<kierank>
I think lavf with callbacks could maybe help
<kierank>
On demux but not mux
kurosu has quit [Quit: Connection closed for inactivity]
Raz- has quit [Ping timeout: 252 seconds]
RT|AO has quit [Ping timeout: 260 seconds]
RT|AO has joined #ffmpeg-devel
Marth64 has joined #ffmpeg-devel
kasper93 has joined #ffmpeg-devel
kasper93_ has quit [Ping timeout: 260 seconds]
<thardin>
please no
<thardin>
lavfi is bad enough
<thardin>
those who have ever attempted to make one library using callbacks work with another library using callbacks will understand
kurosu has joined #ffmpeg-devel
kasper93 has quit [Remote host closed the connection]
<andrewrk>
do we prefer `#include <libavcodec/foo.h>` `#include "libavcodec/foo.h"`? I see it both ways
<JEEB>
stuff that is supposed to be included as part of FFmpeg itself would utilize ""
Marth64 has quit [Ping timeout: 256 seconds]
<andrewrk>
ok
<JEEB>
external API examples for example should utilize <>
<JEEB>
I guess ffmpeg cli also counts as an API usage
Marth64 has joined #ffmpeg-devel
<JEEB>
so if it's for inclusion of f.ex. avcodec stuff from avformat, it would be ""
<JEEB>
since it's one library including a project copy of that header
<JEEB>
not something you might have in your sysroot
Sean_McG has joined #ffmpeg-devel
* Sean_McG
peeks in
<thardin>
hullo
<Sean_McG>
hi thardin
* Marth64
waves
<Sean_McG>
Marth \o
<Marth64>
<conspiracy>all OS and computers are spyware now, nothing left to run ffmpeg on</conspiracy>
<Marth64>
*upgrades to DOS*
<Sean_McG>
> upgrade
<Marth64>
:D
<Sean_McG>
Sebastinas: sad to see you had to disable AltiVec on the Debian 7.0 package -- wish I knew how to fix it