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 6.1.1 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
rvalue has quit [Ping timeout: 255 seconds]
mkver has quit [Ping timeout: 264 seconds]
rvalue has joined #ffmpeg-devel
Livio has quit [Ping timeout: 256 seconds]
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
iive has quit [Quit: They came for me...]
cone-598 has quit [Quit: transmission timeout]
kurosu has joined #ffmpeg-devel
<rodeo> looking at https://trac.ffmpeg.org/ticket/10883 and https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/69a042e which introduced the 5-byte skip for KLV metadata streams (as well as support for synchronous KLV); before the above commit, https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/9282fbb introduced support for asynchronous KLV (seemingly w/out 5-byte skip), and I'm guessing this is likely what #10883 is dealing with?
thilo has quit [Ping timeout: 264 seconds]
thilo has joined #ffmpeg-devel
<Lynne> "Xtended HE-AAC, Xcellent efficiency, Xtraordinary quality, Xceptional reliability, Xcelerate audience share, and Xclude high streaming costs"
<Lynne> whoever wrote this' organs likely torpedoed away at xtreme speeds to escape embarassement
j45_ has joined #ffmpeg-devel
j45 has quit [Ping timeout: 268 seconds]
j45_ is now known as j45
j45 has quit [Changing host]
j45 has joined #ffmpeg-devel
* Sean_McG keels over laughing
System_Error has quit [Ping timeout: 260 seconds]
lemourin has joined #ffmpeg-devel
lemourin has quit [Killed (lead.libera.chat (Nickname regained by services))]
System_Error has joined #ffmpeg-devel
jarthur has quit [Quit: jarthur]
jamrial has quit []
kurosu has quit [Quit: Connection closed for inactivity]
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
<llyyr> Lynne: is there a branch with an updated version of the av1 vulkan patchset?
<llyyr> got merged in mesa
<Lynne> not yet
<Lynne> the spec had issues that the mesa av1 patchset did not update for, it was just rushed into master for no good reason
<llyyr> oh
<llyyr> and apparently it doesn't even build https://gitlab.freedesktop.org/mesa/mesa/-/issues/10700
<Lynne> hah, mesa doesn't even build at all on clang-18, which is why I use gcc
<Lynne> clang treats some stupid completely false off by one mistake in an snprintf() as a hard error
Martchus has joined #ffmpeg-devel
Martchus_ has quit [Ping timeout: 256 seconds]
AbleBacon has quit [Read error: Connection reset by peer]
j45 has quit [Quit: ZNC 1.8.2 - https://znc.in]
j45 has joined #ffmpeg-devel
j45 has quit [Changing host]
j45 has joined #ffmpeg-devel
<Lynne> we should make profiles pseudo-codecs too
<Lynne> profile switching usually requires a full decoder teardown and lots of alternative code paths, it would be nice for lavc to handle this
<Lynne> with decoders calling ff_profile_switch(AVCodec *codec) or similar
<Lynne> I ended up reusing next to nothing with xhe-aac, and all the old code ended up holding back the new one
<Lynne> because of the awful channel layout map, it's limited to stereo atm, even though the codec can do 64 channel atmos
kurosu has joined #ffmpeg-devel
rooisnoek has joined #ffmpeg-devel
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
rooisnoek has quit [Quit: Leaving]
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
<JEEB> Lynne: since xhe-aac is the marketing name, which features are you actually talking about since IIRC you plan on ignoring USAC
<JEEB> also did you catch those reference test samples I posted earlier?
Sirtsu55 has joined #ffmpeg-devel
bjornw has joined #ffmpeg-devel
bjornw has quit [K-Lined]
bjornw has joined #ffmpeg-devel
Sirtsu55 has quit [Quit: Client closed]
j45 has quit [Quit: ZNC 1.8.2 - https://znc.in]
j45 has joined #ffmpeg-devel
j45 has quit [Changing host]
j45 has joined #ffmpeg-devel
stevenliu_ has quit [Ping timeout: 264 seconds]
Traneptora has quit [Ping timeout: 240 seconds]
bjornw has quit [Ping timeout: 250 seconds]
mkver has joined #ffmpeg-devel
cone-043 has joined #ffmpeg-devel
<cone-043> ffmpeg J. Dekker master:570052cd2a38: avcodec/aarch64/hevc: add luma deblock NEON
stevenliu has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
kurosu has quit [Quit: Connection closed for inactivity]
<cone-043> ffmpeg J. Dekker master:e4c0cdf8df96: avdevice: deprecate opengl outdev
<cone-043> ffmpeg J. Dekker master:2b17a74df5fb: avdevice: deprecate sdl outdev
bjornw has joined #ffmpeg-devel
stevenliu_ has joined #ffmpeg-devel
stevenliu has quit [Read error: Connection reset by peer]
stevenliu_ has quit [Remote host closed the connection]
bjornw has quit [Quit: Client closed]
bjornw has joined #ffmpeg-devel
Livio has quit [Ping timeout: 260 seconds]
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
Guest38 has joined #ffmpeg-devel
kurosu has joined #ffmpeg-devel
Poorvagaikar2003 has joined #ffmpeg-devel
Poorvagaikar2003 has quit [Ping timeout: 268 seconds]
rvalue has quit [Ping timeout: 264 seconds]
Livio has joined #ffmpeg-devel
<elenril> \o/
Guest38 has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
bjornw has quit [Ping timeout: 250 seconds]
bjornw has joined #ffmpeg-devel
stevenliu has joined #ffmpeg-devel
jamrial has joined #ffmpeg-devel
bjornw has quit [Ping timeout: 250 seconds]
stevenliu_ has joined #ffmpeg-devel
<kierank> jdek: god tier
<haasn> so does that mean we now have an established precedent for deleting old, broken, unmaintained code?
stevenliu has quit [Ping timeout: 268 seconds]
<kierank> do sonic next!
<haasn> jamrial: uh yeah, *none* of the frame side data types have corresponding entries in ffprobe.xsd
<haasn> this file is more than out of date
<jamrial> haasn: ok, then don't bother i guess
<jamrial> i assumed it was up to date
<jamrial> what is it for then?
<haasn> I mean I could add all
<haasn> but to be honest I'm not sure who needs it or how to test my additions or what it's even useful for
<haasn> clearly the source code is documentation /s
<elenril> ffprobe sure could use a proper maintainer
<elenril> I never really understood how its syntax is supposed to work
<haasn> in this xsd side data is just treated as opaque
<JEEB> the xsd is supposed to be utilized to verify the output XML schema, no?
<jdek> kierank: ok
<JEEB> haasn: E_NOT_SURPRISING
<haasn> there's some reference to "packetSideDatumType" which is supposed to be a key/value pair but I don't see such values being output anywhere in ffprobe
<JEEB> try outputting -of xml for a bit and see if it just has a key and value things everywhere?
cone-043 has quit [Quit: transmission timeout]
<haasn> hmm I think this xsd only corresponds to the structure imposed by writer_print_section_header / writer_print_section_footer
<haasn> with the actual attributes on each element being implicit
<haasn> but even that seems very out-of-date, with some things not mapped at all, e.g. SECTION_ID_PROGRAM_STREAM_DISPOSITION
<JEEB> yea
<JEEB> it probably is very rarely updated
<JEEB> since nobody notices it
<JEEB> it's not tested automagically and all
<haasn> it would be easier to add if there was an established precedent for how to extend this by new frame side data types but given that they're _all_ currently not implemented..
<haasn> huh
MisterMinister has quit [Ping timeout: 246 seconds]
<haasn> somehow print_int() et al translate to <side_datum key="foo" value="bar"> in this file
<haasn> curious
<haasn> and using <components> etc. somehow breaks that
<haasn> ofc <components> doesn't exist in this xsd at all
<haasn> oh, right, I was the one who added that
novaphoenix has quit [Quit: i quit]
novaphoenix has joined #ffmpeg-devel
Livio has quit [Ping timeout: 260 seconds]
stevenliu has joined #ffmpeg-devel
<haasn> /mem/ffprobe.xml:2: element ffprobe: Schemas validity error : Element 'ffprobe': No matching global declaration available for the validation root.
<haasn> uh oh
stevenliu_ has quit [Ping timeout: 264 seconds]
<BBB> removing sonic isn't exactly new
<BBB> jdek: did you check previous discussions re: that subject?
<jdek> BBB: I wasn't aware there were any
<jdek> let me check
<BBB> [FFmpeg-devel] [PATCH] Remove Sonic experimental audio codec
Livio has joined #ffmpeg-devel
stevenliu has quit [Remote host closed the connection]
<jdek> BBB: why was wavpack removed without a replacement encoder
<BBB> dunno
stevenliu has joined #ffmpeg-devel
<BBB> I'm not saying the patch is a bad idea
<BBB> I'm just suggesting you read the discussion to prevent a repeat outcome
<BBB> (if you hadn't yet)
<BBB> I don't care about sonic, I don't use it but like the hedgehog game. the movie sucked
<BBB> but since it's still there, supposedly someone else blocked removal in 2011
stevenliu_ has joined #ffmpeg-devel
<haasn> jamrial: well, I added what I could to the xsd (turns out it's orthogonal to my other series) but I can't verify it because no matter what I get errors from xmllint :')
<jamrial> there was no need, but cool anyway :p
stevenliu has quit [Ping timeout: 272 seconds]
<jdek> BBB: sure, thanks for the heads up anyway. At some point leaving unused and untested code 'just because' can no longer be justified, IMO at least. We'll see the response this time around I guess
<mkver> Can we also finally deprecate lowres (for those codecs that do not really contain lower resolution layers (like jpeg2000) already)?
<elenril> mkver: were there any arguments against?
<mkver> The lowres-removal from libav has been reverted in lavc because users supposedly want it (to simplify creating thumbnails for preview).
<Lynne> just send a patch to remove it, no one will disagree
<Lynne> err, actually nevermind, better deprecate it if you want to
<ePirat> mkver, would that mean breaking having low-res but faster j2k decoding?
<Lynne> ^^that
<kierank> I think lowres if properly tested is useful
<mkver> j2k would not be affected; there would just be a lowres option for it instead of the generic option.
<kierank> and there are people that use it
<mkver> kierank: Then why have you never implemented lowres for the mpeg4 studio profile?
<kierank> because trying to understand the tangled mess of mpeg4/h263 code is painful enough
<ePirat> mkver, ok because iirc that was useful to be able to play DCPs on not super powerful hw
<elenril> embrace the MpegEncContext
<jdek> should we leave codec ids as-is, even for dead codecs? doesn't seem like they should be deprecated
<mkver> Because removing them is an API break and therefore needs a proper deprecation.
Guest38 has joined #ffmpeg-devel
stevenliu has joined #ffmpeg-devel
stevenliu_ has quit [Ping timeout: 264 seconds]
<jdek> Im asking if they should even be deprecated at all
<jdek> i.e. should we just leave them in
<jdek> seems useful to be able to tell a user that a sample is expected to be dead codec #x even if we cant decode it anymore
<jdek> otherwise sure, I'll just deprecate the codec id
<mkver> Ok, leave the id as-is.
<jdek> ok
stevenliu_ has joined #ffmpeg-devel
stevenliu has quit [Ping timeout: 260 seconds]
stevenliu has joined #ffmpeg-devel
stevenliu_ has quit [Ping timeout: 246 seconds]
Guest38 has quit [Read error: Connection reset by peer]
stevenliu_ has joined #ffmpeg-devel
stevenliu has quit [Ping timeout: 246 seconds]
<Lynne> JEEB: could you relink the xhe-aac testsamples?
<JEEB> latter contains all of MPEG-4 Audio in general (AAC as well as the other formats within MPEG-4 Audio)
Livio has quit [Ping timeout: 255 seconds]
<JEEB> (and yes they seem to have a format called ass)
<JEEB> > AudioSyncStream flavor of LOAS
<haasn> who do I ping to add fate samples?
<haasn> https://0x0.st/HRpZ.ivf -> fate-suite/av1/film_grain.ivf
<Lynne> JEEB: thanks
<jdek> haasn: me
stevenliu has joined #ffmpeg-devel
<mkver> Why does ff_h264_idct8_add4_8_sse2 switch to MMX in the middle of the function (lines 338-359 in h264_idct.asm)?
stevenliu_ has quit [Ping timeout: 264 seconds]
AbleBacon has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
<haasn> thanks
<JEEB> this is why suite having a git repo with MR/PR flow would be nice :3
stevenliu_ has joined #ffmpeg-devel
<haasn> aye
stevenliu has quit [Ping timeout: 255 seconds]
stevenliu_ has quit [Read error: Connection reset by peer]
<Lynne> oh no, there's an xhe-aac sample which does not use the xhe object type and gets identified as regular aac
<haasn> how do I force ffprobe to use a specific decoder?
<haasn> in a fate test
<haasn> I want to test both av1dec and libdav1d
<JEEB> yea not sure if that is mapped in ffprobe :D
<JEEB> otherwise it would be -c:v av1dec
<haasn> sad
Livio has quit [Quit: leaving]
<haasn> actually that makes it very much impossible for me to test film grain synthesis in av1dec unless ffmpeg is compiled without libdav1d..
<haasn> ah nvm I guess I can use a transcode / framecrc test
<JEEB> haasn: avcodec_find_decoder switched to some specific decoder name with `-c` option or so
<JEEB> should probably be quite possible?
<JEEB> want to try or should I post a branch?
Livio has joined #ffmpeg-devel
<mkver> jdek: Why do you check and store whether the deprecation warning has already been emitted?
<jdek> mkver: elenril wanted it to only output once
<mkver> And the write_header function is only called once.
<mkver> Don't bother sending a patch for this.
<jdek> will push a fix a bit later then
<mkver> I actually meant: don't even bother fixing this.
<jdek> ok...
<thardin> gah, python's wavefile module doesn't support waveformatex
Livio has quit [Ping timeout: 264 seconds]
kurosu has quit [Quit: Connection closed for inactivity]
* rodeo wonder if using ffmpeg in lieu of ffprobe might not work? not a fix, more of a workaround
<JEEB> ffprobe does unnecessary things
<JEEB> argh
<JEEB> ffmpeg I mean
<JEEB> if you just want something to call the APIs and give you results, you use ffprobe
<JEEB> alternatively you write an API test doing similar stuff
iive has joined #ffmpeg-devel
Traneptora has joined #ffmpeg-devel
jarthur has joined #ffmpeg-devel
<thardin> SRT is extremely picky
<Lynne> avtransport is better
<thardin> alas I am compelled to use SRT
<thardin> maybe tsduck has saner defaults
<kierank> 17:59:36 <•Lynne> avtransport is better
<kierank> lol
<kierank> thardin: picky about what
<JEEB> btw how many people would be annoyed if we just bump our required x264 :P
<thardin> kierank: no idea. but it spews RCV-DROPPED
<JEEB> X264_BUILD 164 seems to be the highest checked for
<Lynne> kierank: on paper
<thardin> ffmpeg 6.0 seems to behave, compared to systemwide ffmpeg 5.1
<kierank> oh i have no idea about their error codes
<kierank> I could explain the protocol
<JEEB> grab BtbN's auto-build from master?
<thardin> going to try building latest master
<thardin> streaming from my laptop to the SRT endpoint gives those errors, but doing so from a VM running 6.0 does not
<thardin> hopefully ffplay with master is able to play it from my laptop
<thardin> *compiling*
<JEEB> ok, so 164 is from 2021-06-13
qeed has quit [Quit: qeed]
qeed has joined #ffmpeg-devel
marinko has joined #ffmpeg-devel
stevenliu has joined #ffmpeg-devel
Traneptora has quit [Quit: Quit]
rvalue has joined #ffmpeg-devel
MisterMinister has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
stevenliu_ has joined #ffmpeg-devel
stevenliu has quit [Ping timeout: 264 seconds]
Traneptora has joined #ffmpeg-devel
<Traneptora> lol /usr/include/SDL2/SDL_config.h:204: warning: "HAVE_PTHREAD_SETNAME_NP" redefined
<Traneptora> did they really define this in a global header
<mkver> Yes.
<Traneptora> figures
<BtbN> That doesn't look like a public header on first glance
<JEEB> mkver: got reminded of why I added the configure define as I tried to undo it: the FATE test I add requires that functionality.
<mkver> Yes, that seems like a legit reason.
Teukka has quit [Read error: Connection reset by peer]
<JEEB> I got as far as unapplying and `git checkout HEAD~1 -- configure`, and then started scrolling the diff to see if I missed anything :D
BBB has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
BBB has joined #ffmpeg-devel
<BtbN> Opinions on backporting the memory-alignment patch? It does not seem to have caused catastrophic mayhem on fata for master, and the ub exists in a ton of versions, potentially all of them.
Teukka has joined #ffmpeg-devel
Teukka has quit [Changing host]
Teukka has joined #ffmpeg-devel
<JEEB> jamrial: btw in which cases would you have an avbufferref as-is? in general I think of two cases regarding them in connection with AVFrameSideData: you either just want to create a thing for a new side data in whatever size it's supposed to be (in which case you want to create the side data with a buffer already allocated, or you just want to handle an existing side data entry
<jamrial> BtbN: wait for 7.0 to be tagged and people testing it
stevenliu_ has quit [Read error: Connection reset by peer]
<jamrial> JEEB: you can do cll = av_content_light_metadata_alloc(&size); av_frame_side_data_add(&sd, ..., cll, size);
<jamrial> you can also get such side data from a packet or stream
<jamrial> err, that signature above is wrong. av_frame_side_data_add() would take an avbufferref, so av_buffer_create in the middle of that
<jamrial> of course, it could very well just take data+size
<jamrial> but yeah, you can alloc the usual frame side data types in standalone form, and you can get them from packets or stream's codecpar
<JEEB> that was actaully a bit funny where you had to give the size where often the side data was of specific size
<JEEB> so you'd expect a "plz just give me a side data of this type"
<JEEB> kinda of an API call to be possible
<JEEB> esp. felt like that with the tests where I just wanted a valid side data entry :D
<jamrial> there's some side data types where the size can vary a lot, like AVVideoEncParams and the iamf related ones
<JEEB> "if the struct size is not supposed to be part of the ABI, then why am I having to add sizeof" >:|
<JEEB> yea, that I know
<JEEB> there are just some which are known structs
<jamrial> well, that's why av_content_light_metadata_alloc() and co give you the size :p
<JEEB> ┐(´д`)┌
<jamrial> but yes, there's sources other than already existing frame side data such buffers may come from, so the add function need to take a data+size or avbufferref input argument
<JEEB> first thing that came to my mind if the API couldn't be changed to just utilize a specific size as a request to check a lookup thing where the size function could just give you the right thing w/o manually having to call
<JEEB> as it just seems like unnecessary complexity with a bunch of cases
Livio has quit [Ping timeout: 246 seconds]
<JEEB> jamrial: also you still need to have more arguments because AVFrameSideData has metadata
<JEEB> unless we are talking about different functions
<JEEB> yea, side_data_from_sd
<JEEB> the internal add_side_data_to_set_from_buf is something I just refactored out of existing logic, and I don't require it to be public in this patch set
<JEEB> and side_data_new takes type and size
psykose has quit [Remote host closed the connection]
psykose has joined #ffmpeg-devel
<JEEB> so either I'm confused or the thing you're talking about is separate from what I add for my needs in this patch set
<Lynne> no choice, have to make xhe-aac a different file and have state + hooks into the main aac decoder at init/decode
<Lynne> there's nothing shared, other than data structures, and a few of the data structures are not adequate
<devinheitmuell-1> JEEB: Any chance any of your refactoring will result in supporting multiple pieces of side data with the same type? This has been a problem in the past with KLV stuff.
<JEEB> AVFrameSideData was like that already
<devinheitmuell-1> If you manually enumerated the side data fields you could access the data, but the regular getter functions would only return the first instance. Also, it doesn’t work with AVPacketSideData (and I needed similar behavior with both in order to output unregistered SEI data via decklink).
<JEEB> one could add an iterative function, but my patch set doesn't require that yet
<jamrial> JEEB: metadata can be copied manually
<jamrial> my point is, if you introduce a function to add a new side data entry, make it take a buffer of some sort and not an existing side data entry
<jamrial> because the latter is too restricting
<jamrial> if i want to add a side data of type frame_cll to an array from a packet that gives me a side data of type packet_cll, with the former signature i can, but not with the latter
<devinheitmuell-1> There are cases where a side data entry has multiple instances (such as 708 captions), but that model only really works when the size for each entry is the same.
<JEEB> then that would be two functions I'd say, one for the side data bufref and metadata copy, and another for that :P
<jamrial> but why would you add two helpers when one can work for both scenarios?
<JEEB> because why would I want to manually handle the metadata dict?
<jamrial> it's a single av_dict_copy after the side_data_add() call
<jamrial> if you want to add both helpers then that's ok. i just know that some people prefer to keep the symbols to a minimum
<JEEB> sure, and in which case the function without users will most likely get the comment
<JEEB> it's just a function that the patch set itself had no use for, which is why add_side_data_to_set_from_buf was only refactored and not made public
Livio has joined #ffmpeg-devel
* microchip_ farts
<microchip_> excuse me
kurufu has quit [Ping timeout: 255 seconds]
kurufu has joined #ffmpeg-devel
<Sean_McG> damn microchip_, what was in the food?! *holds nose*
<microchip_> :D
<microchip_> beans!
mkver has quit [Ping timeout: 246 seconds]
compnn has joined #ffmpeg-devel
compn has quit [Read error: Connection reset by peer]
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
<JEEB> jamrial: https://github.com/jeeb/ffmpeg/commits/avcodec_cll_mdcv_side_data_v7 see the w/ AVBufferRef commit
<jamrial> JEEB: looks good
<jamrial> JEEB: cosmetics wise, all the brackets you add to insert declarations in the middle of a block are kinda ugly :p
<JEEB> well it's either that or AVERROR_BUG for int ret likes
<JEEB> declare and define together is generally best
<jamrial> JEEB: i mean, https://pastebin.com/raw/pZYEzkTR looks a lot cleaner
<JEEB> but all the undefined values :<
<jamrial> what about them?
<JEEB> something something but if someone modifies the code and doesn't notice that the variable is declared but not defined
<JEEB> but yea since I moved the null on the top I guess I can utilize a AVERROR_BUG there too
<JEEB> (the idea is to initialize the value to something failing, nullptrs for pointers and error values for return codes)
<JEEB> if you have to initialize it before it actually gets utilized
<jamrial> ah, if you want to initialize the pointer to NULL and ret to 0 or bug then sure, that's ok
<JEEB> zero generally isn't nice for such return codes since it would lead to accidental all-OKs :)
<JEEB> you want it to be a value that would then during a check fail
<JEEB> jamrial: updated the branch
<JEEB> will probably post on ML tomorro^Wtoday after sleep and work
mkver has joined #ffmpeg-devel
iive has quit [Ping timeout: 268 seconds]
HarshK23 has quit [Quit: Connection closed for inactivity]
iive has joined #ffmpeg-devel
Livio has quit [Ping timeout: 264 seconds]
<Lynne> amd can't support high refresh rate over HDMI on linux because the consortium is forbidding it
<microchip_> Lynne: catch some sleep! :P
<llyyr> Lynne: how do Intel support it?
<llyyr> paying money?
<LaserEyess> they don't