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
iive has quit [Quit: They came for me...]
mkver has quit [Ping timeout: 245 seconds]
thilo has quit [Ping timeout: 268 seconds]
thilo has joined #ffmpeg-devel
HarshK23 has quit [Quit: Connection closed for inactivity]
arch1t3cht7 has joined #ffmpeg-devel
arch1t3cht has quit [Ping timeout: 260 seconds]
arch1t3cht7 is now known as arch1t3cht
lemourin has quit [Quit: The Lounge - https://thelounge.chat]
lemourin has joined #ffmpeg-devel
AbleBacon has quit [Read error: Connection reset by peer]
jamrial has quit []
Martchus_ has joined #ffmpeg-devel
kurosu has joined #ffmpeg-devel
Martchus has quit [Ping timeout: 245 seconds]
georgereynolds8 has quit [Ping timeout: 245 seconds]
georgereynolds8 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
kurosu has quit [Quit: Connection closed for inactivity]
Krowl has joined #ffmpeg-devel
ZeroWalker has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
Krowl has joined #ffmpeg-devel
ZeroWalker has quit [Ping timeout: 260 seconds]
m_ has joined #ffmpeg-devel
HarshK23 has joined #ffmpeg-devel
m_ has quit [Client Quit]
ZeroWalker has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
<beastd> BtbN: IIUC this literally in your Makefile should work: | awk '/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }' > $(@:.o=.d)
Krowl has quit [Read error: Connection reset by peer]
<beastd> if you want to assign it to a var in shell script, then another layer of quoting is necessary though
Livio has quit [Ping timeout: 268 seconds]
OLGA77 has joined #ffmpeg-devel
OLGA77 has quit [Client Quit]
Krowl has joined #ffmpeg-devel
cone-239 has joined #ffmpeg-devel
<cone-239> ffmpeg Lynne master:134dba9544f4: opusdsp: add ability to modify deemphasis constant
<cone-239> ffmpeg Lynne master:3390693bfb90: aacdec: avoid generating unused code when either implementation is disabled
deus0ww has quit [Ping timeout: 245 seconds]
deus0ww has joined #ffmpeg-devel
mkver has joined #ffmpeg-devel
<Lynne> ...looking at it now, why did I ever decide to do (movrel+ld1)*4 rather than movrel + 4*ld1...
Krowl has quit [Read error: Connection reset by peer]
ccawley2011 has joined #ffmpeg-devel
mkver has quit [Ping timeout: 268 seconds]
Krowl has joined #ffmpeg-devel
pmozil has joined #ffmpeg-devel
cone-239 has quit [Quit: transmission timeout]
ccawley2011 has quit [Read error: Connection reset by peer]
Krowl has quit [Read error: Connection reset by peer]
<BtbN> beastd: that's the already working command from configure
<BtbN> awk '/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($0, / /)) { cmd = "wslpath -u \"" $0 "\""; cmd | getline wsl; close(cmd); print "test.o:", wsl } }' is the one I want to get working
<BtbN> and it does not throw an error, but leads to nonsensical output I don't understand
mkver has joined #ffmpeg-devel
Traneptora has quit [Quit: Quit]
<BtbN> Ok, found the working commands: _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); if (!match($$0, / /)) { cmd = "wslpath -u '\'\\\'\''" $$0 "'\'\\\'\''"; cmd | getline; close(cmd); print "$@:", $$0 } }'\'' > $(@:.o=.d)'
<BtbN> I don't fully understand the behaviour of \ in '-Strings
<BtbN> like, it's always verbatim, but \\ still ends up as \
Traneptora has joined #ffmpeg-devel
<BBB> BtbN: that could just as well be the xz build toolchain exploit ;)
<BtbN> The whole nested DEPCMD stuff in configure/config.mak is beyond me as well
<BtbN> why it's nested like this and everything
<BtbN> But I do understand the awk command :D
<BtbN> so changing it to pipe the cl.exe Windows-Path through wslpath is easy enough, minus dealing with the three layers of escapes
<BtbN> It's a bit more readable once it ends up in config.mak:
<BtbN> CCDEP=$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '/including/ { sub(/^.*file: */, ""); if (!match($$0, / /)) { cmd = "wslpath -u '\''" $$0 "'\''"; cmd | getline; close(cmd); print "$@:", $$0 } }' > $(@:.o=.d)
Krowl has joined #ffmpeg-devel
Sean_McG has quit [Quit: leaving]
SystemError has quit [Ping timeout: 260 seconds]
SystemError has joined #ffmpeg-devel
tufei has quit [Remote host closed the connection]
tufei_ has joined #ffmpeg-devel
cone-559 has joined #ffmpeg-devel
<cone-559> ffmpeg Andreas Rheinhardt master:67c7c44c7956: avcodec/vp8: Return error on error
<cone-559> ffmpeg Andreas Rheinhardt master:4c8a6631ad13: fftools/ffmpeg_filter: Fix check
uau has quit [Remote host closed the connection]
uau has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
lexano has quit [Remote host closed the connection]
<another|> >writing dedicated secure chat applications on top of libavformat.
<another|> >This would bring in more users and developers
<another|> I was not aware that ffmpeg needs more users. I thought millions/billions was already enough
pmozil has quit [Remote host closed the connection]
<thardin> gotta leverage that ffbrand recognition
iive has joined #ffmpeg-devel
<thardin> ffemail when?
<BtbN> I mean, ffchat does sound like a cool project. Just please don't try to add it to the ffmpeg repo
<BtbN> Though like I already said, it's pretty much re-inventing tox
<thardin> if it isn't xmpp it's heresy
<BtbN> Didn't xmpp die from too much xml?
<thardin> nah. xml is great
<thardin> so great in fact that json people are busy reinventing it
<thardin> xml's main flaw is that its grammar isn't context free
<thardin> thou shalt make your protocol context free or regular
<BtbN> It's also WTF complex
<BtbN> like, you just don't need most of what makes it so complex 99% of the time
<thardin> sure, but so is json if you want to do the same things with it that xml can do
<thardin> it's a lack of discipline and a junior attitude that leads to using json over xml
<thardin> the json-ld space is one place you find these xml-like stuff
<Lynne> xmpp died from "I've send you an OMEMO message!"
<thardin> I'm convinced the dislike for xml is purely aestethic
<thardin> Lynne: most clients support omemo these days, and some (like snikket) employ TOFU to make things easier for users
<thardin> (trust on first use)
<Lynne> still, hacking up encryption on top of unencrypted protocol hasn't worked very well
<thardin> omemo is a bit ugly though because it's largely a separate system, and also relies on json for some reason rather than properly mapping it into stanzas
<Lynne> matrix is the same
<thardin> does matrix still require oodles of resources to run? last I heard joining large and/or old channels is very slow because the client has to fetch all history
<Lynne> nah, they added a sliding sync protocol, and dendrite is pretty fast and low resource
<Lynne> but it still feels like they're bolting on more and more crap
<thardin> that's good at least
<Lynne> matrix p2p is still non-existent and would probably end up a completely separate network and implementation if it ever does happen
<thardin> matrix loses points for using non-RFC identifiers. @user:domain rather than user@domain like any sane protocol would
<Lynne> I remember hearing about a chat p2p system which looked promising, but I can't remember its name
<Lynne> I remember they were proud of the name they picked, an irish name for hug IIRC, that I thought was lame
<thardin> briar is the most promising *secure* chat system I've seen so far. but using it is a lot of work
mkver has quit [Ping timeout: 252 seconds]
<Lynne> it wasn't briar, it was an alternative to it
<thardin> it also eats oodles of battery energy on mobile since it has to stay connected to tor to receive messages
<thardin> either way, effort is way better spent improving existing clients. gajim for example is stuck cirka 2010 as far as multimedia support goes
<Lynne> that's the one
<Lynne> was welsh, not irish, still think it's one of the worst named open source projects
<thardin> vowels are an anglo invention!
Krowl has joined #ffmpeg-devel
<thardin> sounds similar to briar in that it relies on tor. based on the video on the site it looks like it uses hidden service(s) to relay messages rather than each client running a hidden service? but the audio suggests the hidden service runs on your phone
<thardin> the latter is briar's approach
<thardin> "direct connections between peers" doesn't jive with the graphics
<thardin> "The Cwtch project began in 2017 as an extension protocol for Ricochet providing group conversations via untrusted servers"
<thardin> this has metadata implications
<Lynne> nevermind then, didn't see it was based on tor
cone-559 has quit [Quit: transmission timeout]
tufei_ has quit [Remote host closed the connection]
tufei_ has joined #ffmpeg-devel
Livio has joined #ffmpeg-devel
beastd has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
beastd has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
ccawley2011 has joined #ffmpeg-devel
<beastd> BtbN: Ah ok. I see. Was confused about reading you want to use the awk in a make file
<BtbN> well, it's in configure and ends up in config.mak, which is a Makefile
<beastd> BtbN: As for \ in single quoted string in POSIX shells it is like you said first \ is \. So \\ will be \\
<BtbN> negative
<BtbN> echo '\' and echo '\\' both echo a single \
<BtbN> Or is that echo's own parser doing that?
<beastd> in which environment?
<BtbN> bash and zsh
<beastd> that is not normal
<BtbN> hm, actually. Might be just zsh. I thought the weird behaviour in the shellscript rooted from it
<BtbN> yeah, it's just zsh doing that.
<beastd> interesting. i wonder why that is.
<BtbN> that seems quite destructive of a behaviour
<BtbN> It might be echo parsing it again after all
<BtbN> Cause bash uses /usr/bin/echo, while zsh has it as a builtin
<beastd> BtbN: probably is zsh's echo implementation. what does this give in zsh: printf "%s\n" '\\'
<another|> >echo is a shell builtin
<another|> type -a echo
<BtbN> That prints \\ as expected
<BtbN> ah, so zsh just has a smarter "which"
<beastd> ack. then it is the echo of zsh acting on the \ on its own
<BtbN> Cause which echo in zsh says it's built-in
<beastd> actually, in shell scripting echo should best be avoided. there is a mess of incompatible implementations.
<BtbN> Yeah, you almost always want printf
<BtbN> For a simple error message echo is fine tho
<beastd> sure. if you can control it good enough it should yield the expected result.
<beastd> also for quickly outputting sth in an interactive session it's a bit more convenient.
mkver has joined #ffmpeg-devel
cone-587 has joined #ffmpeg-devel
<cone-587> ffmpeg Michael Niedermayer master:5eb05f44503d: avcodec/hevcdec: Check ref frame
<cone-587> ffmpeg Michael Niedermayer master:d9699464c3b2: avcodec/vp3: Call ff_progress_frame_unref() before ff_progress_frame_get_buffer()
<cone-587> ffmpeg Michael Niedermayer master:091fdce87e88: avcodec/pngdec: Check last AVFrame before deref
<beastd> BtbN: the problematic aspect of your CCDEP implementation is passing the arg to wslpath -u inline. how well is the stuff passed to it controlled? one could imagine to break out of the quoting scheme. not sure if command injection is possible.
___nick___ has joined #ffmpeg-devel
<BtbN> I'd imagine you totally can write a custom #warning or something that'd get your stuff put there
<BtbN> But if you managed to get code into ffmpeg that can do that, don't we have bigger problems?
<beastd> it's also making the quoting harder. maybe sth safer and simpler could be done. what system interpreter does the awk call? system shell of that wsl user?
<BtbN> I'd imagine it just does a system() or something
<BtbN> though it does read the output, so it can't be that simple
<BtbN> I've looked for a way to invoke wslpath without a shell from awk, but it simply can't do that
<beastd> BtbN: just to understand you are executing this all in a shell in WSL system, right?
<BtbN> I'm not sure I understand the question
<BtbN> I'm using WSL instead of MSYS, cause I have it anyway, and it also vastly outperforms MSYS
<beastd> OK, that is what I though. Argh. It's hard to talk about this.
<BtbN> One other idea on how to handle that was to run it through xargs and have that call wslpath
<BtbN> but that gets broken by there being spaces in the path
<beastd> BtbN: Does this work with your simple test case when executed on the shell in your WSL system: printf "%s: %s\n" test.o "$(echo 'including file: \yeah\ya\ye' | awk '/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($0, / /)) { print $0 } }')"
<beastd> BtbN: ah sorry should better include the cl.exe invocation: printf "%s: %s\n" test.o "$(cl.exe -showIncludes -Zs -nologo -c E:/test.c | awk '/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($0, / /)) { print $0 } }')"
<BtbN> I'm just not sure what to defend against here
<BtbN> When could there be code we're compiling that could be malicious but only via injecting shell commands?
<beastd> not really defending against a very specific attack but making it more robust so it's could not be the weak point in the future
<BtbN> cl.exe -showIncludes -Zs -nologo -c test.c | awk '/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($0, / /)) { print $0 } }' | xargs -d\\n -n1 wslpath -u | awk 'BEGIN { printf "test.o:" }; { sub(/\r/,""); printf " " $0 }; END { print "" }'
<beastd> but in general i guess you are right, at that point probably enough other bad things happened that it wouldn't be necessary to inject something there
<BtbN> this should also be a valid .d file, right?
<BtbN> test.o: /home/btbn/Projects/FFmpeg/test.h /home/btbn/Projects/FFmpeg/bla.h /home/btbn/Projects/FFmpeg/bli.h
<BtbN> I'm not sure subshells are a thing in a Makefile
<BtbN> Your second command procues https://bpa.st/QLUA
<BtbN> which is invalid
<beastd> I would think beyond getting the quotes right, subshells should be working in make files
<BtbN> Anyway, the xargs approach avoid ever having the cl.exe output evaluated by a shell
<BtbN> But it's kinda ugly
<beastd> BtbN: ah i see my command will reproduce the line breaks
<BtbN> (And doesn't call wslpath) :D
ZeroWalker has quit [Quit: Leaving]
<beastd> oops, that's actually the bigger problem because the LFs we could get rid off
sepro has quit [Ping timeout: 256 seconds]
sepro has joined #ffmpeg-devel
___nick___ has quit [Ping timeout: 240 seconds]
<beastd> BtbN: Cool. I will try to think of sth simpler. But not today :)
Krowl has joined #ffmpeg-devel
<BtbN> FFmpeg doesn't support building in directories with spaces anyway, does it?
lexano has joined #ffmpeg-devel
Krowl has quit [Read error: Connection reset by peer]
<cone-587> ffmpeg Timo Rothenpieler master:59767636c77f: fate: allow https for git URLs
<thardin> spaces are reactionary
<Lynne> you know, we make fun of those who say "in the cloud", or "powered by AI", or "the blockchain"
<thardin> yes
<Lynne> but what about all those idiots who keep quoting shit quotes like "the unix way, does one thing and only one thing well" or "but but but BUT what about xkcd 927"
<thardin> behead those who insult unix
<Lynne> they're right, but they deserve to be shown out, shipped out to a medieval community, be handed a bible and start enforcing it
<Lynne> they win if they build a rocket, but they'll never do it
<Lynne> at the very least, they'll never reach their beloved unix following the unix dogma, or h264-levels of adoption if they follow their standards dogma
<BtbN> Most of them are using devuan or something and continue to shout and windmills
<BtbN> *at
wcpan has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
wcpan has joined #ffmpeg-devel
ccawley2011 has quit [Read error: Connection reset by peer]
jamrial has joined #ffmpeg-devel
<cone-587> ffmpeg James Almer master:31327c2d075a: avformat/mov: fix the check for the heif item parsing loop