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 has been released! | Please read ffmpeg.org/developer.html#Code-of-conduct
_whitelogger_ has quit [Ping timeout: 268 seconds]
<kierank>
Maybe that would take place at four seasons landscaping
<cone-860>
ffmpeg sunyuechi master:ea6817d2a756: checkasm: test for dcmul_add
gust82 has quit [Remote host closed the connection]
<michaelni>
kierank, you can hold a FFBI pressconference if you like. :)
<michaelni>
you are a great speaker
<courmisch>
#pragma GCC optimize ("O0")
<courmisch>
^ tell-tale sign of quality vendor code
dellas has joined #ffmpeg-devel
<Daemon404>
52
<JEEB>
42
Krowl has quit [Read error: Connection reset by peer]
dellas has quit [Remote host closed the connection]
feiw1 has joined #ffmpeg-devel
blb has quit [Quit: brb]
blb has joined #ffmpeg-devel
navi has quit [Ping timeout: 255 seconds]
navi has joined #ffmpeg-devel
<JEEB>
Traneptora: wow the JPEG-XL stuff really depends on ISOBMFF boxing :P
<Traneptora>
yup
<JEEB>
I did read that spec and noticed those minor deviations but I guess they got adjusted towards ISOBMFF?
<Traneptora>
JEEB: apparently it was always supposed to be that way, just a bug made it not that way
<JEEB>
:D
<Traneptora>
the box format is identical to the ISOBMFF box format
<Traneptora>
just there's no uuid box
navi has quit [Ping timeout: 255 seconds]
navi has joined #ffmpeg-devel
<JEEB>
uuid is just a specific box, after all.
<JEEB>
do they have fullbox or just basic boxes?
<Traneptora>
JEEB: well 14996-12 defines uuid as part of the box format itself rather than just as a type of box
<Traneptora>
and not sure what you mean by "fullbox"
<JEEB>
it's an extension of Box
<JEEB>
I would expect JPEG-XL to just ignore it unless one of the boxes it has decided to utilize is a FullBox :)
<JEEB>
right, uuid was part of the BoxHeader definition. had forgotten that.
Krowl has joined #ffmpeg-devel
dellas has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
derpydoo has joined #ffmpeg-devel
dellas has quit [Remote host closed the connection]
cone-860 has quit [Quit: transmission timeout]
dellas has joined #ffmpeg-devel
cone-606 has joined #ffmpeg-devel
<cone-606>
ffmpeg Paul B Mahol master:42e45ea8ff30: avfilter/af_anlms: add double sample format support
<cone-606>
ffmpeg Paul B Mahol master:3bca828d3972: avfilter/af_arls: add double sample format support
Krowl has joined #ffmpeg-devel
<jkqxz>
Are there cases where mp4-type files are allowed to have embedded parameter sets in the stream which do not match the global header?
<jkqxz>
(Or is that just always invalid?)
<jamrial>
i'm going to assume it depends on the codec specific spec. but probably no
<jamrial>
i think that when parameters need to change, a new sampleentry is needed
<JEEB>
jkqxz: for AVC/HEVC/VVC 14496-15 specifically defines two separate identifiers
<JEEB>
one of them allows for in-band parameters
<JEEB>
another disallows
<JEEB>
like hvc1 is the one which disallows (and which apple only supports)
<jamrial>
JEEB: but does it allow changes mid stream?
<JEEB>
yes
<JEEB>
hevc and definition of array_completeness
<JEEB>
as an example
<jkqxz>
In-band parameters where there are global parameter sets which are just never used because there are different parameter sets in every IDR frame?
<jkqxz>
It feels to me that a codec which does that is Doing It Wrong.
<JEEB>
which format are we talking, btw
<JEEB>
if you want the definitions (unless you have a recent enough 14496-15 at hand)
<jkqxz>
HEVC.
<jkqxz>
The actual thing I'm looking at is the AMF encoder giving you one set of parameter sets in extradata and then a different one in the stream.
<JEEB>
fun
<JEEB>
that just sounds like a mismatch
<JEEB>
technically as long as the one in extradata is something that makes the thing decode'able is good, but I'd expect the first one in both to match :D)
<JEEB>
or then don't add anything to extradata
<JEEB>
oh christ, this ISO-patched 14496-15 -.- breaks copypasta
<JEEB>
or actually not sure if that's due to it
<jamrial>
jkqxz: oh, lol, that's what happens with libaomenc too, which is why we don't use their global header fetching function
<jkqxz>
Determining the properties of a stream like colour information is coming from extradata, though? (Or at least for ffprobe it seems to.) So having it right in the stream doesn't really help you.
<jamrial>
the reason being, at some point after init, global params change, and it's reflected in the first output TU
<jamrial>
maybe with amf it's the same situation
<jkqxz>
The actually-needed-for-decoding parameters seem to stay the same. The difference is that the extradata one has no VUI so no colour information, while the stream one does have that.
<jkqxz>
Though it's just confused, there might be more differences in other setups. The order is also different (VPS comes last for some reason); clearly they aren't generated by the same process.
<JEEB>
but yea the end result seems to be: the question you asked is "it's allowed", but in this case it's not really a case for which that was meant :)
dellas has quit [Remote host closed the connection]
Krowl has quit [Read error: Connection reset by peer]
<jkqxz>
JEEB: What are the two separate identifiers for that case? (Which one does lavf write by default for an mp4 file?)
<Daemon404>
hvc1 and hev1
<JEEB>
the default has actually switched during the years
<JEEB>
yea, hev1 is the one that's current default
<JEEB>
it allows for in-band and apple specifically does not support it
<JEEB>
hvc1 is the one that doesn't allow for in-band
<JEEB>
and it used to be the FFmpeg default, but then during some merges this stuff switched around
<jkqxz>
Ok, so the current case is not strictly wrong.
<jkqxz>
But it is still stupid and should be fixed.
<Daemon404>
does hev1 actually ship sps/pps/vps in extradata?
<Daemon404>
i thought it didnt
<jkqxz>
lavf writes the extradata if it is given it for that case.
<JEEB>
hev1 allows for extradata parameter sets just fine
<JEEB>
array_completeness being either 1 or 0
<JEEB>
in other words, "are all the parameter sets in this extradata?"
<Daemon404>
i wonder why it is default
<Daemon404>
it is essentially only useful for live fmp4 with mid stream changes
<JEEB>
you can look at the merge history
<JEEB>
it's semi-accidental :P
<Daemon404>
just fork things...
<JEEB>
and it's in MKTAG which makes git grep'ing it fun