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
<mkver>
michaelni: Why does the FFV1 encoder allow to override the pixel format's bitdepth via bits_per_raw_sample for e.g. GBRP16, but not for its non-planar analogue RGB48?
lexano has quit [Ping timeout: 256 seconds]
TheSashmo has quit [Quit: Leaving...]
mkver has quit [Ping timeout: 256 seconds]
thilo has quit [Ping timeout: 246 seconds]
thilo has joined #ffmpeg-devel
thilo has quit [Changing host]
thilo has joined #ffmpeg-devel
iive has quit [Quit: They came for me...]
SystemError has quit [Remote host closed the connection]
SystemError has joined #ffmpeg-devel
Wenbin_Chen__ has quit [Read error: Connection reset by peer]
<mkver>
wbs: Thanks. I only looked at these patches, not at the cmake file.
lexano has joined #ffmpeg-devel
<kierank>
11:56:05 <Daemon404> its in full color!
<kierank>
As I understand it in India that's a big deal
darkstardevx has joined #ffmpeg-devel
darkstardevx has quit [Remote host closed the connection]
<haasn>
how much processing should functions like ff_hevc_decode_nal_vps() be doing? for example, if there is a bitstream like this: infer_foo_flag : u(1); if (infer_foo_flag != 1) { foo: u(8) } is it better style to add struct HEVCVPS { uint8_t infer_foo_flag; uint8_t foo; } and handle the inference logic in some other component, or is it good style to just add the uint8_t foo and do the
<haasn>
inference in-line with the parsing?
<haasn>
(supposing that the inference logic only depends on the value of other signalled bitstream members)
<nevcairiel>
i think we would usually do the infering there and not store the flag, unless something needs it (like vulkan for some reason needs all this shit :P)
<Lynne>
don't worry, vulkan won't be needing any more, it already has all extensions hevc had
<Lynne>
...for now
<Lynne>
:)
Krowl has joined #ffmpeg-devel
jamrial has joined #ffmpeg-devel
<thardin>
is there a way to "un-map" streams to an output? like when using -map 0
<thardin>
except throwing away say all audios streams
<jamrial>
yeah -map -foo
<thardin>
like -map -0:a ?
<jamrial>
yeah
<JEEB>
funky
<thardin>
neato
BBB has quit [Remote host closed the connection]
BBB has joined #ffmpeg-devel
<Lynne>
is rtmps used anywhere?
<wbs>
Lynne: yes, live streaming to facebook is exclusively rtmps, iirc
<thardin>
does ffmpeg not support copying streamid's?
<jamrial>
is it not copied if you do -c copy?
<thardin>
nope
<j-b>
good morning
<thardin>
defaults to 0x100 0x101 and so on
<thardin>
it's not part of metadata either is seems, so -map_metadata 0 doesn't help
<thardin>
streamid has its own avdictionary thing for some reason
<jamrial>
thardin: there's -streamid, but it takes an argument as id, it doesn't copy from input
<thardin>
yeah
<thardin>
it's possible to work around by first running ffprobe and massaging its output, but annoying
<thardin>
I think I might ape -copytb and friends
<jdek>
wbs: using .irp within .macro with gas has issues right?
Krowl has quit [Read error: Connection reset by peer]
<wbs>
jdek: no it does work in general, but you can't use \() the way you want to there
<jdek>
right
<wbs>
jdek: because \() gets expanded when the macro gets expanded, not when you iterate the .irp expansion
<wbs>
jdek: if you can avoid needing \() it works fine. in some cases, you can have a separate macro which you invoke from within .irp, which then does the \() as needed
<jdek>
ah yes, remember you mentioning it but just forgot what the exact problem was
<jdek>
can just irp outside the macro for this, just a list of stub functions
<thardin>
woop, my new -copystreamid works
<thardin>
hmm but not with -streamid quite the way I think users would expect
<thardin>
there we go
Krowl has joined #ffmpeg-devel
<jamrial>
thardin: can't you extend -streamid to also copy in some form?
dykai has joined #ffmpeg-devel
dykai has quit [Client Quit]
<thardin>
maybe? digging around on the web it seems just copying PIDs is a common enough question
<thardin>
currently it's -streamid index:value
<thardin>
I don't expect it'd be a very common usecase to want to copy from some other stream than the one that's being remuxed/transcoded. and even then you could do it manually
<thardin>
-map_streamid might be a better thing then perhaps. but also so would making it proper metadata
<thardin>
since you can then just -map_metadata
<jamrial>
instead of map_streamid, an option is to extend streamid using specifiers so it works in a similar way
<thardin>
I'll toss what I have on the ML and see what people think
<jamrial>
so if you do -streamid:0 0:1, it will copy the id of the second stream from the first input into the first stream of the output
cone-403 has quit [Quit: transmission timeout]
<thardin>
looks like it could maybe collide with the correct format
<thardin>
-streamid 0:1 being perfectly valid
<thardin>
though that would mean a format-global streamid
<jamrial>
my point is that it only works if you use a specifier
<thardin>
I think
<thardin>
right
<jamrial>
-streamid 0:1 does one thing, -streamid:0 0:1 does another. it's backwards compatible, but admitedly a tad confusing
<thardin>
but then compare that to just treating it like metadata
<thardin>
copytb could be likewise simplified is time_base were metadata as well, to name an example
<thardin>
or not quite. but I think you get the point
<thardin>
main question is if "id" is too short and generic of a key to cause a clash
<Lynne>
mkver: know when you might have time to look at the aac patchset?
<Lynne>
I have channel layout improvements from USAC, but I'd rather not pile them on
* Sean_McG
peeks in
<mkver>
Lynne: Maybe next week?
<Lynne>
alright, thanks
SystemError has quit [Remote host closed the connection]
SystemError has joined #ffmpeg-devel
cone-340 has joined #ffmpeg-devel
<cone-340>
ffmpeg James Almer master:662dbf826dda: avutil/frame: add helper to remove side data of a given type from an array
<cone-340>
ffmpeg James Almer master:a16338089cfb: avutil/frame: add helper for adding side data w/ AVBufferRef to array
<cone-340>
ffmpeg James Almer master:55621f6fae76: avutil/frame: add a flag to allow overwritting existing entries
<cone-340>
ffmpeg James Almer master:adb67bba0640: avutil/version: bump minor after recent AVFrame API additions
<cone-340>
ffmpeg James Almer master:6d760c666d57: avutil/mastering_display_metadata: add a new allocator function that returns a size
<cone-340>
ffmpeg James Almer master:6def8e3923f8: avcodec/decode: add AVFrameSideData helper wrappers that don't depend on frames
<cone-340>
ffmpeg James Almer master:6d0c89980c78: avcodec/hevcdec: export global side data in AVCodecContext
jarthur has joined #ffmpeg-devel
<Sean_McG>
jamrial: ASan instance caught a leak in fate-side_data_array after these
AbleBacon has joined #ffmpeg-devel
<jamrial>
Sean_McG: thanks
<cone-340>
ffmpeg James Almer master:dd5f665b4010: avutil/frame: free the old side data buffer before replacing it
Krowl has quit [Read error: Connection reset by peer]
Guest8 has joined #ffmpeg-devel
<Guest8>
hello
<Guest8>
looking for someone to help me create channels from vod and also have epg.
<Sean_McG>
this is a developer channel, for usage you want #ffmpeg
<Guest8>
yes
Wenbin_Chen__ has joined #ffmpeg-devel
Wenbin_Chen_ has quit [Read error: Connection reset by peer]
Gramner has quit [Ping timeout: 246 seconds]
Guest8 has left #ffmpeg-devel [#ffmpeg-devel]
Krowl has joined #ffmpeg-devel
Gramner has joined #ffmpeg-devel
ccawley2011 has quit [Ping timeout: 256 seconds]
<tmatth>
Lynne: youtube also supports rtmps
<tmatth>
s/youtube/youtube live
mkver has quit [Ping timeout: 260 seconds]
mkver has joined #ffmpeg-devel
ccawley2011 has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
<thardin>
jamrial: having had a bit more of a think, I might actually need to be able to copy streamid from another stream for the things I'm working on atm (:
<thardin>
the use case being replacing the audio in an mpegts stream with audio from another stream, while keeping the PIDs
<thardin>
still, being able to leverage the metadata syntax could be useful
cone-340 has quit [Quit: transmission timeout]
jamrial has quit [Read error: Connection reset by peer]
jamrial_ has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
jamrial_ has quit [Read error: Connection reset by peer]
<another|>
can someone update the topic in #ffmpeg to 7.0 ?
<thardin>
-map_metadata 0 -map_metadata:s:2 0:s:2 should be the same as -map_metadata 0 , right?
SystemError has quit [Remote host closed the connection]
SystemError has joined #ffmpeg-devel
<thardin>
ah no that's only global metadata. so by default stream metadata is copied unless -map_metadata:s is used?
jamrial has joined #ffmpeg-devel
<thardin>
*metadata_streams_manual = 1
<thardin>
yep
<thardin>
and it does it after processing -map_metadata so getting metadata automatically copied for all the other streams is a bit tricky
Raz- has quit [Ping timeout: 264 seconds]
b50d has joined #ffmpeg-devel
Krowl has joined #ffmpeg-devel
SystemError has quit [Remote host closed the connection]
SystemError has joined #ffmpeg-devel
IndecisiveTurtle has joined #ffmpeg-devel
<kierank>
BBB: I have 4hrs to kill on plane, what kind of small ASM tasks could we have. Mmx to sse2? Easy v210x flavours? Anything else?
<BBB>
I thought we had turned into managers and we wrote tweets instead of asm
<BBB>
in terms of ffmpeg: write some avx512icl swscale, or maybe *ugh* hevc/vvc avx2 *ugh*
<BBB>
that would be pretty sweet for ffmpeg
<BBB>
mmx to sse2 is always good but I haven
<BBB>
't looked at how far we are so don't know where to go next
<kierank>
I mean to tweet about
<kierank>
As simple tasks
<kierank>
Because people ask
<kierank>
Your blog post is good but then people want tasks
Krowl has quit [Read error: Connection reset by peer]
jarthur_ has joined #ffmpeg-devel
<another|>
go though encoder list and document which global/generic options apply to it
<another|>
instead of just private options
<kierank>
ASM tasks
jarthur has quit [Ping timeout: 260 seconds]
<Gramner>
converting mmx to sse2 is probably a good entry-level task. it's easier than writing something completely new from scratch. just try picking something with checkasm coverage if possible
<wbs>
at this point, do we have any clue about how many DSP interfaces we have that still lack checkasm coverage?
<thardin>
jamrial: I'm experimenting with passing streamid via metadata and it seems to work well
<thardin>
this idea could be applied to more fields than just st->id
kurosu has quit [Quit: Connection closed for inactivity]
Traneptora has joined #ffmpeg-devel
ccawley2011 has quit [Read error: Connection reset by peer]
jamrial_ has joined #ffmpeg-devel
jamrial has quit [Read error: Connection reset by peer]
Sean_McG has quit [Quit: leaving]
Sean_McG has joined #ffmpeg-devel
IndecisiveTurtle has quit [Ping timeout: 246 seconds]
uau_ has joined #ffmpeg-devel
uau has quit [Ping timeout: 268 seconds]
<compn>
wonder why youtube hasnt spent a few dimes to get some decoding/encoding optimizations . oprofile the slowest pieces of the decoders/encoders and even speeding them up 1% , over a billion videos would be a huge savings