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
System_Error has quit [Ping timeout: 264 seconds]
thilo has quit [Ping timeout: 260 seconds]
thilo has joined #ffmpeg-devel
Traneptora has quit [Quit: Quit]
System_Error has joined #ffmpeg-devel
Traneptora has joined #ffmpeg-devel
Kei_N has joined #ffmpeg-devel
Kei_N_ has quit [Read error: Connection reset by peer]
derpydoo has joined #ffmpeg-devel
minimal has quit [Quit: Leaving]
vriska has joined #ffmpeg-devel
MisterMinister has joined #ffmpeg-devel
<fflogger> [newticket] ksthey: Ticket #11551 ([ffmpeg] [HEVC] Incorrect PCM Coding Block Length Derivation For YUV400) created https://trac.ffmpeg.org/ticket/11551
Martchus_ has joined #ffmpeg-devel
Martchus has quit [Ping timeout: 260 seconds]
jamrial has quit []
MisterMinister has quit [Ping timeout: 252 seconds]
DVedaa has quit [Read error: Connection reset by peer]
DVedaa has joined #ffmpeg-devel
Xe has quit [Ping timeout: 244 seconds]
Xe has joined #ffmpeg-devel
mkver has joined #ffmpeg-devel
ngaullier has joined #ffmpeg-devel
ngaullier has quit [Remote host closed the connection]
ngaullier has joined #ffmpeg-devel
Thulinma has quit [Ping timeout: 276 seconds]
HarshK23 has quit [Quit: Connection closed for inactivity]
paulk has quit [Ping timeout: 248 seconds]
paulk has joined #ffmpeg-devel
paulk has joined #ffmpeg-devel
wellsakus has joined #ffmpeg-devel
derpydoo has quit [Quit: derpydoo]
Dariusz has joined #ffmpeg-devel
Dariusz has quit [Client Quit]
Dariusz has joined #ffmpeg-devel
k777 has joined #ffmpeg-devel
Thulinma has joined #ffmpeg-devel
k777 has quit [Ping timeout: 260 seconds]
k777 has joined #ffmpeg-devel
cone-937 has joined #ffmpeg-devel
<cone-937> ffmpeg Lynne master:5098b1a34545: vulkan: move feature<->usage mapping code outside of hwcontext_vulkan.c
<cone-937> ffmpeg Lynne master:cee34e0a550e: vulkan: check that the max number of push descriptors is not exceeded
<cone-937> ffmpeg Lynne master:96ddce1b3c11: vulkan: move OPT_CHAIN out of hwcontext_vulkan
<cone-937> ffmpeg Lynne master:3bb2b8aff4f0: hwcontext_vulkan: enable subgroupSizeControl
<ramiro> haasn: on neon, with interleaved writes, it's a single instruction (st3).
<Lynne> it's not going to be faster though
<Lynne> most ARM cpus can do 2 loads/1 store or 1 load/2 stores per cycle, same as most of x86
<Lynne> so it'll be split up by uops and dispatched after a cycle
<Lynne> you save on 4 bytes, but decoding is never a bottleneck on arm
<Lynne> and also st/ld have that total PIA quirk where the registers have to be numerically sequential
<Lynne> unlike x86, you don't have access to assembler register renaming, which would make this more tolerable to write
<BBB> neon has all these cool instructions *jealous*
<BBB> can you guys port some of them to avx1024?
<Lynne> neon has no fast immediate shuffles, this trumps any "neat" instructions
Xaldafax has joined #ffmpeg-devel
<Lynne> its like having world class cheese, tomatoes, chorizo, mushrooms, but no dough for a pizza, so you have to eat with your hands
<haasn> is SSE4 less common than SSSE3?
<haasn> I guess not practically, because they're both part of x86-64-v1
<Lynne> I believe only early athlons from 2001 had ssse3 but no sse4
<Lynne> the other way around, amd had ssse3 and sse4 on the same gen, intel lacked sse4 on peryn only
<Lynne> https://store.steampowered.com/hwsurvey says its negligible, and either way, they're 20 year old CPUs
jamrial has joined #ffmpeg-devel
<kurosu> You're forgetting about SSE4.1 and SSE4.2 XD
<kurosu> (or not, but just to pile up on x86)
DVedaa has quit [Read error: Connection reset by peer]
DVedaa has joined #ffmpeg-devel
System_Error has quit [Ping timeout: 264 seconds]
System_Error has joined #ffmpeg-devel
<haasn> ramiro: wrote a full shuffle solver for x86, it can handle any sort of packed rgb(a) swizzle on any element size, and also handles byte swapping at the same time
<haasn> so we have a single fast path for e.g. rgb24 -> bgr0, or rgba -> rgb48be, or rgba64le -> bgra64be
<haasn> that all compile down to a single pshufb loop
<haasn> performance is blazing fast in all cases except the trivial rgba <-> bgra which is still slowed down by the high loop overhead
<haasn> but I will tackle that soon-ish
<haasn> (and even in that case it's like 5% slowdown)
cone-937 has quit [Quit: transmission timeout]
minimal has joined #ffmpeg-devel
<ramiro> haasn: nice!
<ramiro> Lynne: st3 might not be faster, but is it slower than manually packing + st1?
<ramiro> I've been told that might be the case with newer apple silicon, but I haven't had a chance to test any of it.
<Lynne> depends on the SoC, I would regard any chip which runs that slower as being a toy
<Lynne> ...but then again it's all just mostly toys in the arm world
xvaclav has quit [Ping timeout: 260 seconds]
xvaclav has joined #ffmpeg-devel
<fflogger> [editedticket] rmader: Ticket #11515 ([avcodec] Consider NV12 / P010 output pixel format support) updated https://trac.ffmpeg.org/ticket/11515#comment:10
zim1 has joined #ffmpeg-devel
<BtbN> welp, github just banned the workflow that keeps the coverity runs alive
<BtbN> and also lowered the time until a repo goes inactive
<JEEB> \o/
<JEEB> what was the reasoning for the ban?
SuperFashi_ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
SuperFashi has joined #ffmpeg-devel
<BtbN> so from now on I'll have to remember to click the button again every 30 days
<BtbN> Or commit something every week or so
Teukka has quit [Read error: Connection reset by peer]
<fflogger> [editedticket] pal1000: Ticket #11435 ([avformat] Added "-extension_picky" breaks various applications) updated https://trac.ffmpeg.org/ticket/11435#comment:34
Teukka has joined #ffmpeg-devel
Teukka has quit [Changing host]
Teukka has joined #ffmpeg-devel
<jkqxz> Lynne: In what sort of context? Without messing with frequencies it gets 1080p~50 on one thread on a few-year-old laptop (Intel 4P+8E), or 1080p~500 with all threads.
<jkqxz> Lynne: "src/libavutil/vulkan.c:156:22: error: ‘VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES’ undeclared"
<jkqxz> Some missing check? My headers are 1.4.309.
___nick___ has joined #ffmpeg-devel
___nick___ has quit [Client Quit]
___nick___ has joined #ffmpeg-devel
ngaullier has quit [Read error: Connection reset by peer]
k777 has quit [Ping timeout: 272 seconds]
<jkqxz> michaelni: Can you explain what probetest is trying to do?
<jkqxz> It seems to have found a sequence of zero and one bytes which the demuxer accepts could be a valid apv file. I am unclear why that means failure?
<jkqxz> Adding a stronger check of the validity of profile (which I was avoiding because it is not currently meaningful for the decoder) just means it gets a bit further and finds a different sequence which is also plausibly a valid file and declares that a failure.
k777 has joined #ffmpeg-devel
<michaelni> jkqxz, probetest check if any probe function claims a high certainity detection in random data.
<michaelni> as in "iam really sure this random data is a valid XXX file" is a failure
<jkqxz> It returns AVPROBE_SCORE_EXTENSION + 1 if it's a plausible match. Is that wrong? It looks like that is a common thing to do.
<jkqxz> (Presumably the intent of that is to beat an incorrect file extension.)
rvalue- has joined #ffmpeg-devel
rvalue has quit [Ping timeout: 244 seconds]
cone-789 has joined #ffmpeg-devel
<cone-789> ffmpeg Marvin Scholz master:8129474b93a5: avformat/dashdec: use av_err2str
<cone-789> ffmpeg Marvin Scholz master:da38b2fcd229: tools/sidxindex: use av_err2str
<cone-789> ffmpeg Marvin Scholz master:b781f1836e67: tests: lavfi/drawutils: use av_err2str
<cone-789> ffmpeg Marvin Scholz master:cd96d2ed6a0b: avformat/crypto: use av_err2str
<cone-789> ffmpeg Marvin Scholz master:d0bcf62597a4: tools/aviocat: use av_err2str
<cone-789> ffmpeg Marvin Scholz master:a903d6dade3d: tools/ismindex: use av_err2str
<cone-789> ffmpeg Marvin Scholz master:d7d103c34c79: lavfi/vf_xpsnr: use av_err2str
<jkqxz> The probetest threshold of AVPROBE_SCORE_MAX/4 is AVPROBE_SCORE_RETRY.
<jkqxz> michaelni: Can you suggest what score should be returned for a plausible but uncertain match? It will sometimes hit in random data as seen here.
rvalue- is now known as rvalue
pross has quit [Ping timeout: 244 seconds]
<cone-789> ffmpeg Marvin Scholz master:0ea83e65aa07: avfilter/drawutils: narrow variable scopes
<michaelni> cant the probe function read a few packets to check more ?
<michaelni> but the threshold is a good value to return for uncertain matches
<jkqxz> A single frame might easily be >1MB.
<jkqxz> I can look to see if there is another frame there anyway, that's fair.
IndecisiveTurtle has joined #ffmpeg-devel
<cone-789> ffmpeg Marvin Scholz master:cacc68f3b5f9: ffbuild: fix include path for uninstalled .pc files
<jkqxz> I'll see if I can add a bit more checking and return something slightly under the threshold value in any case. Thank you.
MisterMinister has joined #ffmpeg-devel
<ePirat> michaelni, should I add Signed-off-by with my name, when pushing a patch of someone else?
<jamrial> ideally
<fflogger> [newticket] jasperE: Ticket #11552 ([undetermined] A decoder returned an unexpected error code) created https://trac.ffmpeg.org/ticket/11552
bencoh has quit [Ping timeout: 260 seconds]
<cone-789> ffmpeg Erik Linge master:09a83e095d84: rtpdec_mpeg4: Add fmtp parsing of bitrate value
<michaelni> ePirat, yes, thats what most people do
bencoh has joined #ffmpeg-devel
<toots5446> michaelni: Hi! If I attach a PTS to this metadata update and pass it to the frame only when it matches do you think that this would work for you?
___nick___ has quit [Ping timeout: 252 seconds]
___nick___ has joined #ffmpeg-devel
___nick___ has quit [Ping timeout: 248 seconds]
System_Error has quit [Remote host closed the connection]
<michaelni> toots5446, isnt there some existing cases where sidedata is passed from AVPackets to AVFrames, like in h264 or something. What i would hve thought is that the decoder as it decodes the AVPacket would take the sidedata and copy it to the corresponding AVFrame. If thats what should be done with it but maybe iam missing something
<michaelni> doing this independant of the decoder seem "hard"
System_Error has joined #ffmpeg-devel
<ePirat> is Gyan Doshi on irc?
<michaelni> toots5446, also look at AV_CODEC_FLAG_COPY_OPAQUE related code
zim1 has quit [Ping timeout: 240 seconds]
markh has quit [Remote host closed the connection]
<toots5446> Thanks for the pointer michaelni. This seems like a promising entry point indeed. Packet props are only saved if the codec has the FF_CODEC_CAP_SETS_FRAME_PROPS. Let me see if we can tap into it by always saving the last packet props regardless of the flag. The set is also conditional to the flag so this shouldn't change anything on that end.
markh has joined #ffmpeg-devel
<toots5446> michaelni: yeah I remember why I didn't use this though: I see cases with flac streams where packet->frame mapping is not 1:1. Two packets with PTS 0 come through in the tests.
<toots5446> Likewise, with vorbis, I see one packet with PTS 0 coming out with the metadata update before a frame with an actual PTS of 128 is decoded.
<toots5446> I think that this can all be addressed with the next set of patches which is planning on removing header packets from those streams. Perhaps I should switch around and send the patches removing header packets first?
<ePirat> michaelni, btw did you notice: libavcodec/ffv1enc.c:1444:39: warning: using floating point absolute value function 'fabs' when argument is of integer type
<toots5446> Ok I have extracted the part of the code that removes the ogg packet headers first, along with the test. It's pretty cool you can follow the changes from the test output diff.
<toots5446> Will submit.
<michaelni> toots5446, ok, will take a look, btw if someone else wants to take this set over, iam fine with that. it seems i have been a bit slow in replying to it
<michaelni> ePirat, didnt see that, thx
<ePirat> michaelni, would have sent a fix but I am not sure about the intention of the code there without spending some time to understand it further
<toots5446> Cool. Happy to work with whomever. But I have a feeling Lynne will like this new patchset I just sent: Remove chained ogg stream header packets from demuxer
<michaelni> ePirat, its a heuristic to minimize the size of the table it stores. log(score) ~ expected size. Whatever makes the table on average smaller is "correct"
<michaelni> ill check which way my testcase becomes smaller and send a patch
<ePirat> toots5446, why do you check for "if (!ret)" in ogg_packet?
<ePirat> given if ret is <0 that code would be unreachable anyway