[FFmpeg-devel-irc] IRC log for 2010-04-30

irc at mansr.com irc at mansr.com
Sat May 1 02:00:54 CEST 2010


[00:07:27] <CIA-7> ffmpeg: michael * r22991 /trunk/ffmpeg.c: Print warnig if requested samplingrate is unsupported.
[05:05:08] <astrange> http://www.macroplant.com/adapter/ sent them an email asking them to not ship ffmpeg --enable-nonfree
[05:05:22] <astrange> but i doubt i can convince them to not use faac so it's probably hopeless...
[06:08:04] <benoit-> moin
[06:08:15] <superdump> morning
[07:31:27] <Tjoppen> morning
[07:31:39] <kshishkov> god morgon
[07:33:01] <av500> gm
[07:33:05] <Tjoppen> valborg -> halvdag \o/
[07:34:05] <pJok> st. bededag -> holiday \o/
[07:34:26] <pJok> even though i live in sweden, im still bound by danish holidays
[07:34:52] <av500> I feel for you
[07:35:09] <pJok> hehe
[07:35:10] <kshishkov> well, Germans invented International Workers Day too
[07:37:35] <av500> yes, nice thing I can go shopping tomorrow...
[07:37:38] <av500> err, can't
[07:37:48] <kshishkov> av500: same here
[07:38:17] <av500> so you can spend another full day in irc...
[07:38:45] <av500> you have a place to stay yet?
[07:41:17] <kshishkov> yes, of course
[07:42:02] <av500> good :)
[07:42:13] <pJok> we dont have that problem here in sweden
[07:42:28] <pJok> i can shop every day with a few expeptions till 22
[07:43:03] <kshishkov> yes, I miss Sweden
[07:43:12] <pJok> i think may 1st and december 24th+25th
[07:43:19] <pJok> are the exeptions
[07:43:28] <kshishkov> you can also add that you can shop starting at 7:00 and not from 8:30 like here
[07:43:36] <pJok> yup
[07:43:41] <pJok> not all shops open at 7 though
[07:43:48] <kshishkov> yes
[07:43:52] <pJok> and in weekends the centers open at 10 or 11
[07:44:02] <pJok> my local one opens at 8
[07:44:15] <pJok> but i know the ones in malmö open at 7
[07:47:58] * kshishkov still misses Sweden
[07:48:26] <pJok> weren't you getting closer?
[07:49:44] <kshishkov> by about 200km, yes
[07:50:00] <kshishkov> I need about 7 more relocations ;)
[07:50:05] <av500> :)
[07:50:42] <av500> what radius of movement does you visa allow?
[07:51:03] <kshishkov> I need a map to determine that
[07:51:23] <kshishkov> from Spain to Finland, I guess
[07:51:26] <av500> ok
[07:51:48] <av500> kshishkov: will they let you go to linuxtag?
[07:51:59] <kshishkov> I hope so
[07:54:58] <KotH> greetings earthling
[07:55:18] <kshishkov> greetings alien
[07:56:42] * KotH zapps kshishkov with his catgirl ray
[07:57:18] * kshishkov has builtin resistance
[07:57:44] <KotH> against cat girls? i dont think so
[07:58:15] <av500> I guess he throws balls of yarn as decoys
[07:58:46] <kshishkov> KotH: I even won't even call any of my machines "natsuki"
[07:59:18] * elenril always thought there's something wrong with kshishkov 
[07:59:40] <kshishkov> elenril: I'm Ukrainian, isn't that obvious?
[08:00:10] <spaam> KotH: alien?  that one was new..
[08:00:57] <kshishkov> spaam: de har "alien passport" i Estland och/eller Lettland
[08:01:38] <spaam> kshishkov: haha. borde fixa till KotH då :)
[08:01:49] <spaam> kshishkov: då han är en alien :)
[08:03:15] * KotH used to have an alien registration card
[08:04:12] <spaam> KotH: so kshishkov was right then :)
[08:07:11] * KotH zaps spaam with his death ray
[08:07:19] <KotH> you knew too much!
[08:07:39] <spaam> ouch!
[08:08:24] * av500 casts ash cloud over KotH
[08:08:45] * KotH doesn't fly
[08:17:19] * pJok casts magic missile
[08:20:15] * KotH sprinkles pixie dust all around him
[08:31:11] <Tjoppen> I have been tasked with muxing MOVs that use external media. any ideas if I can adapt lavf's muxer to suit such a need?
[08:32:22] <kshishkov> probably you can
[08:32:25] <Tjoppen> no such API exists of course, but I imagine being able to give a muxer a AVIndexEntry array would be useful for both the MOV and MXF muxers
[08:32:43] <Tjoppen> *I don't think such and API exists
[08:40:39] <Tjoppen> I think I have a plan of sorts. a bit tricky though
[08:41:18] <kshishkov> lycka till!
[08:45:45] <Tjoppen> :)
[08:46:08] <Tjoppen> I might post an RFC on the list though.. dunno if such a thing would get accepted upstream
[08:57:33] <lu_zero> hi bilboed-pi
[08:58:13] <bilboed-pi> yo
[09:11:09] <niobos> I'll probably get flamed for being off-topic, but I'll risk it anyway: On the ffmpeg-dev mailinglist I see some post about optimization: what should/shouldn't be SSE'ed, read/write interleaving, allignment, ...  Where can I find more info about these low-level things? how do you test if methodA is faster than methodB? are there general guidelines (possibly CPU/arch dependent)?
[09:14:42] <av500> you implement A and B and stopwatch which one is faster
[09:37:43] <astrange> http://agner.org/optimize/
[10:06:00] <niobos> astrange: that looks very promising, thx!
[10:07:37] <astrange> but benchmarks are better
[10:08:43] <niobos> true, but I first need to get a feel for "what optimizations are possible and which make sense in this case"
[10:11:32] <bilboed-pi> Honoome, gaaah zlib :( I seriously want to murder those guys
[10:13:14] * mru too
[10:13:21] <mru> bilboed-pi: what did they do now?
[10:13:57] <KotH> .o0(FFassassins)
[10:14:14] <bilboed-pi> just the usual "here's a release and you can bite my shorts if you expect any kind of changelog. You want what ? a supository ? oh, a repository ? what's that ?"
[10:14:51] <bilboed-pi> every release is the guess-o-tron deluxe
[10:15:01] <kshishkov> why should anyone bother?
[10:15:04] <mru> you could diff it against the previous
[10:15:15] <av500> compare md5sums
[10:15:26] <mru> which will probably give you a ton of whitespace changes
[10:15:39] <bilboed-pi> mru, the diff is useless without context of the changes
[10:17:03] <bilboed-pi> remember that link someone posted last week or the week before with points based on how much a project sucks ? zlib gets all the points
[10:17:13] <mru> wow
[10:17:26] <mru> that's impressive
[10:17:31] <kshishkov> really? do they post release as an attachement to a message on forum?
[10:17:40] <hyc> lol
[10:17:41] <bilboed-pi> kshishkov, ok, maybe not that bad :)
[10:17:52] <mru> hyc: some people do that
[10:17:59] <hyc> amazing...
[10:18:13] <bilboed-pi> screenshot of release note posted on forums
[10:18:17] <hyc> well zlib is not exactly mysterious code. what's wrong with reading a diff.
[10:18:29] <av500> bilboed-pi: printed screen shot on wooden table!
[10:18:37] <bilboed-pi> hyc, the *actual* code is ok, the problem is all the cruft that goes with it
[10:18:41] <bilboed-pi> av500, win ! :)
[10:18:57] <hyc> laser-etched?
[10:19:07] <mru> the code itself is rather ugly
[10:19:11] <kshishkov> bilboed-pi: that's why mru has his own implementations for decoder
[10:19:31] <hyc> back when I worked support in college, we had a callfrom someone who wanted to use an Apple LaserWriter to etch designs into wooden baseball bats
[10:19:35] <bilboed-pi> kshishkov, sure... but what about the hundreds of other packages depending on it ?
[10:19:44] <bilboed-pi> it broke wireshark for example
[10:19:45] <bilboed-pi> yay
[10:19:58] <av500> hyc: http://thedailywtf.com/Articles/Web_0_0x2e_1.aspx
[10:20:06] <kshishkov> bilboed-pi: buy a lot of screws and send one to each package maintainer
[10:20:09] <mru> I wrote that decoder mostly as an excuse for learning to use the vlc reader
[10:21:28] <hyc> av500: mmm, gonna do that with my next rtmpdump release ;)
[10:22:06] <av500> extra points for releasing a patch only, printed and photographed
[10:22:25] <mru> on a wooden table of course
[10:22:30] <av500> of course
[10:22:32] <hyc> it'll be printed in a ransom-note font too
[10:22:56] <kshishkov> and photo is not digital but rather scanned
[10:23:09] * mru writes ransom emails by copying and pasting words from different blogs
[10:23:24] <av500> mru: but they can monitor the blogs you read!
[10:24:12] <av500> better take letters from SPAM you recieve
[10:24:28] <mru> good idea
[10:24:28] <spaam> spam spam spam :)
[13:11:21] <Honoome> bilboed-pi: yeah don't tell me about zlib… they are most definitely on crack!
[13:11:49] <mru> as good as IJG's?
[13:13:01] <Dark_Shikari> http://i41.tinypic.com/20v0sox.png
[13:13:09] <Dark_Shikari> this is what happened when I press release'd and got /.ed
[13:14:07] <Dark_Shikari> heh, IJG
[13:15:16] <KotH> hmm... linear gorth and exponential back-off
[13:15:20] <KotH> growth*
[13:24:02] <Honoome> mru: nah, but still… they have been releasing again after a few years… and broke the hell by trying to implement largefile support “properly”
[13:24:28] <Honoome> among other things, they inverted one if(n)def logic between .4 and .5 that broke half a dozen packages at least
[13:34:18] <mru> speaking of ijg, it's apparently ok to mock them (him?), but xiph is off-limits?
[13:35:01] <Honoome> mru: gnu's off-limits as well
[13:35:07] <mru> ah, right
[13:35:18] <Honoome> mru: have you seen the responses I had when I criticised fold.c?
[13:35:54] <mru> gnu isn't nearly as dangerous as xiph
[13:36:07] <mru> gnu only reimplement existing stuff they don't like the licence on
[13:36:19] <mru> xiph try to invent stuff
[13:36:52] <Honoome> gnu has lock-ins as well… and if you cannot even criticise their over-engineering you hit a spiral of “it doesn't matter if it's technically decent or not as long as it's FreeTheWayTheyWantItToBe”
[13:37:22] <mru> like gcc made deliberatly difficult to extend
[13:37:33] <av500> gcccccc
[13:37:53] <Dark_Shikari> Honoome: of course you can
[13:37:57] <mru> it's all a tangled mess to stop people putting their own frontend etc on it
[13:38:00] <Dark_Shikari> reddit/etc are overflowing with "gnu sucks, use llvm"
[13:38:01] <lu_zero> gcc is that difficul to extend?
[13:38:07] <Dark_Shikari> You just have to _ignore_ the freetards
[13:38:11] <Dark_Shikari> and mention llvm at every third sentence
[13:38:18] <mru> gnu != gcc
[13:38:43] <lu_zero> In my experience the main issue with gcc is that doesn't use autotools
[13:38:51] <Dark_Shikari> gnu ⊆ gcc
[13:38:52] <mru> it does
[13:38:54] <lu_zero> it rapes 3 different version of it in a quite bad way
[13:39:02] <mru> only 3?
[13:39:11] <lu_zero> by the time I was hacking it yes
[13:39:32] <lu_zero> but adding subsystems and code generation didn't look that bad
[13:39:33] <mru> and why does it run configure so many times?
[13:39:48] <av500> better safe than sorry
[13:39:56] <ohsix> nested projects
[13:40:02] <mru> they have a million little sub-configures
[13:40:12] <mru> which mostly check _again_ if you have a fortran compiler
[13:40:13] <ohsix> and they can all be in or out of tree
[13:40:33] <lu_zero> the fortran is due old libtool mostly
[13:40:33] <ohsix> you can point it at a cache like you can with any other :>
[13:40:39] <lu_zero> _now_ that had been fixed
[13:41:05] <Honoome> mru: and one of the reason why I criticise coreutils is because they also rape autotools through their gnulib
[13:41:31] <Honoome> Dark_Shikari: interestingly enough, I hadn't complained about GCC per-se that time ;) and the problem is I hit linuxtoday rather than reddit at that time, so was filled with freetards :|
[13:41:36] <lu_zero> still I hope to have clang, ack and whatever in a better shape so gcc will cleanup
[13:42:17] <Honoome> ack as in the perl-based grep-alike?
[13:42:22] <lu_zero> no
[13:42:29] <lu_zero> the crazy compiler you have in minix
[13:42:38] <Honoome> oh shit…
[13:43:49] <lu_zero> uh?
[13:44:31] <Honoome> lu_zero: how much time will it take for shilling to write his own compiler at this pace? :|
[13:44:43] <lu_zero> shilling?
[13:44:44] <lu_zero> meh
[13:44:54] <ohsix> joerg
[13:45:01] <mru> that troll...
[13:45:15] <lu_zero> mru: envious? =)
[13:45:27] <ohsix> status ;]
[13:45:50] <mru> was the outcome of our battle ever decided?
[13:45:58] <lu_zero> I stil wonder what would happen if we put theo, joerg and ciaran in the same room
[13:46:09] <Honoome> lu_zero: add Drepper for fun
[13:46:18] <lu_zero> Drepper doesn't qualify
[13:46:37] <Honoome> no but it spices joerg up
[13:46:45] <lu_zero> brrr...
[15:52:33] <Dark_Shikari> mru: steve jobs is epic troll
[15:52:35] <Dark_Shikari> "A patent pool is being assembled to go after Theora and other “open source” codecs now."
[15:53:52] <kshishkov> why don't you believe that?
[15:54:18] <Dark_Shikari> not a matter of believe, I just don't think Steve Jobs has any evidence to it, and is saying it intentionally to troll freetards
[15:54:24] <Dark_Shikari> and is thus awesome
[15:54:35] <kshishkov> :)
[15:56:16] <mru> it's annoying when bad people do cool things
[15:56:48] <BBB> don't you love him?
[15:56:56] <Dark_Shikari> well, I have a bit more respect for steve jobs these days.  it's clear that he does not believe everything he says
[15:56:57] <BBB> where did he say that?
[15:56:59] <Dark_Shikari> or even every decision he makes
[15:57:04] <Dark_Shikari> and sometimes he just does things to piss people off
[15:57:08] <Dark_Shikari> And I can stand behind that.
[15:57:13] <BBB> that is totally awesome
[15:57:19] <BBB> I would love to set up a garage startup
[15:57:24] <BBB> own it while it becomes worth $100billion
[15:57:30] <BBB> and then totally piss on people
[15:57:33] <BBB> just because I can
[15:57:35] <Dark_Shikari> Yes, this is what Jobs does.
[15:57:38] <BBB> exactly
[15:57:44] <BBB> I want to be like him (r)(c)(tm)
[15:57:51] <BBB> er, ""Him""
[15:57:59] <BBB> I want to be like Him[tm](r)(c)
[15:58:01] <kshishkov> BBB: get rid of Mac till it fully devours your soul!
[15:58:13] <Dark_Shikari> oh you'd have to be stupid to own a mac
[15:58:17] <Dark_Shikari> that means you're ACTIVELY letting him troll you!
[15:58:18] * BBB stupid
[15:58:25] * BBB trolled
[15:58:34] <BBB> Dark_Shikari: where did he say that?
[15:58:51] <kierank> s/mac/iphone
[15:58:56] <Dark_Shikari> http://blogs.fsfe.org/hugo/2010/04/open-letter-to-steve-jobs/
[15:59:08] <Dark_Shikari> All video codecs are covered by patents. A patent pool is being assembled to go after Theora and other “open source” codecs now.
[15:59:11] <Dark_Shikari> Unfortunately, just because something is open source, it doesn’t mean or guarantee that it doesn’t infringe on others patents. An open standard is different from being royalty free or open source.
[15:59:16] <Dark_Shikari> Sent from my iPad
[15:59:19] <Dark_Shikari> _troll_
[15:59:25] <BBB> that's a troll
[15:59:29] <BBB> h264 is open
[15:59:36] <BBB> the author of this piece is a freetard
[15:59:37] <BBB> 'nuf said
[15:59:39] <Dark_Shikari> BBB: um, DUH
[15:59:41] <Dark_Shikari> it's from the FSF
[15:59:45] <BBB> fuck the fsf
[15:59:46] <Dark_Shikari> the point is, steve jobs' response is perfect
[15:59:49] <Dark_Shikari> it knows his audience
[15:59:53] <BBB> how do you know it's him?
[15:59:53] <Dark_Shikari> he knew what would piss them off the most
[15:59:54] <Dark_Shikari> And he said it
[16:00:06] <Dark_Shikari> I love it.
[16:00:38] <BBB> I want to marry steve jobs
[16:00:44] <Dark_Shikari> also, if you like apple trolling
[16:00:45] <Dark_Shikari> read http://www.suregottold.com/
[16:00:53] <Dark_Shikari> All about trolling apple, and apple trolling.
[16:00:56] * kshishkov records BB words for further blackmail
[16:02:05] <BBB> :-p
[16:02:44] <BBB> here's some more, kshishkov
[16:02:50] <BBB> steve jobs is awesome
[16:02:52] <BBB> linux sucks
[16:02:59] <BBB> macs are better than lunix
[16:03:08] <BBB> anything more needed before I get kb'ed?
[16:03:10] <kierank> xp > all
[16:03:15] <BBB> no, that's a lie
[16:03:16] <kierank> nuff said
[16:03:21] <BBB> everyone knows vista is better than xp
[16:09:09] <BBB> what I really love is the final sentence
[16:09:18] <BBB> "since ..., >>> I think <<< I ..."
[16:09:25] <BBB> this guy has absolutely no fucking clue :)
[16:10:02] <BBB> (just to be clear, under american law every private conversation is (c) owned by its author and you need explicit permission to publish it, i.e. he just broke the law right there and if SJ really wanted to piss him off, he could sue him)
[16:10:27] <BBB> freetards.org is still available
[16:10:29] <BBB> hmm...
[16:11:20] <Dark_Shikari> buy it, redirect to FSF
[16:12:47] <mru> that would be fun
[16:13:02] <mru> or better, proxy it, so the url stays
[16:14:39] <kierank> meh $7 is too high a price for fsf trolling
[16:15:04] <mru> trolling fsf isn't that much fun
[16:15:08] <mru> too predictabl
[16:15:09] <mru> e
[16:15:28] <mru> Q: troll
[16:15:34] <mru> A: freedom, freedom, freedom
[16:16:32] <kierank> http://www.youtube.com/watch?v=wJPyV5KziUU
[16:18:07] <BBB> mru: GNU/Freedom
[16:18:57] <mru> kierank: that's cheating
[16:19:27] <mru> you should troll them into saying freedom without mentioning it explicitly
[16:20:21] <kierank> there's also the "freedom to steal" blooper: http://www.youtube.com/watch?v=Uta2OZUCNRA
[16:20:25] <peloverde> http://github.com/aconverse/ffmpeg-heaac/tree/ps_pub
[16:23:09] * BBB hugs peloverde 
[16:23:11] <BBB> does it work?
[16:23:55] <peloverde> mostly, it only outs in mono so you get to select if you L or R manually
[16:24:44] <peloverde> basically because I haven't figured out how I'm going to deal with backwards compatible signaling
[16:28:22] <peloverde> I'm thinking about using faad's approach possibly
[16:29:20] <peloverde> I might also write a BSF to manipulate signaling, but the BSF API seems to constricting
[17:00:38] <kshishkov> BBB: I don't think your wife minds Linux but you marrying somebody else may be not tolerated that well
[17:07:28] <BBB> :-p
[19:05:25] <DonDiego> moin
[19:06:19] <kshishkov> gruess dich
[19:06:47] <DonDiego> monty has replied..
[19:06:54] <DonDiego> mru: already seen it?
[19:07:01] <mru> yes
[19:07:15] <mru> *sigh*
[19:12:12] <kshishkov> bye
[19:12:53] <BBB> are the kids playing again?
[19:13:07] <DonDiego> it seems..
[19:13:22] <Dark_Shikari> BBB: apparently the freetards are already whining about apple's upcoming "patent attack" on theora
[19:13:25] <Dark_Shikari> due to what jobs said
[19:13:32] <BBB> that was quick
[19:13:33] <BBB> where?
[19:13:36] <DonDiego> WTF?
[19:13:38] <Dark_Shikari> I immediately envisioned a guy surfing at the beach
[19:13:44] <Dark_Shikari> and a patent coming out of the water
[19:13:45] <Dark_Shikari> and eating him
[19:13:58] <peloverde> Does anyone have systems refsoft newer than isolibjan08b?
[19:13:58] <Dark_Shikari> and instead of a shark fin, there's the corner of a pad of paper
[19:14:04] <Dark_Shikari> which moves around
[19:14:07] <Dark_Shikari> and the jaws theme music plays
[19:14:41] <peloverde> The reference remuxer is segfaulting on me
[19:15:03] <DonDiego> mru: what do you say?
[19:15:07] <janneg> DonDiego: http://hugoroy.eu/jobs-os.php
[19:15:18] <Dark_Shikari> DonDiego: it was hilarious
[19:15:22] <Dark_Shikari> Jobs is actively trolling freetards
[19:15:27] <Dark_Shikari> thus making him awesome
[19:16:19] <DonDiego> what was hilarious?
[19:16:38] <Dark_Shikari> All video codecs are covered by patents. A patent pool is being assembled to go after Theora and other “open source” codecs now.
[19:16:41] <BBB> his last letter in the original
[19:16:42] <Dark_Shikari> Unfortunately, just because something is open source, it doesn’t mean or guarantee that it doesn’t infringe on others patents. An open standard is different from being royalty free or open source.
[19:16:45] <BBB> "I think"
[19:16:46] <Dark_Shikari> Sent from my iPad
[19:16:47] <BBB> that was hilarious
[19:17:01] <peloverde> no, isolib is from apple therefore jobs is satan
[19:17:25] <peloverde> how hard is it to make a reference implementation that doesn't segfault on the first reference file
[19:19:39] <BBB> http://blogs.msdn.com/ie/archive/2010/04/29/html5-video.aspx
[19:19:42] <BBB> so I guess h264 won
[19:19:45] <BBB> \o/
[19:19:50] <BBB> let's bury ogg/theora
[19:20:40] <Dark_Shikari> lol
[19:20:46] <Dark_Shikari> welcome to yesterday or so =p
[19:33:35] <j0sh> BBB: the qt demuxer patch is listed as a gsoc todo (http://people.gnome.org/~rbultje/ffmpeg-patchset/16-rtsp-x_qt.patch)
[19:33:43] <j0sh> what is left to be done with it?
[19:48:07] <bcoudurier> evening guys
[19:53:27] <DonDiego> moin
[19:53:49] <DonDiego> mru: will you reply?
[19:54:24] <mru> I am not going to engage in a flamewar
[19:54:31] <BBB> j0sh: bcoudurier doesn't like it
[19:54:41] <BBB> j0sh: so discuss it with him, make a plan and get it to work :)
[19:54:50] <DonDiego> mru: what happened to you? :)
[19:56:51] <Dark_Shikari> don't worry, steve jobs took up the job of trolling them now
[20:00:08] <BBB> I don't see monty's reply
[20:00:36] <BBB> or did diego mean monty's old, dated reply to mru's wonderful flametroll?
[20:01:01] <BBB> (for which I'd like to extend my compliments and congratulations)
[20:01:01] <mru> I guess he means the rant monty posted 2 days ago
[20:03:30] <DonDiego> yes
[20:03:35] <DonDiego> what do you make of it?
[20:04:00] <mru> it's a rant and a sensible reply is impossible
[20:04:17] <mru> they've conveniently deleted all email archives before 2002
[20:11:23] <BBB> j0sh: you'd likely want to start with qdm2/svq3 depacketizers... these are easier and I was further ahead with them at that time
[20:11:31] <BBB> j0sh: leave the qt patch for after that...
[20:11:43] <j0sh> ok will do
[20:16:09] <DonDiego> mru: you could reply by making your own article more detailed
[20:16:21] <DonDiego> fill in some more examples, clarify some things, etc..
[20:20:33] <peloverde> do people have thoughts on implicit SBR/PS? I'm at a bit of an impasse here
[20:20:58] <DonDiego> bye
[20:23:34] <BBB> peloverde: what's implicit ps?
[20:24:16] <peloverde> Implicit PS is when parametric stereo is not mentioned in the header and just shows up in the bitstream
[20:24:35] <peloverde> all signaling in ADTS (.aac files) is implicit
[20:25:06] <peloverde> in .mp4/.mkv SBR and/or PS can be explicitly signaled
[20:25:21] <saintd3v> so streaming radio uses implicit signaling then?
[20:25:49] <saintd3v> since it's raw aac (don't remember if they use adts or not)
[20:26:12] <peloverde> it depends on if they send an ASC (mp4a header) somewhere
[20:26:24] <peloverde> you don't need full blown mp4 for the header
[20:26:33] <saintd3v> but it _can_ be explicit also?
[20:26:33] <peloverde> it's the standard extradata format
[20:26:52] <BBB> so the question is, how do we signal that the samplerate (or channels) just doubled to the application?
[20:27:07] <BBB> does ps always go mono->stereo?
[20:27:11] <BBB> or can it go 1->5.1?
[20:27:19] <saintd3v> "BOO! I nao haz 2 chanz"
[20:27:35] <peloverde> ps always goes mono -> stereo
[20:27:44] <peloverde> mono -> 5.1 is called mpeg surround
[20:27:51] <peloverde> the successor to PS
[20:27:55] <BBB> how about abusing AVCodecContext.request_channels?
[20:28:04] <BBB> basically signaling more channels
[20:28:09] <BBB> wait for the app to update that value
[20:28:13] <BBB> and then exporting stereo
[20:28:18] <BBB> until then, downmix to mono
[20:28:23] <BBB> or alternatively always export stereo
[20:28:29] <BBB> (which is a bit hacky)
[20:29:32] <peloverde> the thing is, 3GPP AAC does have an SBR domain downmix feature
[20:29:49] <peloverde> so presumably AVCodecContext.request_channels should be used for that
[20:29:59] <BBB> right
[20:30:03] <BBB> but I meant something along those lines
[20:30:05] <peloverde> also how is the app supposed to know it wants stereo?
[20:30:08] <BBB> how about just always exporting stereo?
[20:30:29] <BBB> well, so for PS, you'd start with channels=1
[20:30:35] <BBB> so request_channels=1 also
[20:30:45] <BBB> update channels=2 once you see PS, leaving request_channels as is
[20:30:51] <BBB> wait for app to updat request_channels to 2
[20:30:55] <BBB> which means it wants stereo
[20:30:58] <BBB> until then, export mono
[20:31:01] <BBB> = backwards compatible
[20:31:30] <peloverde> setting channels to two but exporting one would probably require a major bump
[20:31:44] <BBB> ...
[20:31:55] <BBB> not really
[20:32:01] <BBB> because you left request_channels to 1
[20:32:11] <BBB> which takes precedence over channels=2
[20:32:13] <BBB> I think
[20:32:22] <BBB> what does the api doc say?
[20:33:12] <peloverde> it only says ausio only
[20:33:16] <peloverde> *audio only
[20:33:16] <BBB> ambiguous :)
[20:33:26] <BBB> I think request_channels takes precedence over channels
[20:33:32] <BBB> discuss on the ML, but I think this might work
[20:33:36] <peloverde> also request_channels is inside #if LIBAVCODEC_VERSION_MAJOR < 53
[20:33:46] <BBB> right, so it'd be request_channel_layout
[20:33:46] <peloverde> so it seems sill to rely on that
[20:33:50] <peloverde> ahhh
[20:33:51] <BBB> but same idea
[20:33:59] <BBB> so LAYOUT_MONO
[20:34:01] <BBB> and channels=2
[20:34:03] <BBB> = PS
[20:34:08] <BBB> wait until app sets LAYOUT_STEREO
[20:34:10] <BBB> whatever that is
[20:34:19] <BBB> and then export undownmixed PS signal
[20:34:36] <peloverde> so what would ffmpeg.c do when decoding to .wav?
[20:35:00] <BBB> A) leave it as mono, or B) use a VERY LONG av_find_stream_info()
[20:35:44] <BBB> s/or/and/ maybe
[20:36:37] <peloverde> I think exporting stereo all the time makes more sense
[20:36:43] <BBB> well yes
[20:36:49] <BBB> but only if av_find_stream_info() detected it
[20:37:02] <BBB> what if we pre-decoded 10MB and the PS implicit only came at 11th MB
[20:37:09] <BBB> then we'd obviously leave it as mono
[20:37:12] <BBB> better than nothing
[20:37:21] <peloverde> also I think you are putting the cart ahead of the horse here, can I explain the full problem?
[20:37:28] <BBB> but assuming the implicit PS comes rather quickly, then of course just always set request_channel_layout to LAYOUT_STEREO
[20:37:36] <BBB> sure
[20:37:38] <BBB> I might misunderstand
[20:37:40] <BBB> sorry if I do
[20:38:13] <peloverde> so right now SBR is supported PS isn't
[20:38:41] <peloverde> to figure out if implicit signaled SBR is present we use try_decode_frame()
[20:39:19] <peloverde> the problem is that prevents us from demuxing files the decoder doesn't support
[20:39:35] <peloverde> like we've lost the ability to demux LTP and SSR
[20:39:49] <peloverde> and LD
[20:39:57] <peloverde> which all are supported by libfaad
[20:40:38] <BBB> so what is the problem exactly, why don't they work anymore?
[20:41:15] <peloverde> so let's say we have an my_ltp_file.m4a
[20:42:21] <peloverde> and SBR is not signaled (aka implicit signaling)
[20:42:40] <peloverde> so to try to figure out the sample rate we try to decode a frame
[20:43:01] <peloverde> at which point the decoder errors
[20:43:07] <peloverde> because it doesn't support LTP
[20:43:20] <BBB> right
[20:43:40] <peloverde> before SBR we just said the sample rate was the nominal sample rate
[20:43:49] <BBB> the "faad hack"
[20:44:30] <BBB> I think it's not necessarily bad that we error out
[20:44:40] <BBB> I mean, if people want them, just use ./configure --enable-libfaad
[20:44:50] <BBB> it's not that difficult :)
[20:44:57] <BBB> I agree that it's non-ideal
[20:45:08] <BBB> but in the end, AVCodecContext.sample_rate/channels are correct
[20:45:20] <BBB> which imo is more important than a temporary inconvenience
[20:45:35] <BBB> (eventually we'll support LTP/SSR/...)
[20:45:48] <peloverde> The way it's plumbed even if -acodec libfaad is requested it still tries to use our decoder to figure out the sample rate
[20:46:26] <BBB> you mean in mplayer?
[20:47:18] <BBB> mplayer then doesn't use the right configure switches to ffmpeg... that's fixable
[20:47:19] <peloverde> no i mean in ffmpeg
[20:47:23] <BBB> really?
[20:47:31] <BBB> shouldn't libfaad take precedence if it's available?
[20:47:42] <BBB> I guess only if you use --disable-decoders=aac
[20:47:43] <BBB> ...
[20:47:45] <BBB> hmm...
[20:48:03] <BBB> well, then you need both those configure switches :)
[20:48:08] <BBB> still fixable
[20:49:21] <peloverde> so let's assume thats all fixed for the sake of argument
[20:49:27] <BBB> ok
[20:50:05] <BBB> I suppose -acodec copy still is broken right?
[20:50:15] <peloverde> sort of
[20:50:26] <BBB> hm... well that's a tough one
[20:50:32] <BBB> you'll either inconvenience players
[20:50:34] <BBB> or transcoders
[20:50:50] <peloverde> yeah
[20:50:59] <BBB> so which is the lesser evil?
[20:51:21] <peloverde> I think something to specify reconfigurability should be in the avcodec context
[20:52:03] <peloverde> actually I'm not sure how much that would help
[20:52:25] <BBB> I don't think it'd be all that helpful in practice
[20:52:31] <peloverde> anyway the real problem is PS can only occur inside SBR
[20:52:42] <BBB> although I'm sure some players would use it to if (flag & that_flag) printf("THIS FILE HAS SBR/PS!!!111\n");
[20:52:51] <BBB> and then call it "extended metadata support"
[20:53:14] <BBB> ok, back to the problem
[20:53:21] <BBB> I don't think it's a major issue
[20:53:32] <BBB> I'll think a little about the transcoding case
[20:53:38] <BBB> I think we can come up with a solution there
[20:53:40] <peloverde> I'd like to be able to decode mono files to mono when possible
[20:53:51] <peloverde> not running the SBR filterbank twice saves significant CPU
[20:53:58] <BBB> got it
[20:54:16] <BBB> I think the try_decode_frame() approach is fine then
[20:54:21] <BBB> have the demuxer set channels=1
[20:54:24] <BBB> and leave it as is
[20:54:35] <BBB> make sure request_channel_layout is set
[20:54:36] <BBB> somehow
[20:54:55] <BBB> and then use that...
[20:55:12] <BBB> by the way, AAC is a little icky now that I think about it :)
[20:55:33] <peloverde> The real trick is just to always use explicit signaling
[20:55:56] <peloverde> I want to create a BSF to rewrite signaling
[20:55:59] <BBB> right, and it'd be lovely if all avi files were CBR and so on :)
[20:56:14] <peloverde> but signaling is just a field in the header
[20:56:19] <peloverde> so most files are fixable
[20:56:22] <BBB> the thing is, people create hacky files :)
[20:56:33] <BBB> what does quicktime do with these files?
[20:56:34] <BBB> do they work?
[20:56:43] <BBB> that's an important question
[20:56:56] <peloverde> I don't know there is no quicktime for linux
[20:57:27] <peloverde> quicktime only got PS support very recently if at all
[20:57:55] <peloverde> I wouldn't treat quicktime as the gold standard for this particular feature
[20:58:07] <BBB> ok
[20:58:39] <peloverde> QuickTime got SBR support around when 10.6 came out
[21:00:04] <BBB> mru: can I add mdct to configure's wmavoice_deps to fix that dependency issue?
[21:00:12] <peloverde> Does -request_channels set request_channel_layout?
[21:00:36] <BBB> I don't know :(
[21:00:39] <BBB> it should
[21:00:43] <mru> BBB: does wmavoice use mdct?
[21:00:51] <BBB> mru: it uses ff_sine_table_init()
[21:00:55] <mru> that's not mdct
[21:01:12] <BBB> I know, but all other codecs using ff_sine_table_init() (e.g. cook, nellymoser) use deps=mdct
[21:01:13] <mru> if all it needs is the table, we should move those tables into their own files
[21:01:18] <BBB> no, no
[21:01:20] <BBB> not the table
[21:01:21] <BBB> the function
[21:01:28] <mru> difference?
[21:01:29] <BBB> we init a private table and then modify it slightly
[21:01:37] <BBB> we don't use ff_sine_table
[21:01:55] <mru> even less reason to pull in the whole thing
[21:02:06] <mru> yes, I know other codecs do it
[21:02:06] <BBB> so should we move the sine functions into their own files?
[21:02:11] <mru> but we've got to fix it sooner or later
[21:02:16] <BBB> right, agreed
[21:04:29] <peloverde> BBB, one other thing we can do in the demuxer is pretend SBR and PS were signaled off for non-LC files
[21:05:01] <BBB> you mean to skip try_decode_frame()?
[21:05:37] <peloverde> yes
[21:05:47] <peloverde> SBR/PS is never used with non-LC
[21:05:58] <BBB> how do you signal SBR again?
[21:05:58] <peloverde> there isn;t any legal profile that supports that
[21:06:03] <BBB> you set sample_rate=0 in the demuxer?
[21:06:08] <peloverde> yes
[21:06:14] <BBB> that sounds sane then
[21:06:20] <BBB> I would support that
[21:06:32] <BBB> are there hacked up files that use sbr in no-lc anyway?
[21:06:37] <BBB> or is it physically impossible?
[21:09:28] * BBB should write a blogpost about the wmavoice postfilter...
[21:09:35] <BBB> I guess I'm bored or so
[21:31:13] <CIA-7> ffmpeg: mru * r22992 /trunk/libavcodec/ (vp56.h vp56dsp.c vp5.c vp6.c Makefile vp56dsp.h vp56.c):
[21:31:13] <CIA-7> ffmpeg: VP56: move vp56_edge_filter to new VP56DSPContext
[21:31:13] <CIA-7> ffmpeg: Using macro templates allows the vp[56]_adjust functions to be
[21:31:13] <CIA-7> ffmpeg: inlined instead of called through function pointers. The new
[21:31:13] <CIA-7> ffmpeg: function pointers enable optimised implementations of the filters.
[21:31:14] <CIA-7> ffmpeg: 4% faster VP6 decoding on Cortex-A8.
[21:31:14] <CIA-7> ffmpeg: mru * r22993 /trunk/libavcodec/ (5 files in 2 dirs): ARM: NEON optimised VP6 edge filter
[21:44:15] <CIA-7> ffmpeg: alexc * r22994 /trunk/MAINTAINERS:
[21:44:15] <CIA-7> ffmpeg: Declare myself (Alex Converse) AAC maintainer.
[21:44:15] <CIA-7> ffmpeg: Approved by the previous maintainer Rob.
[21:44:15] <CIA-7> ffmpeg: alexc * r22995 /trunk/libavcodec/ (aac.c aacsbr.c aacsbr.h):
[21:44:15] <CIA-7> ffmpeg: Rewrite ff_sbr_apply in a manner more friendly to PS.
[21:44:15] <CIA-7> ffmpeg: This includes merging ff_sbr_dequant into ff_sbr_apply.
[21:44:16] <CIA-7> ffmpeg: alexc * r22996 /trunk/libavcodec/ (aac.c aacsbr.c): Reindent
[21:56:33] <BBB> peloverde: is this you? http://blog.case.edu/ajc30/
[21:56:54] <peloverde> yes from many years back
[21:57:20] <BBB> do you have a more recent one?
[21:58:57] <peloverde> no
[21:59:12] <peloverde> I've thought about doing a new one, but haven't gotten around to it
[21:59:33] <peloverde> (completely new blog, not a new entry there)
[22:00:24] <BBB> well, go go go!
[22:01:30] <peloverde> I just pushed a new changeset that actually decodes explicit PS to stereo (vs L or R) to http://github.com/aconverse/ffmpeg-heaac
[22:04:09] <peloverde> I thought about blogging about USAC but I'm afraid if I do MPEG might clamp down on access
[22:07:16] <peloverde> Are you doing some sort of ffmpeg blog aggregation or something like that?
[22:07:20] <peloverde> planet ffmpeg?
[22:08:52] <BBB> no
[22:09:20] <BBB> just trying to link to something you in my blogpost as a "thanks to alex for (trying to) explain(ing) me what a hilbert transform is"
[22:10:33] <CIA-7> ffmpeg: michael * r22997 /trunk/libavcodec/rawdec.c:
[22:10:33] <CIA-7> ffmpeg: avi bgr24 padding fix.
[22:10:33] <CIA-7> ffmpeg: Fixes issue1901
[22:19:29] <BBB> why don't you re-start posting on that blog?
[22:19:35] <BBB> it's fun to see yourself transform over time
[22:19:46] <BBB> I have blog posts about gstreamer taking over the world, or so
[22:19:51] <BBB> it's fun to look back
[22:36:01] <astrange> hmm, i just realized i know the author of spread open media
[22:43:46] <CIA-7> ffmpeg: alexc * r22998 /trunk/libavcodec/aacsbr.c:
[22:43:46] <CIA-7> ffmpeg: Increase size of patch_borders[].
[22:43:46] <CIA-7> ffmpeg: 6 patches means there can be 7 borders. Found by Chromium.
[23:09:38] <CIA-7> ffmpeg: alexc * r22999 /trunk/libavcodec/aacsbr.c:
[23:09:38] <CIA-7> ffmpeg: Move the SBR patch count check to prevent overwrites.
[23:09:38] <CIA-7> ffmpeg: Thanks to Chromium.
[23:33:37] <CIA-7> ffmpeg: alexc * r23000 /trunk/libavcodec/aacsbr.c:
[23:33:37] <CIA-7> ffmpeg: Enforce time border monotonicity.
[23:33:37] <CIA-7> ffmpeg: Thanks to Chromium.
[23:34:29] <ramiro> 23000 \o/
[23:52:54] <j-b> nice
[23:53:44] <spaam> woho
[23:54:12] <spaam> when will ffmpeg hit 24000 ?  sep ?


More information about the FFmpeg-devel-irc mailing list