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
ramiro has quit [Ping timeout: 260 seconds]
ramiro has joined #ffmpeg-devel
iive has quit [Quit: They came for me...]
ramiro has quit [Ping timeout: 252 seconds]
IndecisiveTurtle has quit [Ping timeout: 268 seconds]
cone-156 has joined #ffmpeg-devel
<cone-156>
ffmpeg James Almer master:72ac49596060: avutil/tests/opt: test negative values for INT and INT64 types
<cone-156>
ffmpeg James Almer master:d6e877bbcde2: avutil/iamf: fix offsets for mix_gain options
<cone-156>
ffmpeg James Almer master:088bf6e8c1ca: avutil/iamf: use AV_OPT_TYPE_UINT
<cone-156>
ffmpeg James Almer master:9902fc550aec: avutil/tests/opt: test values > INT_MAX for INT64 type
<cone-156>
ffmpeg James Almer master:d053290d8dd4: avutil/opt: add an unsigned option type
ramiro has joined #ffmpeg-devel
<cone-156>
ffmpeg James Almer release/7.0:a51c06b42c7b: avutil/iamf: fix offsets for mix_gain options
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #ffmpeg-devel
naveen521kk has joined #ffmpeg-devel
Teukka has quit [Read error: Connection reset by peer]
Teukka has joined #ffmpeg-devel
Teukka has quit [Changing host]
Teukka has joined #ffmpeg-devel
rvalue has quit [Ping timeout: 255 seconds]
ramiro has quit [Ping timeout: 256 seconds]
ramiro has joined #ffmpeg-devel
rvalue has joined #ffmpeg-devel
ramiro has quit [Ping timeout: 256 seconds]
ramiro has joined #ffmpeg-devel
courmisch_ has quit [Quit: Reconnecting]
courmisch has joined #ffmpeg-devel
HarshK23 has joined #ffmpeg-devel
av500 has joined #ffmpeg-devel
naveen521kk has quit [Read error: Connection reset by peer]
haihao has quit [Ping timeout: 255 seconds]
haihao has joined #ffmpeg-devel
naveen521kk has joined #ffmpeg-devel
naveen521kk has quit [Read error: Connection reset by peer]
quietvoid has quit [Ping timeout: 252 seconds]
naveen521kk has joined #ffmpeg-devel
cosimone has joined #ffmpeg-devel
ramiro has quit [Ping timeout: 255 seconds]
ramiro has joined #ffmpeg-devel
naveen521kk has quit [Quit: naveen521kk]
cosimone has quit [Remote host closed the connection]
ccawley2011 has joined #ffmpeg-devel
quietvoid has joined #ffmpeg-devel
cone-700 has joined #ffmpeg-devel
<cone-700>
ffmpeg Derek Buitenhuis master:f8a613d6a86f: fftools/ffprobe: Avoid overflow when calculating DAR
kurosu has joined #ffmpeg-devel
deus0ww has quit [Ping timeout: 260 seconds]
deus0ww has joined #ffmpeg-devel
ramiro has quit [Ping timeout: 256 seconds]
ramiro has joined #ffmpeg-devel
<BBB>
michaelni: I don't think anyone is intending to switch to gitlab this week, so we can simply have the discussion and nicolas can participate when he is ready and able to
<Lynne>
nicolas isn't able to?
<Lynne>
we must proceed with the discussions at once, with haste
jamrial has joined #ffmpeg-devel
Krowl has joined #ffmpeg-devel
<jamrial>
haasn: your vf_scale framesync change introduced leaks
cone-700 has quit [Quit: transmission timeout]
<michaelni>
Lynne, this would be a bit unfair toward nicolas. I also wait for anton to come back from vaccation and reject my framecrcenc patch :)
<courmisch>
why there are two different functions to find start codes in lavc?
<michaelni>
so they arent lonely
<Lynne>
courmisch: which ones? avpriv_find_start_code and?
<courmisch>
Lynne: and {h264,vc1}dsp.startcode_find_candidate
<courmisch>
so there is a non-optimisable one that is stateful and exact, and an optimisable one that is stateless and allowed spurious matches
<courmisch>
not ideal
<mkver>
courmisch: They do different things: startcode_find_candidate only searches for candidates (currently it searches for 0x00 bytes), the other one only wants exact matches.
<mkver>
I once sent a patchset to optimize the former.
<courmisch>
the DSP one is just reinventing strnlen, yes, at least the C version
marcj has quit [Ping timeout: 272 seconds]
Krowl has quit [Read error: Connection reset by peer]
<jamrial>
haasn: i fixed it, hopefully. see ml
pmozil has joined #ffmpeg-devel
pmozil has quit [Ping timeout: 260 seconds]
___nick___ has joined #ffmpeg-devel
System_Error has quit [Remote host closed the connection]
haihao has quit [Ping timeout: 260 seconds]
haihao has joined #ffmpeg-devel
System_Error has joined #ffmpeg-devel
pmozil has joined #ffmpeg-devel
Krowl has joined #ffmpeg-devel
<Lynne>
JEEB: hey, I don't think the USAC spec I've got is complete
<Lynne>
AccessUnit() is not defined, and I can't find it being referenced in other specs, because of obvious name overlap
<Lynne>
its for preroll
<Lynne>
exhale writes something that more than made me raise an eyebrow - entropy coding state
<haasn>
jamrial: thanks
<JEEB>
Lynne: it should be complete. it can be that it refers to yet another spec o' course
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
<Lynne>
I think its a macro
<Lynne>
like Config() being defined as being UsacConfig()
<Lynne>
and used only in a few places
<Lynne>
of course a specification needs indirection
Krowl has quit [Read error: Connection reset by peer]
System_Error has quit [Ping timeout: 260 seconds]
System_Error has joined #ffmpeg-devel
<courmisch>
mkver: and why was it not merged?
<mkver>
Because a) I saw slightly positive changes if GCC were told about what is the likely branch, but I did not want to go through the hassle of adding a macro for this. b) When investigating benchmarks on (IIRC) an arm, it turned out that GCC recreated the constants involved in every loop, leading to only a slight performance improvement on this platform. I was curious about whether something better was possible, but never came to
<mkver>
it.
fennewald has joined #ffmpeg-devel
<fennewald>
hey! I had some questions about the implementation of `ff_h2645_extract_rbsp`
<Lynne>
JEEB: nope, definitely not in the spec
<Lynne>
I'll ask the exhale author
<fennewald>
The comment on line 102 (by Anton Khirnov, in 2015), notes that emulation prevention bytes are expected to be rare, on the order of 1:2^22. I cannot find any information that seems to confirm this. Additionally, a scan of a few random hevc files seems to put this occurrence at around 1/2^16, several orders of magnitude more common. Does anyone know the source of the original rate, or where I might find more information about this?
<mkver>
fennewald: An emulation prevention 0x03 needs to be inserted if you have 22 zero bits in a row starting at a byte aligned position.
<mkver>
That's where the 2^22 comes from.
<jkqxz>
That's for the block layer, which is arithmetic coded.
<jkqxz>
There are some fixed places where they can happen in headers, which end up being much more likely for a random sample.
<mkver>
And then there are cabac_zero_words (a form of stuffing) which also lead to 0x03.
<fennewald>
ahh, that makes a lot of sense -- thank you.
<fennewald>
I'm also a little confused by the start code detection logic -- it seems to treat 0x000002 as a start code sequence, but I can't find reference to this sequence in the decoder. Is it just a side effect of emulation prevention that this sequence should never appear in the bitstream?
<fennewald>
*decoder -> spec, sorry
<mkver>
A byte aligned 0x000002 must not happen at all in H.26x, so our decoder can do with it as it wants to.
<fennewald>
understood -- again, thank you for the information.
System_Error has quit [Remote host closed the connection]
rvalue has quit [Ping timeout: 268 seconds]
System_Error has joined #ffmpeg-devel
pmozil has quit [Remote host closed the connection]
rvalue has joined #ffmpeg-devel
<jkqxz>
Lynne: Ping for force_integer_mv set.
<jkqxz>
BtbN: You might want to look at it too for the nvidia parts.
<jkqxz>
Should be no change, but seems worth quickly checking if possible.
<BtbN>
The code looks like it comes straight from nvdec, so I doubt that'd break.
<BtbN>
vdpau I can't test either, I think
<BtbN>
since it needs X, and none of my nvidia machines got X
<BtbN>
Will give it a go later. What exactly would break with that field being wrong? Visual Artifacts?
<jkqxz>
Entropy desync, so complete decode failure.
<jkqxz>
Thank you.
<Lynne>
jkqxz: I lgtm'd it on IRC last week, guess you missed that
<Lynne>
do you think it should be backported to 7.0 as well?
Livio has joined #ffmpeg-devel
<jkqxz>
1 and 6 maybe? I'd wait for confirmation from the vulkan side about any more mismatches, though.
<Lynne>
the vulkan side, as in the vendors?
<Lynne>
JEEB: no way
<Lynne>
it turns out that instead of sending a given amount of samples to skip, usac just ships ENTIRE FRAMES OF AUDIO to decode and setup state
<Lynne>
and moreover, it does entropy encoding on the **actual frame data**, which has already had entropy encoding, to save fractions of a bit every few hundred bits
<jkqxz>
I'm still confused by the loop filter levels thing. Otherwise it would be nice to hear that it now satisfies the nvidia driver for all the fields noone else cares about.
<Lynne>
jkqxz: I think the entire patchset is fine, not just 1 and 6
Krowl has joined #ffmpeg-devel
___nick___ has quit [Ping timeout: 260 seconds]
Krowl has quit [Read error: Connection reset by peer]
averne has quit [Quit: quit]
averne has joined #ffmpeg-devel
ccawley2011 has quit [Read error: Connection reset by peer]
marcj has joined #ffmpeg-devel
markh has quit [Remote host closed the connection]
markh has joined #ffmpeg-devel
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
mkver has quit [Ping timeout: 252 seconds]
<Lynne>
jkqxz: know if you'll have time to look into the AV1/HEVC luma/chroma 8to10 bit conversion triggering spuriously on amd soon?
Livio has quit [Ping timeout: 240 seconds]
<jkqxz>
Have you properly tried the answer I suggested? I am pretty sure it is correct.
kurosu has quit [Quit: Connection closed for inactivity]
<Lynne>
if you point me to code to change, I can test
<jkqxz>
(Like, actually made sure that the buffer is as you expect in GPU memory, and can't have been messed up by some intermediate layer thinking (incorrectly) that it knows how big it should be.)
<Lynne>
but we did try zeroing everything
<jkqxz>
I have no idea what the code is. Make sure there are zeroes in the ten bytes or so following the AV1/HEVC decode structure in GPU memory.
<Lynne>
but airlied is pretty sure those fields are present in the headers and set to 0