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.1 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
halloy5771 has quit [Read error: Connection reset by peer]
<cone-867> ffmpeg Emma Worley master:854b8690a628: Add myself to MAINTAINERS for dxv/dxvenc
minimal has quit [Quit: Leaving]
halloy5771 has joined #ffmpeg-devel
<fflogger> [editedticket] MasterQuestionable: Ticket #11610 ([avfilter] Auto dummy-"split" for filters expecting > 1 input?) updated https://trac.ffmpeg.org/ticket/11610#comment:6
bilboed has quit [Ping timeout: 244 seconds]
Anthony_ZO has joined #ffmpeg-devel
blb has joined #ffmpeg-devel
bilboed has joined #ffmpeg-devel
halloy5771 has quit [Read error: Connection reset by peer]
<fflogger> [editedticket] MasterQuestionable: Ticket #11619 ([avcodec] "libopus" downmix (5.1 -> 2ch) unintended volume clipping) updated https://trac.ffmpeg.org/ticket/11619#comment:2
<fflogger> [editedticket] CosmicSkye: Ticket #9996 ([ffmpeg] Write joc_complexity_index to dec3 (EAC3SpecificBox), Windows and Android need it to play atmos) updated https://trac.ffmpeg.org/ticket/9996#comment:14
<Lynne> michaelni: err, you've added a person with 0 commits to maintainers?
<Lynne> oh, nevermind
mkver has quit [Ping timeout: 248 seconds]
usagi_mimi has quit [Quit: WeeChat 4.6.3]
jamrial has quit []
Martchus has joined #ffmpeg-devel
usagi_mimi has joined #ffmpeg-devel
Martchus_ has quit [Ping timeout: 252 seconds]
System_Error has quit [Ping timeout: 264 seconds]
<cone-867> ffmpeg Emma Worley master:6fdb54ddee69: lavc/hashtable: create generic robin hood hash table
<cone-867> ffmpeg Emma Worley master:2de0d095b84f: lavc/dxvenc: migrate DXT1 encoder to lavc hashtable
<cone-867> ffmpeg Emma Worley master:d4556c98f02e: lavc/dxvenc: improve compatibility with Resolume products
System_Error has joined #ffmpeg-devel
halloy5771 has joined #ffmpeg-devel
halloy5771 has quit [Quit: halloy5771]
System_Error has quit [Remote host closed the connection]
Chagalle has quit [Ping timeout: 248 seconds]
Chagall has joined #ffmpeg-devel
cone-867 has quit [Quit: transmission timeout]
ngaullier has joined #ffmpeg-devel
jkhsjdhjs has quit [Ping timeout: 268 seconds]
jkhsjdhjs has joined #ffmpeg-devel
nevcairiel has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
nevcairiel has joined #ffmpeg-devel
Kei_N has joined #ffmpeg-devel
Kei_N_ has quit [Ping timeout: 245 seconds]
<fflogger> [editedticket] nacioss: Ticket #11619 ([avcodec] "libopus" downmix (5.1 -> 2ch) unintended volume clipping) updated https://trac.ffmpeg.org/ticket/11619#comment:3
<ramiro> haasn: on swscale6_clean, by just setting "sws[1]->flags = mode.flags | SWS_UNSTABLE;", I get a failure in "./libswscale/tests/swscale -unscaled 1 -src yuv444p -dst argb": SSIM {Y=0.925251 U=0.975193 V=0.962438 A=1.000000}, loss 0.0660362 is WORSE by 0.0660214, expected loss 1.48416e-05
<ramiro> also with -cpuflags 0. the error oscillates between SSIM {Y=0.788072 U=0.857437 V=0.786510 A=1.000000} and SSIM {Y=0.660499 U=0.932519 V=0.900159 A=1.000000} with the same command line on different runs
<ramiro> valgrind doesn't complain. this is... odd. I haven't investigated further
<ramiro> also, this is on x86
<haasn> ramiro: I don't see this
<haasn> btw you can use -flags 0x100000 to test as well
<fflogger> [newticket] francoisk: Ticket #11620 ([avutil] av_malloc_array(): nmemb and size arguments transposed) created https://trac.ffmpeg.org/ticket/11620
j45_ has joined #ffmpeg-devel
<ramiro> haasn: hm, this started happening when I switched from gcc to clang. it works with gcc.
<ramiro> Debian clang version 14.0.6
j45 has quit [Ping timeout: 248 seconds]
j45_ is now known as j45
j45 has quit [Changing host]
j45 has joined #ffmpeg-devel
<haasn> Okay, that seems suspicious; I'll have a look
keith has quit [Remote host closed the connection]
keith has joined #ffmpeg-devel
System_Error has joined #ffmpeg-devel
<ramiro> haasn: also could you consider splitting ff_sws_solve_shuffle() into something like this: https://github.com/ramiropolla/ffmpeg/commit/4d65b3c2
<ramiro> for neon I have no issues with cross-lane shuffles. I have a shuffle mask of up to 128 bytes, and the num_groups calculation is a little bit different
<haasn> ramiro: can't you just always set size = 128 and then only use the subset that you care about? (i.e. the largest gcd of *read_bytes and *write_bytes that is a multiple of the lane size)
<haasn> not a huge fan of leaking the internal representation from inside ff_sws_solve_shuffle to the caller, but we can find a different solution
<haasn> e.g. we could have a minimum_size and a maximum_size
<haasn> or a lane_size and vector_size
<haasn> where lane_size = vector_size if cross-lane shuffles are not supported
<haasn> (or lane_size and max_lanes)
<fflogger> [newticket] Wallboy: Ticket #11621 ([ffmpeg] Add datetime/time prefix support for FFREPORT as well) created https://trac.ffmpeg.org/ticket/11621
<thardin> haasn: I told the local spotify guy about your scaling work. he sounded mighty impressed
<ramiro> haasn: setting size=128 and recalculating block_size/read_bytes/write_bytes after the call to ff_sws_solve_shuffle() works. it's not pretty, but it works. thanks for the suggestion!
<haasn> thardin: I don't suppose they would be interested in funding it?
Anthony_ZO has quit [Ping timeout: 260 seconds]
<haasn> ramiro: I was thinking that we should be able to output a separate or_mask to handle clearing to nonzero values
<haasn> or does NEON have a magic value that clears to 0xff?
<ramiro> haasn: no, I use an or mask. outputting a separate or_mask that supports all consts is a superior solution.
<haasn> okay, I will implement that (in a bit)
<haasn> useful for x86 as well
<haasn> I am a bit wary about growing the shuffle solver too much, since the idea was to _avoid_ having so many bespoke fast paths, in favor of having a fast general solution
<haasn> but we just can't beat existing asm without _some_ level of fast shuffle
<haasn> the alternative idea I had floating in my mind was to have a dedicated SWS_OP_SHUFFLE and optimize packed reads etc down to shuffle instructions
<ramiro> btw I think there was no non-ff const in the conversions that used the shuffle solver. I think I ended up getting rid of that TODO from my commit
<haasn> (this could be a generalization of byte swapping)
<ramiro> hadn't you already tried that and decided to do it otherwise? it would require some generalized packed/planar byte representation or something
<haasn> I don't remember exactly why I abandoned that idea
<ramiro> thardin: also if they're interested in funding neon optimizations also let me know :P
<ramiro> haasn: time to dig irclogs :)
<haasn> I was thinking gray -> vuyx could need a non-1/0 clear but gray is always full range
<haasn> anyways, I guess it's low importance
<haasn> but I think given that the implementation is basically the same anyways, I might as well write the code to support all clear values
<haasn> some food for thought is that if we end up splitting components into separate chains like I proposed several times, we may end up with some chains that actually have no SWS_OP_READ
<haasn> consisting of just SWS_OP_CLEAR and SWS_OP_WRITE
<haasn> you could revive your memset fast path for those
mkver has joined #ffmpeg-devel
jamrial has joined #ffmpeg-devel
<thardin> haasn: good question
<thardin> I think they have enough compute on the backend. biggest problem seems to be ||izing decode
<ramiro> haasn: yes, I kind of already do that with asmjit. if it's clear+(optional bswap)+write in a planar format, the clear is done only once in setup
<fflogger> [editedticket] francoisk: Ticket #11620 ([avutil] av_malloc_array() and av_realloc_array(): nmemb and size arguments transposed) updated https://trac.ffmpeg.org/ticket/11620#comment:2
<ramiro> haasn: another thing, one benefit of the memops neon backend I had written is that it aligns the writes. I haven't checked the impact vs just having a tight loop and unaligned writes, but if this is how memset/memcpy is implemented in libc, I guess it must be worth it.
<haasn> ramiro: what if you define av_memset16 and av_memset32 in libavutil?
<ramiro> haasn: that would be cleaner and make more sense
<ramiro> I had also added a left shift operator, but that's too specific. it might be better to just drop it and have a normal loop in the asmjit backend.
<ramiro> oh, and bswap16/32. that one might be useful as well.
<haasn> we could allow the packed shuffle solver to handle those
<haasn> I guess there's no real reason it currently forbids single plane outputs
<ramiro> haasn: I tried accepting either input or output as planar, but I quickly gave up. I just didn't try hard enough. but yes, that would help. especially with independent planes
<haasn> ramiro: https://bpa.st/raw/7OIQ
<haasn> that + plane splitting is my preferred solution here
<haasn> rather than trying to modify the solver to support planar
<ramiro> haasn: that helped with gray/yuvj444p/ya8/ya16be -> gray16[bl]e
<ramiro> I'm looking forward to seeing plane splitting :)
<ramiro> I think I'll finally be able to have all asmjit conversions being faster than legacy swscale
<ramiro> currently there are only a dozen or two that are slower, down to 0.5 or 0.7 iirc.
Traneptora has quit [Quit: Quit]
minimal has joined #ffmpeg-devel
<haasn> I kinda wanted to tackle scaling before plane splitting :p
<haasn> but I may procrastinate from that just a bit longer...
<haasn> Lynne: have you ever tried reducing the number of queues you allocate per VkDevice?
<Lynne> no, not really, do you think this would help with OOMs?
<haasn> nvidia in particular seems to take significantly longer to create devices the more queues you request, and I strongly doubt there is any practical performance benefit to allocating more than, say, 2 graphics queues
<fflogger> [newticket] lelegard: Ticket #11622 ([undetermined] Low bitrate data PID in MPEGTS disrupts live output rate) created https://trac.ffmpeg.org/ticket/11622
<haasn> at 16 graphics queues startup overhead is around 500 ms (!)
<Lynne> wow
<Lynne> that's pretty bad, yeah
<haasn> there also seems to be a static limit of 64 queues per.. process, I think
<haasn> actually I use only a single graphics queue as I never found any benefit to multiple
<haasn> (in libplacebo)
<haasn> if I try to create more than 7 VkDevices the 8th fails with VK_ERROR_INITIALIZATION_FAILED
<Lynne> there's a performance increase with using multiple video queues, beyond what just using multiple submissions
<haasn> with 1 queue per device I can create up to 63
<Lynne> I don't mind sending a patch to allocate 1 graphics queue unless it's the only queue
englishm has quit [Ping timeout: 268 seconds]
DauntlessOne496 has joined #ffmpeg-devel
DauntlessOne49 has quit [Ping timeout: 272 seconds]
DauntlessOne496 is now known as DauntlessOne49
englishm has joined #ffmpeg-devel
kylophone has quit [Ping timeout: 268 seconds]
Son_Goku has quit [Ping timeout: 268 seconds]
mindfreeze has quit [Ping timeout: 252 seconds]
termos__ has quit [Ping timeout: 252 seconds]
kylophone has joined #ffmpeg-devel
zulleyy3 has quit [Ping timeout: 252 seconds]
<haasn> Lynne: https://github.com/haasn/vulkan_limits I don't suppose you mind seeing if it affects your machine as well, and is not something weird about my environment / docker container setup?
<haasn> gcc -lvulkan vulkan_limits.c -g limits && ./limits device
Manouchehri has quit [Ping timeout: 268 seconds]
kurosu has quit [Ping timeout: 252 seconds]
termos__ has joined #ffmpeg-devel
Son_Goku has joined #ffmpeg-devel
zulleyy3 has joined #ffmpeg-devel
tortoise has quit [Ping timeout: 252 seconds]
<haasn> on RADV it creates 4095 devices in 500 ms and then fails with VK_ERROR_OUT_OF_HOST_MEMORY
Manouchehri has joined #ffmpeg-devel
<haasn> on nvidia it creates 7 devices in 4200 ms and then fails with VK_ERROR_INITIALIZATION_FAILED
<haasn> open source stronk
<Lynne> 7, 8 fails here
natto17 has quit [Ping timeout: 248 seconds]
<haasn> maybe you can ask your contacts at nvidia to unfuck their driver limits?
<Lynne> takes about 6 seconds here
<haasn> only being able to allocate 7 vulkan devices is kinda lol
<haasn> if I run two processes concurrently it already fails at 3-4 per process now
<haasn> so I think it is a true limit in the driver
<Lynne> I'll ask them
sdc has quit [Ping timeout: 272 seconds]
natto17 has joined #ffmpeg-devel
<Lynne> so, for the entire system, you can only have no more than 7 vulkan-using processes
<Lynne> ?
kurosu has joined #ffmpeg-devel
<haasn> that would appear to be what I'm seeing
<haasn> well, assuming 16 queues per device
<haasn> I'm not sure why the relationship between the number of queues and the number of devices I can allocate is not 1:1
HarshK23 has quit [Ping timeout: 248 seconds]
sdc has joined #ffmpeg-devel
mindfreeze has joined #ffmpeg-devel
ngaullier has quit [Read error: Connection reset by peer]
tortoise has joined #ffmpeg-devel
ngaullier has joined #ffmpeg-devel
realies9 has quit [Ping timeout: 248 seconds]
realies9 has joined #ffmpeg-devel
<Lynne> how has no one encountered this up until now?
<haasn> hmm, it's weird though
<haasn> if I spawn 16 processes that each allocate and indefinitely hold a VkDevice, I still only run into issues after the 7th device
<haasn> but now, if I try to create devices from two different threads, I get a segfault inside libnvidia_egl.so
Traneptora has joined #ffmpeg-devel
HarshK23 has joined #ffmpeg-devel
Kwiboo has quit [Quit: .]
Kwiboo has joined #ffmpeg-devel
<Lynne> I'm not sure I want to keep contributing with softworks having push rights
<Lynne> he should not have had commit rights, and this is why
<jamrial> Lynne: just tell him that no, he shouldn't push his set just yet
<jamrial> and that he needs to address the remaining requests
<kierank> I love the way softworkz is the one thing nearly everyone can agree on in this project
<haasn> to be fair, that list grows a lot longer for any reasonable definition of "everyone in this project"
<mkver> Has he threatened to just push his subtitle patches?
<jamrial> no, just said he would after what he considered was no objections
ngaullier has quit [Remote host closed the connection]
devinheitmueller has joined #ffmpeg-devel
toots5446 has joined #ffmpeg-devel
<toots5446> Hi all!
<toots5446> Is Andreas Reinhardt connected here?
<jamrial> that'd be mkver
<toots5446> Thanks!
<mkver> You are Romain Beauix?
<toots5446> That's me!
<toots5446> mkver: did you like the rewritten vorbis extradata patch?
<mkver> No. Writing an email right now.
<toots5446> ok thanks
<mkver> toots5446: Done
<mkver> "Some of those conversations predate my archive of the ML so may need to be restated for me to understand."
<mkver> Who/What is this Devlist archive?
TheVibeCoder has joined #ffmpeg-devel
<TheVibeCoder> Lynne: I got A-SPX in AC-4 much more useful, still if joint A-SPX is used I get crap in hf spectral part
minimal has quit [Read error: Connection reset by peer]
minimal has joined #ffmpeg-devel
devinheitmueller has quit [Quit: devinheitmueller]
devinheitmueller has joined #ffmpeg-devel
devinheitmueller has quit [Ping timeout: 276 seconds]
devinheitmueller has joined #ffmpeg-devel
microlappy has joined #ffmpeg-devel
microlappy has quit [Quit: Konversation terminated!]
<fflogger> [editedticket] nyanmisaka: Ticket #11618 ([ffmpeg] hwupload filter fails with "Cannot allocate memory" for VA-API on AMD RX 7900 XT (Navi 31) preventing H.264/HEVC hardware encoding initialization.) updated https://trac.ffmpeg.org/ticket/11618#comment:3
TheVibeCoder has quit [Ping timeout: 240 seconds]
minimal has quit [Read error: Connection reset by peer]
minimal has joined #ffmpeg-devel
TheVibeCoder has joined #ffmpeg-devel
TheVibeCoder has quit [Quit: Client closed]
<thardin> this EDL stuff in mov.c is very cursed
<thardin> we shouldn't do NLE things
<JEEB> yea dae had patches to expose it as virtual time line metadata
<JEEB> so that API clients can thus apply it, since it's not exactly someting that can well be done within the demuxer :D
<thardin> ye
<thardin> again, for NLE stuff, users should use libmlt
<thardin> what happens if an EDL cuts on anything other than an IDR frame?
<thardin> what happens if periodic intra refresh is used?
<thardin> this is why the word "no" is the most powerful word in the English language
IndecisiveTurtle has joined #ffmpeg-devel
HarshK23 has quit [Quit: Connection closed for inactivity]
<compn> mov is a cursed container
<thardin> it's not that bad. in this case it's more that there's business logic in the demuxer
<thardin> which is a recurring issue with lavf
<thardin> I've got about half of the index related stuff in mov.c converted to segmented indexes now
<compn> hows vlc mov demuxer going
<thardin> enough for today I think
acryo has quit [Quit: ZNC 1.8.2 - https://znc.in]
acryo has joined #ffmpeg-devel
acryo has joined #ffmpeg-devel
acryo has quit [Changing host]
witchymary has quit [Ping timeout: 265 seconds]
witchymary has joined #ffmpeg-devel
<fflogger> [editedticket] Balling: Ticket #9996 ([ffmpeg] Write joc_complexity_index to dec3 (EAC3SpecificBox), Windows and Android need it to play atmos) updated https://trac.ffmpeg.org/ticket/9996#comment:15
<fflogger> [editedticket] Noki0100: Ticket #11618 ([ffmpeg] hwupload filter fails with "Cannot allocate memory" for VA-API on AMD RX 7900 XT (Navi 31) preventing H.264/HEVC hardware encoding initialization.) updated https://trac.ffmpeg.org/ticket/11618#comment:4
<fflogger> [editedticket] Noki0100: Ticket #11618 ([ffmpeg] hwupload filter fails with "Cannot allocate memory" for VA-API on AMD RX 7900 XT (Navi 31) preventing H.264/HEVC hardware encoding initialization.) updated https://trac.ffmpeg.org/ticket/11618#comment:5
linkmauve has left #ffmpeg-devel [Error from remote client]
<fflogger> [newticket] giuseppeM99: Ticket #11623 ([ffplay] FFplay crashes when seeking in .ogg file with images) created https://trac.ffmpeg.org/ticket/11623
<fflogger> [editedticket] MasterQuestionable: Ticket #11619 ([avcodec] "libopus" downmix (5.1 -> 2ch) unintended volume clipping) updated https://trac.ffmpeg.org/ticket/11619#comment:4