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 6.1.1 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
IndecisiveTurtle has quit [Ping timeout: 268 seconds]
<jdek>
michaelni: do we have a name for the release yet?
<Lynne>
"Fraunhofer"
<raven4Get>
merge that xHE-AAC branch and we'll call it a day
cone-972 has quit [Quit: transmission timeout]
<Lynne>
who cares about xhe-aac apart from meta, the other fraunhofer, and netflix?
<jdek>
>Licensed to Meta, Microsoft and Netflix
<Lynne>
why aren't microsoft using wma9?
rvalue has quit [Ping timeout: 260 seconds]
Martchus_ has joined #ffmpeg-devel
Martchus has quit [Ping timeout: 264 seconds]
tufei has joined #ffmpeg-devel
raven4Get has quit [Quit: Leaving]
Mister_D has joined #ffmpeg-devel
MisterMinister has quit [Ping timeout: 260 seconds]
Mister_D has quit [Ping timeout: 268 seconds]
AbleBacon has quit [Read error: Connection reset by peer]
qeed_ has quit [Ping timeout: 256 seconds]
qeed has joined #ffmpeg-devel
HarshK23 has joined #ffmpeg-devel
<elenril>
Actual votes cast thus far: 13
<elenril>
lame
<Lynne>
chocolate gauteau
Traneptora_ has joined #ffmpeg-devel
Traneptora has quit [Ping timeout: 255 seconds]
Krowl has joined #ffmpeg-devel
<Lynne>
kierank: has aac-he become more used in broadcasting?
Coinflipper has quit [Remote host closed the connection]
Coinflipper has joined #ffmpeg-devel
IndecisiveTurtle has joined #ffmpeg-devel
<alien_lappy>
jamrial: thanks
Guest52 has quit [Quit: Client closed]
<kierank>
Lynne: for consumer yes
Krowl has quit [Read error: Connection reset by peer]
Krowl has joined #ffmpeg-devel
<Lynne>
what about for broadcasters?
<elenril>
huh, vorbis_encode_setup_init() in libvorbisenc seems to leak
IndecisiveTurtle has quit [Ping timeout: 256 seconds]
<galad>
I have a vague memory that it depends on the call order of the various _clear() functions
mkver has joined #ffmpeg-devel
IndecisiveTurtle has joined #ffmpeg-devel
cone-332 has joined #ffmpeg-devel
<cone-332>
ffmpeg Anton Khirnov master:2621be353972: lavu/frame: add side data descriptors
<cone-332>
ffmpeg Anton Khirnov master:fabf148578c0: fftools/ffmpeg_enc: only promote first frame side data to global when meaningful
<cone-332>
ffmpeg Anton Khirnov master:8fc1e1358b07: fftools/ffmpeg_enc: simplify error handling for decoded_side_data setup
<cone-332>
ffmpeg Anton Khirnov master:6f2cb0923c5a: fftools/ffmpeg_enc: move decoded_side_data setup out of video-only block
<JEEB>
elenril: right, glad you got something on that; I was planning on checking it but the general idea seemed to be OK. just was having sleep deprivation so didn't focus on it yet
<elenril>
have you tried sleeping more =p
<JEEB>
yes
<JEEB>
thankfully it's succeeding
<JEEB>
so should hopefully more productive after $dayjob time as well
<kierank>
09:48:24 <•Lynne> what about for broadcasters?
<kierank>
for broadcasting to consumers
<kierank>
on terrestrial
<Lynne>
yup, I meant for mezzanine IP links, I remember mpeg2 audio was often used, aac-lc too (but uncompressed was most common)
Xaldafax has joined #ffmpeg-devel
<thardin>
does .srt allow empty subtitle lines?
jamrial has joined #ffmpeg-devel
<Daemon404>
i didnt think srt had a spec... but lol
<thardin>
or perhaps more relevant: will ffmpeg block if subtitles arrive on a pipe and there's a large gap between subtitle lines, when streaming output?
<Daemon404>
a doom9 post
<thardin>
the 'ol "the code is the spec"
<thardin>
mayhaps I should use a different intermediate format. like webvtt perhaps
<Lynne>
closest thing to a spec is the huge opensubtitles dump that ubitux has
<thardin>
w3c has a spec for webvtt at least
<elenril>
ubitux, the subtitle kingpin?
novaphoenix has quit [Quit: i quit]
<Lynne>
the one who bothered to bother opensubtitles for the entire db, not sure if they'd agree to something like that again
<kierank>
Lynne: no not for mezzanine, the latency is too high for he-aac
novaphoenix has joined #ffmpeg-devel
<Lynne>
ah, right
IndecisiveTurtle has quit [Ping timeout: 255 seconds]
llyyr has quit [Remote host closed the connection]
<wbs>
thardin: at least for other raw like formats, setting the AVFMT_GENERIC_INDEX flag is kinda enough for seeking; the demuxer blindly reads one packet at a time and it gets added to the index. seeks forward just trigger the demuxer to keep reading until it finds a packet with a high enough timestamp, seeking backwards moves the IO to the right position
<thardin>
neato. then one wonder why this special crap for text subs
<thardin>
subs for a long stream can get pretty large I imagine
<wbs>
no idea, either there's something else to subtitles that I don't know of (I haven't touched subs much at all), or someone has implemented something separate without knowing about this generic index
<thardin>
smells like an opportunity to remove code, which is the most productive form of programming
<thardin>
BALETE
<wbs>
did I manage to get you nerd sniped into addressing this? ;-)
<wbs>
or do I need to follow up with a "I bet you can't have this working by tonight"? :P
<thardin>
it's more that I get monies if I figure something out
<thardin>
but also yes it is ugly now that I've been made aware of it, and my circles have been disturbed
<thardin>
lol, pymkv just calls mkvmerge
<thardin>
one option is to just hack a very basic mkv or nut muxer by copy-pasting whatever header bytes lavf puts out for text subs in either, and only implement adding packets to the output
mkver has quit [Ping timeout: 252 seconds]
MisterMinister has joined #ffmpeg-devel
Mister_D has joined #ffmpeg-devel
zsoltiv_ has joined #ffmpeg-devel
MisterMinister has quit [Ping timeout: 246 seconds]
Marth64 has joined #ffmpeg-devel
mkver has joined #ffmpeg-devel
<thardin>
sent an email to the client about it. I suspect I'll have a go at fixing lavf
<thardin>
then I can also take the opportunity to make the demuxers more disciplined
* elenril
stabs Daemon404
<elenril>
why are movenc muxers not marked with AVFMT_VARIABLE_FPS
<JEEB>
yea I wondered that too
<JEEB>
since effectively the timescale can be almost anything
<mkver>
elenril: Why is CFR the default anyway?
<elenril>
because avi
<jamrial>
cfr makes things simple
AbleBacon has joined #ffmpeg-devel
<elenril>
cfr is a disease
<elenril>
timestamps are simple
<elenril>
trying to invent "framerates" everywhere is a big part of why our timestamps handling is so bad
cone-332 has quit [Quit: transmission timeout]
<compn>
i mean
<compn>
at this point, you are defending mov as a container ? is that your position ?
<JEEB>
mp4 isn't too bad of a container, during the ~20 years post-mov it actually is relatively well defined
<compn>
a format that cannot even be streamed , where the important information is at the end of the file ?
<elenril>
all containers suck
<compn>
and an incomplete file cannot be played at all ?
<JEEB>
fragmented mp4 exists :)
<compn>
(qt-faststart nerds shh)
<elenril>
many of them in their own creative ways
<JEEB>
yea, like matroska and time bases
<elenril>
matroska was almost good, were it not for its timestamps brainfart
<JEEB>
mp4 forces durations to be coded, but its negative bit is the lack of support for overlapping packets on the same track
Marth64 has quit [Ping timeout: 255 seconds]
Krowl has quit [Read error: Connection reset by peer]
* compn
curses JEEB's video files to all turn into fragmented mp4
<JEEB>
iso has cursed MP4 enough
<compn>
well thats server side what am i thinking
Marth64 has joined #ffmpeg-devel
rvalue has joined #ffmpeg-devel
<j-b>
mp4 is cursed
<JEEB>
and not least due to it no longer being a freely available because ISO changed the deal with the devil without hearing from actual authors
<kierank>
15:15:23 <•elenril> cfr is a disease
<kierank>
15:15:40 <•elenril> timestamps are simple
<kierank>
what is the duration of the last frame
<kierank>
making everything vfr when it isn't is the problem
<kierank>
a misunderstanding of precision vs vfr
<elenril>
kierank: duration of the last frame is whatever the source says it is
<kierank>
it doesn't have a duration
<elenril>
cfr is a subset of vfr
<kierank>
in vfr
<elenril>
so if we want to handle vfr at all, it's strictly better for most of our code to just forget about framerates
rvalue has quit [Ping timeout: 256 seconds]
cone-227 has joined #ffmpeg-devel
<cone-227>
ffmpeg Andreas Rheinhardt master:9223c92c889c: doc/examples: Always use <> includes
<cone-227>
ffmpeg Andreas Rheinhardt master:8ca57fcf9ed3: avutil/fifo, file: Remove unused headers
rvalue has joined #ffmpeg-devel
<Daemon404>
elenril, fair
<Daemon404>
the stab i mean
<Marth64>
its all cursed
<Marth64>
you start with one thing and it ends in a cursed spiral of more things
<Daemon404>
isnt that just multimedia
<Marth64>
and printers
rvalue has quit [Ping timeout: 255 seconds]
<Marth64>
axis of evil: multimedia, printers, Safari the browser
Marth64 has quit [Remote host closed the connection]
rvalue has joined #ffmpeg-devel
rvalue- has joined #ffmpeg-devel
IndecisiveTurtle has joined #ffmpeg-devel
rvalue has quit [Ping timeout: 264 seconds]
<cone-227>
ffmpeg James Almer master:189c32f53659: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
<cone-227>
ffmpeg James Almer release/7.0:9cfb29baa2c5: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
rvalue- is now known as rvalue
<cone-227>
ffmpeg James Almer release/6.1:f309408874a5: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
<cone-227>
ffmpeg James Almer release/6.0:59918c65ade2: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
<cone-227>
ffmpeg James Almer release/5.1:4ee74fc46d14: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
<cone-227>
ffmpeg James Almer release/5.0:09f9f1d7ee13: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
<cone-227>
ffmpeg James Almer release/4.4:c2f678c307d2: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
<cone-227>
ffmpeg James Almer release/4.3:4d2cc90fa42a: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
rvalue- has joined #ffmpeg-devel
<cone-227>
ffmpeg James Almer release/4.2:ddb0efbbc101: avformat/mov: don't abort on duplicate Mastering Display Metadata boxes
rvalue has quit [Ping timeout: 260 seconds]
<elenril>
jamrial: I'd like to get rid of unique
<jamrial>
why didn't you mention that during the review phase?
<elenril>
I did
<jamrial>
JEEB: ^?
<JEEB>
OK, then I missed that point :D I just recall at some point the flag approach being mentioned and I added that to control whether you get dupes or not
rvalue- is now known as rvalue
<elenril>
my point is the caller should not decide that in most cases
<JEEB>
personally I don't feel heavily either way :P I added a flag because someone said it would be nice
System_Error has quit [Remote host closed the connection]
<JEEB>
I would have just had it generally add stuff otherwise
<haasn>
kierank: EOF can have a timestamp too, no?
tufei has quit [Remote host closed the connection]
<haasn>
elenril: so you agree with mkver's suggest API (avcodec_get_supported_configs)
<haasn>
?
<mkver>
StevenLiu: Your commit 991cf95fdeebc3 caused a segfault (see rtmpproto patches on the ML).
<mkver>
Did you really get memleaks or did you just feel that there was no matching free for these allocations?
rvalue has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
jarthur has joined #ffmpeg-devel
<elenril>
haasn: yes
rvalue has quit [Ping timeout: 252 seconds]
<haasn>
one thing that concerns me slightly about this exact API is that it requires an avctx to query options from
<haasn>
but in ffmpeg_filter.c we do not have an avctx, just the options dict; but I suppose we could construct one just for the sake of constructing the filter graph or possibly change the way this is initialized
<elenril>
ffmpeg_filter could ask ffmpeg_enc for the config structs
psykose has quit [Ping timeout: 255 seconds]
rvalue has joined #ffmpeg-devel
psykose has joined #ffmpeg-devel
<jamrial>
elenril: unique can be deprecated and eventually removed i guess. the same can be achieved with the remove function i'm adding in my set
<jamrial>
but it's really harmless and doesn't interfer with setting other flags
<elenril>
i disagree that it's harmless
<elenril>
it's a trap
<elenril>
public api should not contain traps
omegatron has quit [Quit: Power is a curious thing. It can be contained, hidden, locked away, and yet it always breaks free.]
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
System_Error has quit [Remote host closed the connection]
System_Error has joined #ffmpeg-devel
<jamrial>
elenril: user data unregistered sei should be marked as global in the descriptor
<jamrial>
the relevant sei are present in hevc extradata, at least
<kierank>
18:16:49 <haasn> kierank: EOF can have a timestamp too, no?
<kierank>
What eod
<kierank>
Eof
iive has joined #ffmpeg-devel
kurosu has quit [Quit: Connection closed for inactivity]
<IndecisiveTurtle>
Lynne: Bump in case the previous message was lost
<Lynne>
IndecisiveTurtle: no, I was just waiting for you to go online
<Lynne>
it looks fine, I even got it to run, but the output doesn't seem correct
<IndecisiveTurtle>
Ah I've had the client open all evening lmao
<IndecisiveTurtle>
What output are you getting? It was okay when I tested it
<Lynne>
just the ffmpeg logo mostly untouched, with a few blocks being black
<IndecisiveTurtle>
Hm what gpu are you testing with? Should swap to my amd one in case its something vendor related (though unlikely)
<Lynne>
I also had to manually compile the shader and use xdd -i, because your build system is broken
<Lynne>
AMD
<IndecisiveTurtle>
Not sure what's going on with the build system, it works here. I'll try a clean up again sometime cause it's probably going to be the shader generator that messes things up
<IndecisiveTurtle>
Though it's just a simple script that iterates over shaders and generates headers with glslang, it's convenient cause it auto rebuilds them when the file is changed xD
<IndecisiveTurtle>
Switched to my AMD Vega 8 igpu, can confirm the output is not the same as the nvidia driver. Probably something stupid, let me fix real quick
<IndecisiveTurtle>
Hm lavapipe also works correctly, guess it's something RADV only
IndecisiveTurtle has quit [Remote host closed the connection]
IndecisiveTurtle has joined #ffmpeg-devel
<IndecisiveTurtle>
Lynne: Issue should be fixed now, turned out to be a missing barrier
<IndecisiveTurtle>
The buffer copy would overrun the compute shader
<Lynne>
good, I'm seeing high frequencies
<Lynne>
I'm guessing this is 2 levels, right?
<IndecisiveTurtle>
The levels are hardcoded to 1 right now, and the block dim is 4x4. They can be tweaked in main.c file though
kasper93 has joined #ffmpeg-devel
<Lynne>
doesn't quite look right when I change it to 128x128
kasper93_ has quit [Ping timeout: 264 seconds]
<Lynne>
I think you should do what the C version does and do a haar on an X/Y basis
<Lynne>
only haar is able to be done as a simple single 2D filter, all other wavelet types need to be done on X, then Y basis because it's not really feasible
<Lynne>
plus, it would let you do cool stuff like subgroup operations
<IndecisiveTurtle>
Curious, what does it look like for you? When I set it to 128x128 the image is left with 6 "color" pixels on the width
<IndecisiveTurtle>
I see, I'm thinking of splitting this into 2 functions one for x basis and another for y and run them one after the other