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
thilo has quit [Ping timeout: 256 seconds]
thilo has joined #ffmpeg-devel
thilo has quit [Changing host]
thilo has joined #ffmpeg-devel
mkver has quit [Ping timeout: 268 seconds]
<cone-827> ffmpeg Michael Niedermayer master:82cce209349d: doc/examples/qsv_transcode: Simplify loop
<cone-827> ffmpeg Michael Niedermayer master:c9c11a0866d4: doc/examples/vaapi_transcode: Simplify loop
<cone-827> ffmpeg Michael Niedermayer master:191950d1bfc3: doc/examples/qsv_transcode: Simplify str_to_dict() loop
<cone-827> ffmpeg Michael Niedermayer master:cae0f2bc5503: doc/examples/qsv_transcode: Initialize pointer before free
iive has quit [Quit: They came for me...]
arch1t3cht9 has joined #ffmpeg-devel
arch1t3cht has quit [Ping timeout: 264 seconds]
arch1t3cht9 is now known as arch1t3cht
lemourin has quit [Quit: The Lounge - https://thelounge.chat]
lemourin has joined #ffmpeg-devel
AbleBacon has quit [Read error: Connection reset by peer]
jamrial has quit []
geoffhill has quit [Quit: geoffhill]
Martchus_ has joined #ffmpeg-devel
Martchus has quit [Ping timeout: 260 seconds]
System_Error has quit [Ping timeout: 260 seconds]
System_Error has joined #ffmpeg-devel
cone-827 has quit [Quit: transmission timeout]
andrewrk has quit [Quit: ZNC - http://znc.in]
andrewrk has joined #ffmpeg-devel
galad has quit [Remote host closed the connection]
galad has joined #ffmpeg-devel
<Sean_McG> those 2 new iamf tests fail on big-endian
scat117 has quit [Remote host closed the connection]
scat117 has joined #ffmpeg-devel
<wbs> Sean_McG: they also fail on little-endian 32 bit
<Sean_McG> hm, and so they do
Krowl has joined #ffmpeg-devel
ngaullier has joined #ffmpeg-devel
<Sean_McG> .... does not fail on 64-bit BE so I guess this is the bitness not the endianness
ngaullie has joined #ffmpeg-devel
ngaullier has quit [Ping timeout: 268 seconds]
ccawley2011 has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
Krowl has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
Krowl has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
feiwan1 has quit [Read error: Connection reset by peer]
qeed has quit [Quit: qeed]
ramiro has quit [Ping timeout: 268 seconds]
ramiro has joined #ffmpeg-devel
Krowl has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
Livio has quit [Ping timeout: 268 seconds]
<haasn> what's the deal with how we sometimes use #define for flags and sometimes anonymous enums?
<haasn> is there a clear pattern or is it just randomly based on that author's feelings?
mkver has joined #ffmpeg-devel
<JEEB> I would guesstimate that older code utilized generic int, while newer code might be more likely to utilize enum
<Lynne> yeah, you can define stuff in structs next to fields is an advantage of defines
<Lynne> I prefer enums everywhere, even for bitfields, c23 surely isn't that far away to allow uint64_t enums
<haasn> should we strictly speaking strip metadata like AV_FRAME_DATA_SPHERICAL that can contain a bounding box when we resize something with vf_scale?
<haasn> because the bounding box will no longer be up-to-date
<haasn> (though I'm not sure if this bounding box is actually used in practice)
<thardin> reading up on mpegts some more, feeling inspired to try and write a hammer parser for it
<JEEB> as a protip: the 2021 edition is freely available as H.222 on ITU's side
<haasn> can hammer handle parsing structs where you need to do nontrivial processing (including memory allocation of temporary, dynamically sized arrays) mid-stream in order to know how the struct continues?
<JEEB> btw did we have variables affecting the reference file path in FATE? I thought if I could just add zlib-ng configure variable and then have a separate reference file for that :P
Krowl has quit [Read error: Connection reset by peer]
Krowl has joined #ffmpeg-devel
jamrial has joined #ffmpeg-devel
<beastd> Lynne, haasn, JEEB: Is there control over the type underlying enum in C11? If not I think that could be a hard reason against enum in some cases.
<JEEB> yea it seems like by default just int
<haasn> that seems orthogonal to my question
<haasn> but it requires C23
<haasn> before C23 the implementation can do whatever it wants
<JEEB> apparently by adding a value that's UINT_MAX makes it unsigned?
<haasn> for clarity, I was asking about: enum { A = 1, B = 2, C = 4 }; int flags; vs #define A 1 #define B 2 #define C 4 int flags;
<beastd> haasn: just might explain why it is sometimes not an option. otherwise i guess there were no strict rules to it and more in the hands of the individual authors and reviewers
<haasn> seems to me there's never a reason to prefer the latter
<JEEB> yea, for flags there generally isn't
<nevcairiel> is there a reason to necessarily prefer the former? usign an enum for values that are not enumerated always seem weird to me
<nevcairiel> seems like a purely stylistic choice to me
<JEEB> yea it's more or less just a grouping at that point
<haasn> nevcairiel: it makes `gdb` print out proper debug info for one
<haasn> or, well, I guess it doesn't make a difference for an `int` field
<nevcairiel> but if those are actual flags and you combine them into one value, how would gdb know?
<haasn> oh, but I think it fixes tab completion inside gdb etc.
<Lynne> compilers tend to optimize enums if they can, and can figure out if there's a large value in it that it should be a larger int
<Lynne> but that's not required
<haasn> yes, tab completion works for anonymous enums but not #define symbols inside gdb
<haasn> could be seen as a gdb shortcoming but it does go to show that using "first class" language features instead of a preprocessor has its advantages in principle
<Lynne> I've only ran into flags in enums issue with switch () statements, where if you don't have a default: the compiler will complain that not every case is considered
<beastd> i think for the bitflags use case an enum is conceptually wrong, but in reality it might have advantages as you say. just feels weird to construct values by ORing etc that aren't part of the defined enumeration at all.
<nevcairiel> these kind of things annoy me in compilers anyway, what if I only want to consider 2 out of a hundred cases, now i need to add the stupid default just so the compiler doesnt get in my way ... maybe i'm too old for such features :P
<haasn> Lynne: not if you switch on an `int`, as in my example
<haasn> if you're using anonymous enums as basically C equivalents of constexprs then you're not really using them as enumeration types
<Lynne> you can't switch the type or are you intentionally keeping it as an int?
<haasn> intentionally, for flags
<haasn> I don't think it's technically required for `enum Foo` to be able to represent values not defined in that enumeration
<haasn> actually there is one other advantage to using an enum for flag bits that I learned from vulkan
<haasn> enum VkFooFlagBits { VK_FOO_A = 1 << 0, VK_FOO_B = 1 << 2 }; typedef uint32_t VkFooFlags;
<haasn> this gives a name to the flag bits which can be helpful for source code navigation / documentation purposes
<haasn> since if I see e.g. /* combination of VkFooFlagBits */ I can immediately jump to its definition
<beastd> i guess to use the enum for enumerating the bits and an unsigned int for processing could work as a pattern for these flags use cases. still seems unnatural from the primitves used, but the advantages maybe outweigh the disadvantages (assuming there are no big disadvantages we don't think about right now)
<nevcairiel> enums seem to be getting more popular for this just to get it a tad more definition then just preproc macros, but even in C++ noone seemed to have created a fully featured bit-flags type :D
<JEEB> yea
<beastd> haasn: Is your concern about a specific code at hand that you want to change or create? or is it more about guidelines for the ffmpeg codecase?
<JEEB> latter so he can figure out how to add new code most likely
aaabbb has quit [Remote host closed the connection]
aaabbb has joined #ffmpeg-devel
<haasn> both; I just noticed inconsistent definitions in e.g. avutil/frame.h
<haasn> contrast enum AVSideDataProps with AV_FRAME_FLAG_* not soon after it
<haasn> AV_FRAME_CROP_ is again an enum, and FF_DECODE_ERROR_ is a #define
aaabbb has quit [Remote host closed the connection]
cone-741 has joined #ffmpeg-devel
<cone-741> ffmpeg James Almer master:5fc4a824db16: fate/iamf: don't demux packets in fate-iamf-5_1-{copy,demux}
aaabbb has joined #ffmpeg-devel
<beastd> haasn: in that case I think for your work choose what you prefer.
<beastd> haasn: for the general case: you could propose it on ml and the pattern could be added to the coding style doc if there is no strong argument against it.
<JEEB> > don't demux packets in a demux test :D is there a verb missing there or so?
<JEEB> (like "log" or "output")
* JEEB didn't check the commit itself yet
<beastd> haasn: could also think about providing e.g. additional enums or defines for consistency. though not really sure it's worth the double work for the deprecation period and the hassle for all our lib users. gut feeling tends to no.
<ePirat> haasn, IMO more enums would be great as it makes the docs much easier to navigate too…
<cone-741> ffmpeg Derek Buitenhuis master:bcae59b8982f: avutil/error: Add HTTP 429 Too Many Requests AVERROR code
<cone-741> ffmpeg Derek Buitenhuis master:b79260550b3d: avformat/http: Use AVERROR_HTTP_TOO_MANY_REQUESTS
<cone-741> ffmpeg Derek Buitenhuis master:fa006246932f: avformat/http: Don't bail on parsing headers on "bad" HTTP codes
<cone-741> ffmpeg Derek Buitenhuis master:a776d524e1fc: avformat/http: Rename attempts to auth_attempts
<cone-741> ffmpeg Derek Buitenhuis master:10374ab5eddd: avformat/http: Add options to set the max number of connection retries
<cone-741> ffmpeg Derek Buitenhuis master:31de02cf3191: avformat/http: Add option to limit total reconnect delay
<cone-741> ffmpeg Derek Buitenhuis master:5d568b16a0ab: doc/protocols: Re-order HTTP options to match http.c order
<cone-741> ffmpeg Derek Buitenhuis master:1f8e5b6d9533: doc/protocols: Fill in missing HTTP options
Krowl has quit [Read error: Connection reset by peer]
Krowl has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
qeed has joined #ffmpeg-devel
<BBB> I'm a bit confused by the 5yr plan thread... is the idea to generate a list of plans to work on and submit proposals for funding?
<BBB> or is it to generate ideas that are then considered pre-approved?
<BBB> or both? or something else?
<jdek> BBB: I think STF is orthogonal to this?
alien_lappy has quit [Quit: Leaving.]
<jamrial> BBB: it's to try and get people to come up with ideas to do something more than general maintenance and adding new codecs and filters
kurosu has joined #ffmpeg-devel
pmozil has joined #ffmpeg-devel
pmozil has quit [Remote host closed the connection]
pmozil has joined #ffmpeg-devel
pmozil has quit [Remote host closed the connection]
Krowl has quit [Read error: Connection reset by peer]
pal has joined #ffmpeg-devel
<frankplow> Has anyone tried implementing any of the ISO 23090 stuff in FFmpeg?
Krowl has joined #ffmpeg-devel
* Sean_McG peeks in
cone-741 has quit [Quit: transmission timeout]
Livio has quit [*.net *.split]
mkver has quit [*.net *.split]
andrewrk has quit [*.net *.split]
thilo has quit [*.net *.split]
deus0ww has quit [*.net *.split]
muiz has quit [*.net *.split]
novaphoenix has quit [*.net *.split]
skinkie has quit [*.net *.split]
georgereynolds8 has quit [*.net *.split]
unturned3 has quit [*.net *.split]
wcpan has quit [*.net *.split]
SuperFashi has quit [*.net *.split]
qeed has quit [*.net *.split]
rvalue has quit [*.net *.split]
chainik1 has quit [*.net *.split]
uartie has quit [*.net *.split]
Dariusz has quit [*.net *.split]
ngaullie has quit [*.net *.split]
jkhsjdhjs has quit [*.net *.split]
MisterMinister has quit [*.net *.split]
Fenrir has quit [*.net *.split]
rix has quit [*.net *.split]
quietvoid has quit [*.net *.split]
auri has quit [*.net *.split]
bcheng has quit [*.net *.split]
cworley has quit [*.net *.split]
thardin has quit [*.net *.split]
pal has quit [*.net *.split]
j45 has quit [*.net *.split]
philipl has quit [*.net *.split]
kepstin has quit [*.net *.split]
TheSashmo has quit [*.net *.split]
MetaNova has quit [*.net *.split]
RT|AO has quit [*.net *.split]
deer3 has quit [*.net *.split]
Son_Goku has quit [*.net *.split]
Fenrir has joined #ffmpeg-devel
deus0ww has joined #ffmpeg-devel
Son_Goku has joined #ffmpeg-devel
deer3 has joined #ffmpeg-devel
MetaNova has joined #ffmpeg-devel
RT|AO has joined #ffmpeg-devel
TheSashmo has joined #ffmpeg-devel
kepstin has joined #ffmpeg-devel
j45 has joined #ffmpeg-devel
philipl has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
pal has joined #ffmpeg-devel
thilo has joined #ffmpeg-devel
mkver has joined #ffmpeg-devel
ngaullie has joined #ffmpeg-devel
muiz has joined #ffmpeg-devel
andrewrk has joined #ffmpeg-devel
skinkie has joined #ffmpeg-devel
georgereynolds8 has joined #ffmpeg-devel
unturned3 has joined #ffmpeg-devel
wcpan has joined #ffmpeg-devel
SuperFashi has joined #ffmpeg-devel
jkhsjdhjs has joined #ffmpeg-devel
novaphoenix has joined #ffmpeg-devel
MisterMinister has joined #ffmpeg-devel
rix has joined #ffmpeg-devel
quietvoid has joined #ffmpeg-devel
auri has joined #ffmpeg-devel
thardin has joined #ffmpeg-devel
bcheng has joined #ffmpeg-devel
cworley has joined #ffmpeg-devel
Dariusz has joined #ffmpeg-devel
uartie has joined #ffmpeg-devel
qeed has joined #ffmpeg-devel
chainik1 has joined #ffmpeg-devel
rvalue has joined #ffmpeg-devel
qeed has quit [Remote host closed the connection]
qeed has joined #ffmpeg-devel
zsoltiv_ has quit [Quit: Left]
zsoltiv_ has joined #ffmpeg-devel
another| has quit [Remote host closed the connection]
ngaullie has quit [Ping timeout: 268 seconds]
another has joined #ffmpeg-devel
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
<BtbN> What is coverity going on about? "av_dict_set_int" frees array ""type"".
<BtbN> Why would av_dict_set_int free the key, ever?
<nevcairiel> if you set AV_DICT_DONT_STRDUP_KEY it can happen in some cases
MisterMinister has quit [Ping timeout: 268 seconds]
MisterMinister has joined #ffmpeg-devel
Livio has quit [Ping timeout: 245 seconds]
Livio has joined #ffmpeg-devel
kurosu has quit [Quit: Connection closed for inactivity]
System_Error has quit [Remote host closed the connection]
Krowl has quit [Read error: Connection reset by peer]
System_Error has joined #ffmpeg-devel
jamrial has quit [Read error: Connection reset by peer]
jamrial has joined #ffmpeg-devel
Krowl has joined #ffmpeg-devel
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
AbleBacon has joined #ffmpeg-devel
mkver has quit [Ping timeout: 245 seconds]
MikhailAMD has joined #ffmpeg-devel
MikhailAMD has quit [Client Quit]
iive has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
<BtbN> So, what is the usual fate-setup? Run on a schedule once a day?
<BtbN> Run every five minutes, so it run whenever someone pushes?
<nevcairiel> i run every 6 hours, whatever suits your setup and runtime
<BtbN> Well, the box is just sitting there, doing nothing else :D
<wbs> if it's just sitting there, doing nothing, then essentially looping, running fate, with a 5-15 minute sleep inbetween runs probably is fine
<wbs> I run all of mine during the night, since it runs on HW I otherwise use for other things when I'm awake
<nevcairiel> mine is a box i use for all sorts of stuff, so i limit it, but its also in a VM with limited core assignments, so... eh
<nevcairiel> i need to entirely re-do that box at some point
mkver has joined #ffmpeg-devel
another is now known as another|
ccawley2011 has quit [Read error: Connection reset by peer]
<Lynne> don't you run it every time there's a push?
<ePirat> BtbN, whats up with av_dict_set_int?
<ePirat> can I see the report somewhere?
<BtbN> just a weird coverity warning
<BtbN> https://github.com/FFmpeg/FFmpeg/blob/master/fftools/ffmpeg_mux_init.c#L2313 it says this line frees the "type" string literal, which makes no sense
<ePirat> BtbN, yeah… does it say how it comes to that conclusion?
<BtbN> not as far as I can see
<BtbN> It just goes one level deep, and says " freed_arg: av_dict_set frees parameter key"
<ePirat> hmm
System_Error has quit [Remote host closed the connection]
<ePirat> BtbN, it would only do that if AV_DICT_DONT_STRDUP_KEY was set and it fails to alloc the value if I read it correctly…
<BtbN> Yeah, it looks to me like coverity has just decided that "av_dict_set frees parameter key", and now warns everywhere it's used with a static string
System_Error has joined #ffmpeg-devel
<nevcairiel> static analyzers are so much fun :P
<nevcairiel> conditions? nah screw those
<nevcairiel> the flags parameter is basically always a compile-time constant, it should be able to figure that out
<Sean_McG> I haven't put mine on a schedule yet -- I'm having problems migrating the VM into libvirt so that it survives login/out
<Sean_McG> and even with ccache the runs take 2.5+ hours
<BtbN> What box is that slow?
<Sean_McG> an emulated 32-bit PowerPC G4
<Sean_McG> it runs on my workstation which is a Threadripper 2950X
<BtbN> man, awk inside a Makefile is just a horrible combo
<BtbN> I got a working awk command, but I can't figure out how to put it into a Makefile without causing the most nonsensical random effects
Livio has quit [Ping timeout: 268 seconds]
<Sean_McG> I can't say I've traditionally seen much awk usage in a Makefile, I wonder if that's why
<BtbN> ffmpeg uses it extensively
<BtbN> _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)'