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 8.0 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
mkver has quit [Ping timeout: 260 seconds]
iive has quit [Quit: They came for me...]
_whitelogger has joined #ffmpeg-devel
secondcreek has joined #ffmpeg-devel
jamrial has quit []
Martchus_ has joined #ffmpeg-devel
Martchus has quit [Ping timeout: 248 seconds]
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20455 Add Windows.Graphics.Capture based video source filter (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20455#issuecomment-6889) by G⁠yanD
_whitelogger has joined #ffmpeg-devel
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20467 avfilter/vf_libplacebo: introduce fit_mode option (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20467#issuecomment-6890) by G⁠yanD
_whitelogger has joined #ffmpeg-devel
_whitelogger has joined #ffmpeg-devel
mkver has joined #ffmpeg-devel
Anthony_ZO has joined #ffmpeg-devel
kode54 has quit [Quit: The Lounge - https://thelounge.chat]
kode54 has joined #ffmpeg-devel
Anthony_ZO1 has joined #ffmpeg-devel
<fjlogger> [FFmpeg/FFmpeg] Pull request #20516 opened: avformat: add hxvs demuxer for IP camera (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20516) by q⁠uink
Anthony_ZO has quit [Ping timeout: 260 seconds]
Anthony_ZO1 is now known as Anthony_ZO
<fjlogger> [FFmpeg/FFmpeg] Pull request #20512 merged: avcodec/rkmppdec: Close decoder generically on init failure (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20512) by q⁠uink
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20511 avcodec/rkmppdec: fix input queue overflow (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20511#issuecomment-6897) by q⁠uink
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20511 avcodec/rkmppdec: fix input queue overflow (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20511#issuecomment-6900) by m⁠kver
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20511 avcodec/rkmppdec: fix input queue overflow (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20511#issuecomment-6901) by q⁠uink
Anthony_ZO has quit [Ping timeout: 256 seconds]
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20455 Add Windows.Graphics.Capture based video source filter (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20455#issuecomment-6902) by B⁠tbN
Anthony_ZO has joined #ffmpeg-devel
<fjlogger> [FFmpeg/FFmpeg] Pull request #20455 merged: Add Windows.Graphics.Capture based video source filter (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20455) by B⁠tbN
<fjlogger> [FFmpeg/FFmpeg] Issue #20361 closed: Desktop capture using Windows.Graphics.Capture on Windows (https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/20361) by B⁠tbN
<fflogger> [editedticket] oromit: Ticket #9413 ([avdevice] Feature request: WindowsGraphicsCapture API) updated https://trac.ffmpeg.org/ticket/9413#comment:14
veritgo235 has quit [Ping timeout: 256 seconds]
veritgo235 has joined #ffmpeg-devel
Anthony_ZO has quit [Ping timeout: 250 seconds]
minimal has joined #ffmpeg-devel
jamrial has joined #ffmpeg-devel
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20455 Add Windows.Graphics.Capture based video source filter (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20455#issuecomment-6908) by G⁠yanD
MisterMinister has joined #ffmpeg-devel
mkver has quit [Remote host closed the connection]
mkver has joined #ffmpeg-devel
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20455 Add Windows.Graphics.Capture based video source filter (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20455#issuecomment-6912) by B⁠tbN
<fjlogger> [FFmpeg/FFmpeg] Pull request #20511 closed: avcodec/rkmppdec: fix input queue overflow (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20511) by q⁠uink
mkver has quit [Ping timeout: 260 seconds]
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20516 avformat: add hxvs demuxer for IP camera (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20516#issuecomment-6916) by q⁠uink
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20516 avformat: add hxvs demuxer for IP camera (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20516#issuecomment-6918) by j⁠amrial
mkver has joined #ffmpeg-devel
_whitelogger has joined #ffmpeg-devel
<kasper93> BtbN: vsrc_gfxcapture.h is missing inlcudes
<kasper93> error: unknown type name 'AVClass'
<kasper93> error: unknown type name 'uint64_t'
<kasper93> and so on
<BtbN> Isn't it just missing in the skipheaders thing? It intentionally doesn't have any includes, since it's shared between C++ and C, which might need different ones
<BtbN> so it relies on the correct stuff being included before it
<kasper93> #20190 would catch it :)
<jamrial> why not check for __cplusplus and include the right things?
<jamrial> BtbN: in fact, you're including vsrc_gfxcapture.h within extern "C", so i guess you can safely include the needed headers in it
<kasper93> unless our headers are failing with cpp, which may be the case for some
<BtbN> I don't fully understand why the header needs to include anything. Isn't it fairly standard for such headers to depend on being included last?
<kasper93> I think policy in ffmpeg is that headers should be self-contained and include things they use, instead of realying on include order later.
<BtbN> Then I'll need to make this header C++ aware, and remove it from inside of the extern "C" block
<BtbN> cause it needs to include different things depending on C vs. C++
<BtbN> But isn't that what SKIPHEADERS is for?
<jamrial> how so? it defines a few enums, a struct, and some function prototypes
<BtbN> It uses stdint types
<BtbN> which use a different header in C++
<kasper93> you can safely include <stdint.h> in either c or c++
<BtbN> the more fun thing will be the actual C++ header
<BtbN> cause it'll be compiling that with a C compiler
<BtbN> maybe it'll have to be renamed to hpp?
<kasper93> if you indeed need c++ headers, this test won't work. Either you have .hpp like you said to compile it with c++ or just skip, if this is not compatible.
<BtbN> I think gcc itself is cool with just consuming C++ with gcc
<jamrial> checkheaders will ignore hpp headers i think
<BtbN> Well, right now it's just .h
<BtbN> but not sure how other compilers deal with C++ passed to the C compiler
<BtbN> Yeah... ./libavfilter/vsrc_gfxcapture_winrt.h:26:1: error: unknown type name ‘namespace’
<jamrial> that one should not be tested by checkheaders
<jamrial> since it's a c++ header
<jamrial> so add it to skipheaders or rename it to hpp
<kasper93> +1
<BtbN> checkheaders could also learn about .hpp
<BtbN> Though probably not worth the effort for one singular file
<Lynne> haasn: ping about adding the color temperature option in libplacebo
<Lynne> does anyone with a windows machine happen to have or doesn't mind installing davinci resolve?
<Lynne> the new version has prores raw support and I'd like to get a conformation what it outputs matches the apple decoder
<fjlogger> [FFmpeg/FFmpeg] Pull request #20517 opened: avcodec/aarch64/vvc: Optimize dmvr_hv_10 (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20517) by w⁠elder
<JEEB> Lynne: doesn't the linux version have it as well?
<fjlogger> [FFmpeg/FFmpeg] Pull request #20518 opened: avcodec/rkmppdec: Don't fill the decoder in low-delay mode (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20518) by c⁠gutman
<Lynne> I don't think their newest version is out for linux yet
<JEEB> seems to point at the same version 20 for all so far?
<Lynne> nice, though I'd like to avoid installing it, my goal is to get everything needed in blender
<BtbN> Didn't we already talk about that, or is it something else?
<jamrial> it's not compiling
<jamrial> this is not checkheaders
<BtbN> That looks like that builders mingw has a non-C++-compatible pthread.h?!
<BtbN> I'm... not sure how to deal with that
<jamrial> a configure time test to disable the filter maybe
<BtbN> But test what?
<wbs> BtbN: that's not how I reat it
<BtbN> C:/Dev/BuildEnv/mingw-w64/x86_64-w64-mingw32/include/pthread.h:176: error: conflicting declaration 'typedef uintptr_t pthread_t'
<wbs> to me it sounds like it ends up including the mingw pthread.h header while also including the ffmpeg w32pthread header
<BtbN> that's C++ treading "struct pthread_t" as the pthread_t type already, while C does not
<BtbN> *treating
<BtbN> Though it including both would also cause this, yeah
<BtbN> But I don't see how that'd happen
<wbs> oh right, c++ -> libstdc++, and libstdc++ can use pthreads and seem to pollute the code by implicitly including it
<BtbN> oh
<BtbN> The only idea to deal with that I'd have would be to switch back to std::thread
<BtbN> I've been using this with the w32thread wrapper the whole time though, and it builds fine for me
<BtbN> Yeah, I think std::thread is the only clean way out of this
<BtbN> kasper93: looks like the change will need undone either way :/
<fjlogger> [FFmpeg/FFmpeg] Pull request #20519 opened: avcodec/aarch64/vvc: Unroll vvc_bdof_grad_filter_8x_neon (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20519) by w⁠elder
<kasper93> BtbN: can't you make sure to not pollute namespace with pthread?
<BtbN> seemingly no, the C++ standard headers include pthread.h several layers deep
<kasper93> which ones?
<BtbN> But only sometimes? They don't for me. But they do on that fate instance
<jamrial> they do for me using mingw-w64 package from msys2
<jamrial> which i assume is the same as that instance
<BtbN> it's coming from #include <mutex>
<BtbN> Which makes some sense
<wbs> libgcc/libstdc++ can be configured with either "posix threads" or "win32 threads". earlier, you'd only get working c++11 threads with posix threads, but since GCC 13 or so, the win32 threads configuration should be equally featureful
<BtbN> I guess my local mingw must be in win32 mode then
<wbs> potentially, or there are other aspects involved as well
<kasper93> don't include <mutex> then?
<BtbN> And not do locking?
<BtbN> Mutexes are somewhat essential for this code
<kasper93> use ffmpeg wrappers
<BtbN> And NIH an entire set of C++ wrappers for them? I'd rather not.
<BtbN> Using ffmpeg/pthread thread functions in C++ is a minefield, since almost every function call and memory allocation can throw an exception, and each such exception without a lock-guard that auto-frees is an instant deadlock
<BtbN> So while using them is probably possibly, it would be extremely ugly and likely inflate the code with 100+ extra lines just to deal with exceptions left and right
<wbs> a RAII wrapper for a mutex should be like <10 lines of code though?
<BtbN> Plus one for the cond var, ...
<BtbN> Properly dealing with the cond vars in C++ without proper predicates is also annoying
<wbs> right, mutex+condvar makes it a bit more
<BtbN> I just don't see any downsides to just using std::thread and not needing to invent anything extra
<BtbN> It's Win32-only code. In the end it always ends up calling the same OS functions
<wbs> in any case, it sounds like a reasonable thing to use both threads+sync primitives from the same vendor, be that compat/w32pthread.h or the C++ library
<BtbN> I'd basically have to write an entire C++ compat layer for pthreads first, to use pthreads or our wrapper for them
<BtbN> And I just don't see the point
<BtbN> I'd be re-implementing std::thread, which already is sitting on top of pthreads, or win32 thread, depending on toolchain config
<fjlogger> [FFmpeg/FFmpeg] Pull request #20520 opened: avfilter/vsrc_gfxcapture: switch to std::thread (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20520) by B⁠tbN
<kasper93> I agree, I was commenting to use our wrapper to have consistent threading backend
<BtbN> Yeah, it'd be nice to use it. But there's problems with doing it.
<BtbN> And what other "threading backend" than Win32 OS threads even is there? It's not like Linux, where there could be multiple.
<BtbN> So I really don't see the issue.
<kasper93> yea
<BtbN> Even on Linux... what else but pthreads is there?
<BtbN> Manually spinning up threads with syscalls?
<kepstin> iirc both the modern "nptl" threads on linux and the old linuxthreads stuff in the end work using the clone syscall - and both implemented (at least partially) the posix threading apis.
<kepstin> that is admittedly just with glibc, although i'm pretty sure e.g. musl's threads are very similar.
<jamrial> BtbN: can confirm it builds now
<BtbN> With the PR I assume?
<jamrial> yes
<BtbN> The issue will only arrise if ffmpeg is configures opposite to the toolchain
<BtbN> pthread-toolchain and pthreads in FFmpeg will compile
<BtbN> but if they're opposite, no matter which direction, it'll fail
<fjlogger> [FFmpeg/FFmpeg] Pull request #20520 merged: avfilter/vsrc_gfxcapture: switch to std::thread (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20520) by B⁠tbN
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20520 avfilter/vsrc_gfxcapture: switch to std::thread (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20520#issuecomment-6957) by B⁠tbN
<BtbN> kasper93: wait, do you mean the availibility of SetThreadDescription needs to be checked? Or the wstring?
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20520 avfilter/vsrc_gfxcapture: switch to std::thread (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20520#issuecomment-6958) by B⁠tbN
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20520 avfilter/vsrc_gfxcapture: switch to std::thread (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20520#issuecomment-6959) by k⁠asper93
<fjlogger> [FFmpeg/FFmpeg] Pull request #20521 opened: avcodec/aacenc: add high energy check to exclude unsuitable bands from PNS (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20521) by A⁠gent45
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20520 avfilter/vsrc_gfxcapture: switch to std::thread (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20520#issuecomment-6965) by B⁠tbN
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20520 avfilter/vsrc_gfxcapture: switch to std::thread (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20520#issuecomment-6968) by k⁠asper93
<BtbN> It's generally how that filters gets away with just hard-requiring all those functions
<BtbN> its whole purpose is by far the most recent API addition
<BtbN> so if something even older is absent, there's no way gfx capture itself is there
<kasper93> nice test name
<kasper93> something failed to parse report
<BtbN> that base64 is just binary garbage as well
<mkver> There is an "[vost#0:0/rawvideo @ 0x124e0d740] Error submitting a packet to the muxer: No space left on device" in the stderr output of that box's hevc-conformance-IPRED_C_Mitsubishi_3 test; other tests have similar.
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20521 avcodec/aacenc: add high energy check to exclude unsuitable bands from PNS (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20521#issuecomment-6969) by A⁠gent45
<BtbN> nice to see the aac encoder improving
kimapr__ has quit [Remote host closed the connection]
Kimapr_ has joined #ffmpeg-devel
<fjlogger> [FFmpeg/FFmpeg] New comment on pull request #20500 fftools/cmdutils: Rename file_read to ff_file_read to avoid symbol conflict (https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20500#issuecomment-6971) by m⁠ichaelni
<jamrial> BtbN: c++ is being called to compile the ffmpeg binary now
wyatt8740 has quit [Ping timeout: 256 seconds]
<jamrial> is that intended?
<jamrial> g++, rather
<BtbN> yes
wyatt8740 has joined #ffmpeg-devel
<BtbN> if CC==LD, and -lstdc++ is on the linker commandline, it'll remove it and link with CXX instead
<BtbN> That fixes compatibility with other stdc++ like libc++
_whitelogger has joined #ffmpeg-devel
<BtbN> it's only an issue if you mix threading APIs, so if someone wants to write C++ with pure pthread for some reason, it's still useful
<BtbN> If you'd rather revert it, feel free. But the changes have zero impact on existing C code
<jamrial> nah
<jamrial> it's fine, it was just a suggestion
<BtbN> also keep in mind that std::thread support on mingw is still relatively recent
<BtbN> so if some other filter needs to use C++ but doesn't have the luxury of needing super up to date mingw anyway, it could be forced to use the pthread API
Anthony_ZO has quit [Ping timeout: 250 seconds]
Anthony_ZO has joined #ffmpeg-devel
minimal has quit [Quit: Leaving]