[gst-devel] Daily IRC logs

wim.taymans at chello.be wim.taymans at chello.be
Fri Apr 27 06:27:43 CEST 2001


[07:10] Nick change: ajmitch -> ajbusy
[07:25] _gst_newt_ joined #gstreamer.
[07:28] <taaz> anyone awake?
[08:05] taaz (dlehn at 66.37.66.32) left irc: Ping timeout for taaz[66.37.66.32]
[08:10] _gst_newt_ joined #gstreamer.
[08:26] iGN_ (ign at login1.simplemente.net) joined #gstreamer.
[09:00] richardb (richard at 195.153.205.133) joined #gstreamer.
[09:05] BBB (BBB at ucu-105-116.ucu.uu.nl) joined #gstreamer.
[09:06] <BBB> hey omega_dinner, can you send me the xawtv MJPEG video? :)
[09:06] <BBB> or someone else maybe....
[09:12] <richardb> Hmmm, early morning for me today.  Never been up before omega went to bed.
[09:14] <BBB> wow, a new record? :)
[09:25] Action: BBB needs an xawtv MJPEG AVI for testing.....anyone where to find it?
[09:32] BBB (BBB at ucu-105-116.ucu.uu.nl) got netsplit.
[09:33] BBB (BBB at 131.211.105.116) joined #gstreamer.
[11:48] ajbusy (me at 203.173.237.120) left irc: Ping timeout for ajbusy[203.173.237.120]
[11:50] ajbusy (me at p56-max6.dun.ihug.co.nz) joined #gstreamer.
[14:40] Gandalf_ (gandalf at tux.rsn.bth.se) left irc: Ping timeout for Gandalf_[tux.rsn.bth.se]
[14:41] Gandalf_ (gandalf at tux.rsn.bth.se) joined #gstreamer.
[16:52] thomas (thomas at 212-100-172-175.adsl.easynet.be) joined #gstreamer.
[17:51] steveb (steveb at 24.132.238.49) joined #gstreamer.
[17:55] <BBB> does anyone here have an xawtv-recorded MJPEG-AVI movie for me to borrow?
[18:01] Nick change: wtay-sleeping -> wtay
[18:01] <wtay> BBB: I have one
[18:01] <wtay> 1.5MB
[18:02] <wtay> no audio though
[18:02] <BBB> no problem
[18:02] <wtay> not very interesting either
[18:02] <BBB> as long as it'a an MJPEG AVI.... to test the MJPEG-tools :)
[18:02] <wtay> ok, uploading to gstreamer.net/media
[18:02] <BBB> I made a nice toy (long live SDL) to combine video layers, I will try the same with gstreamer quickly
[18:03] <BBB> look at http://ronald.bitfreak.net/images/yuvplay.png :)
[18:03] <BBB> can I alread merge video streams into one with gstreamer? 
[18:04] <wtay> nope
[18:04] <BBB> hm.... we can make that for you if you want
[18:04] <wtay> cool
[18:05] <BBB> phlipp made something to combine yuv streams into one, we already had something for video->yuv and I made something to preview the combined yuv-stream and philipp made something to make a new avi out of this yuv stream and andrew made mpeg2enc with yuv-input
[18:06] <BBB> so we can preview and create these yuv streams and make video files out of it
[18:06] <BBB> very neat
[18:06] <wtay> nice
[18:06] <wtay> gstreamer.net/media/movie3.avi
[18:06] <BBB> thnx :)
[18:07] <BBB> is it almost totally white?
[18:07] <BBB> I get a "christmas-like" atmosphere here.....:?
[18:08] steveb (steveb at 24.132.238.49) left irc: Ping timeout for steveb[24.132.238.49]
[18:09] <wtay> BBB: I told yo it wasn't interesting at all :-)
[18:09] <BBB> okay, but it's supposed to be white? :)
[18:09] <BBB> then t least I know it plays back okay
[18:09] <wtay> yes, a chistmas tree
[18:09] <BBB> ok, kewl!
[18:10] <wtay> completely white :)
[18:10] <BBB> kewl
[18:10] <wtay> I have something more interesting too but that one is *huge*
[18:10] <BBB> our player doesn't play it back ok, but yuv2lav/yuvplay does.....weird, it's both SDL-based
[18:11] <wtay> 41MB...
[18:14] <BBB> hm.... now to find out why lavplay doesn't play it back right
[18:17] Nick change: wtay -> wtay-eating
[18:17] <thomas> wtay-eating: is there a simple linux-supported video card that takes coax cable signal in and outputs either coax signal or tv RCA out ?
[18:23] Uraeus (Uraeus at c224s9h5.upc.chello.no) joined #gstreamer.
[18:23] <Uraeus> hi ho
[18:25] <BBB> does somebody here also have a "nuppelvideo" movie or know what that is? :)
[18:25] <Uraeus> BBB: German porn?
[18:29] ChiefHighwater (paul at temple-baptist.com) left irc: Read error to ChiefHighwater[temple-baptist.com]: Connection reset by peer
[18:34] <matth_> wtay-eating: i have a few questions for you about gst_queue_get()...
[18:34] <matth_> wtay-eating: let me know when you have a sec
[18:35] <matth_> s/sec/minute
[18:48] thomas (thomas at 212-100-172-175.adsl.easynet.be) left irc: [x]chat
[18:53] <BBB> Uraeus: nah......... rather american porn >:)
[18:53] Action: BBB was gone for a bit
[18:53] <BBB> :)
[18:54] Gandalf_ (gandalf at tux.rsn.bth.se) got netsplit.
[18:57] Nick change: taaz_ -> taaz
[18:57] Gandalf_ (gandalf at tux.rsn.bth.se) returned to #gstreamer.
[19:09] ChiefHighwater (paul at temple-baptist.com) joined #gstreamer.
[19:13] Nick change: wtay-eating -> wtay
[19:13] <wtay> matth_: ?
[19:13] Uraeus (Uraeus at c224s9h5.upc.chello.no) left irc: Ping timeout for Uraeus[c224s9h5.upc.chello.no]
[19:16] <matth_> wtay: sorry - i was distracted.  okay:
[19:16] <matth_> first off: is queue->block ever set to FALSE?  who sets it?
[19:17] <wtay> I think it's an arg to the gtkObject, checking
[19:17] <wtay> it is
[19:17] hadess (hadess at pc121-gui14.cable.ntl.com) joined #gstreamer.
[19:18] <wtay> yo
[19:18] <wtay> but no app has ever set it to non blocking AFAIK
[19:18] <hadess> yo
[19:19] <matth_> wtay: what is its intent?
[19:19] <wtay> no idea...
[19:19] <wtay> it returns a NULL buffer when the queue is empty...
[19:20] <wtay> I think it was a request/idea/future plan from Erik...
[19:22] <matth_> okay: we just conferred and it's no longer relevant -- i'll remove. 
[19:22] <wtay> ok
[19:23] <omega_dinner> just got response from Andrew, he's drooling
[19:23] <matth_> wtay: next: what is gst_pad_set_eos() supposed to do?  (i'm looking in gst_queue_get())
[19:24] <wtay> omega_dinner: :-)
[19:25] <wtay> matth_: ok
[19:25] <wtay> matth_: hmm
[19:25] <omega_dinner> er
[19:25] Nick change: omega_dinner -> omega_rr
[19:25] <omega_rr> wtay: you wrote eos....
[19:25] <wtay> current eos handling is handled by setting the pad EOS flag at the eos provider
[19:26] <matth_> it looks like this gst_pad_set_eos() stuff is a way to propogate the eos to the other side of the queue... is that right?
[19:26] <wtay> for example the disksrc will call the gst_pad_set_eos() on its src pad
[19:26] <wtay> yes
[19:27] <wtay> but only if the queue is empty
[19:27] <matth_> this propogates left-to-right or downstream?
[19:27] <wtay> so eos comes in on the sink pad, flag is set inside the queue, queue runs empty, flag is set on the src pad
[19:27] <wtay> left to right
[19:27] <matth_> got it.
[19:27] <matth_> thx
[19:32] Uraeus (Uraeus at c224s9h5.upc.chello.no) joined #gstreamer.
[19:32] <wtay> hi
[19:33] <Uraeus> hi wtay
[19:35] ajbusy (me at p56-max6.dun.ihug.co.nz) got netsplit.
[19:35] ajbusy (me at p56-max6.dun.ihug.co.nz) returned to #gstreamer.
[19:35] <Uraeus> test
[19:35] <Uraeus> test 123
[19:47] <omega_rr> 456
[19:49] <Uraeus> :)
[19:50] <wtay> hmm smpeg still hasn't figured out that there is a bug in the mpeg_play code regarding motion comp... maybe I should mail them..
[19:50] <omega_rr> what kind of bug?
[19:50] <Uraeus> wtay: no flame them instead :)
[19:50] <omega_rr> I have one in my code, maybe you should check out libmpeg1
[19:51] <wtay> no half pel motion compensation for one and an error with a sign somewhere
[19:51] <wtay> looks horrible..
[19:51] <wtay> omega_rr: what's wrong?
[19:52] <omega_rr> bidir macroblocks are fragged
[19:52] <omega_rr> I think it might actually have something to do with the idct, since the patterns I see are odd, but it only seems to happen on bidir macroblocks
[19:53] <wtay> maybe I should try to create a gstreamer plugin from it and check it out..
[19:53] <omega_rr> from libmpeg1?
[19:53] <omega_rr> I wouldn't recommend it just yet
[19:54] <omega_rr> I'll do it, because that's how I want to refine the API, anyway
[19:54] <wtay> oh
[19:54] <wtay> ok
[19:54] <omega_rr> but check it out, lemme put up the test video I've been using
[19:54] <wtay> is there a test program for it then?
[19:54] <omega_rr> yes
[19:54] <omega_rr> gst.net/media/everest.m1v
[19:54] <wtay> codecs.org is not responding :(
[19:54] <omega_rr> as soon as I can talk to sf.org
[19:54] <wtay> oh, I already have that one
[19:55] <omega_rr> ok
[19:55] <omega_rr> sf is back
[19:55] <wtay> what's the cvs module?
[19:57] <wtay> ok libmpeg
[19:59] <omega_rr> oh
[19:59] <omega_rr> you need libcodec and libbitstream too <g>
[19:59] <wtay> I noticed :)
[19:59] <wtay> looking at the src...
[20:02] <omega_rr> BBB: does Andrew live on IRC anywhere?
[20:07] <BBB> nope :)
[20:07] <BBB> I can ask him to come here if you want, though
[20:08] <BBB> did you see my yuv-stream-combiner-ith-preview-option? I think I'll port it to gstreamer too someday when I understand gstreamer
[20:09] <omega_rr> if he's around, yeah
[20:09] <omega_rr> no, lemme check that out
[20:10] steveb (steveb at node1ee31.a2000.nl) joined #gstreamer.
[20:10] <omega_rr> interesting.  it just takes N yuv streams and merges them with offsets?
[20:10] <hadess> "all your iTunes components are belong to me"
[20:10] <BBB> omega_rr: kind of
[20:11] <steveb> hi all
[20:11] <omega_rr> BBB: do you have a Miro DC10+
[20:11] <wtay> hi
[20:11] <BBB> omega_rr: http://ronald.bitfreak.net/images/yuvplay.png
[20:11] <BBB> omega_rr: yup
[20:11] <omega_rr> does it have a tuner?
[20:13] <BBB> no
[20:13] <omega_rr> grrr
[20:13] <omega_rr> so much for that idea
[20:13] <BBB> lol
[20:13] <omega_rr> which mjpeg cards do have tuners?
[20:13] <omega_rr> the G400-TV does
[20:13] <omega_rr> but it's also a video card
[20:13] <BBB> G400/G200 do
[20:13] <omega_rr> BBB: see gstreamer.net/wiki/Gbox
[20:13] <BBB> rainbow runners
[20:14] <steveb> i've been thinking a lot about an implementation for time-dependant parameters for elements - I think the time has come to wiki my ideas
[20:14] <omega_rr> yup
[20:14] <omega_rr> you mean sample-accurate control?
[20:14] <steveb> yes
[20:14] <omega_rr> thus the node name SampleAccurateControl
[20:14] <hadess> omega_rr: what is Gbox ?
[20:14] <omega_rr> or somesuch
[20:14] <omega_rr> <g>
[20:14] <omega_rr> hadess: see the page
[20:14] <omega_rr> I have another idea for a name, actually
[20:15] <steveb> I was thinking DynamicParams
[20:15] <omega_rr> since CHW has some concerns about the public perception of anything with a G in front of it
[20:15] <steveb> ie, parameters that have an awareness of time
[20:15] <omega_rr> right
[20:16] <BBB> omega_rr: why do you need a tuner?
[20:16] <omega_rr> because it's supposed to timeshift TV
[20:16] <BBB> omega_rr: the input for a DC10+ is regulated by the input from the VCR/vidcam
[20:16] <omega_rr> you can't do TV without a tuner
[20:16] <hadess> interesting
[20:16] <BBB> then connect the VCR to the input and tune with the VCR :)
[20:16] <omega_rr> um, no
[20:16] <omega_rr> single-box
[20:17] <BBB> hm........
[20:17] <BBB> then a Matrox is probably a better idea
[20:17] <steveb> wtay, omega_rr: do either of you have a burning desire to implement dynamic params yourself?  I'd like to give it a crack if my idea gets a positive response
[20:17] <BBB> I just implemented a big "enable-tuner-for-matrox" patch for lavrec
[20:17] <omega_rr> G400-TV or rainbow runner?
[20:17] <omega_rr> steveb: no, other pressing issues for me, though I definitely need it for my own projects
[20:17] <BBB> uhm.... dunno...... look @ marvel.sourceforge.net
[20:18] <BBB> they should know which is best
[20:18] <steveb> omega_rr: thought so
[20:18] <wtay> grr, I need mmx.h and sse.h
[20:18] <omega_rr> steveb: so I very much want to debate the design, yes
[20:18] <omega_rr> they're in gstreamer/include, I think
[20:18] <omega_rr> or I'll put mine on gstreamer.net
[20:19] <omega_rr>  /*.h
[20:19] <wtay> they don't mix very well last time I tried
[20:19] <steveb> omega_rr: I will even encourage inline comments in the page
[20:19] <omega_rr> cool
[20:20] <omega_rr> BBB: the choice of cards is very tricky
[20:20] <steveb> what is the unit of time for timestamp?
[20:20] <omega_rr> the mobo I'm looking at (the ASUS A7VI-VM) has onboard video
[20:20] <omega_rr> UST, or nanoseconds since boot/origin
[20:20] <omega_rr> in 64bit
[20:20] <BBB> omega_rr: I know. most don't have hardware acceleration which really really sucks
[20:20] <omega_rr> lemme dblcheck it's nanoseconds though
[20:21] <omega_rr> BBB: the key is that I need a mjpeg card with tuner, that can draw raw YUV to a framebuffer
[20:21] <omega_rr> primarily so I can put 2 or more of these in the machine, without having 2 or more VGA cards
[20:21] <BBB> hm...... with tuner?
[20:21] <BBB> quite difficult
[20:21] <BBB> I think you cannot get more than one marvel in a machine
[20:21] <omega_rr> ick
[20:21] <BBB> you can try a buz and a DC10+ together :)))
[20:22] <BBB> in windows, windows crashes directly on that
[20:22] <omega_rr> of course
[20:22] <BBB> in linux with sergueis driver, it rocks!
[20:22] <omega_rr> but I'd also rather have N of the same....
[20:22] Nick change: omega_rr -> omega_lunch
[20:22] <omega_lunch> I'll be back
[20:22] <BBB> hm....ok :)
[20:22] <omega_lunch> bring Andrew in in 30-45min if you can
[20:22] <steveb> nothing seems to use timestamp in gstreamer yet
[20:22] <BBB> lol
[20:23] <BBB> I'll ask him to come here - I think he's at home :)
[20:23] <wtay> steveb: mpeg_play does
[20:24] <steveb> wtay: which elements do though?
[20:24] <wtay> plugins/mpeg1/mpeg_play/gstmpeg_play.c for one and xvideosink too
[20:24] <steveb> ok, i'll check them out
[20:26] Action: hadess is messing up his system
[20:27] <BBB> haha, I sent the email to Andrew
[20:27] <BBB> let's hoep he reads it tonight
[20:40] <BBB> I'll be back later I have some work to do :)
[20:40] Action: BBB is away: work2do
[20:56] taaz (dlehn at 66.37.66.32) left irc: Ping timeout for taaz[66.37.66.32]
[20:56] taaz (dlehn at 66.37.66.32) joined #gstreamer.
[21:04] wtay (wim at 195.162.214.190) left irc: Client Exiting
[21:10] Nick change: ajbusy -> ajmitch
[21:23] wtay (wim at cable-195-162-214-190.upc.chello.be) joined #gstreamer.
[21:23] <ajmitch> hi wtay
[21:24] <wtay> hello
[21:24] <wtay> did the mail arrive?
[21:24] <taaz> hey, you were saying something about bugs in smpeg?
[21:24] <wtay> yes?
[21:25] <ajmitch> wtay: to me? nope
[21:25] <wtay> hmm
[21:25] <taaz> is that just mpeg1 stuff?  cause libmpeg2 can do mpeg1 streams too
[21:25] <wtay> yup, only mpeg1 stuff
[21:25] <taaz> could try to use mpeg2dec plugin for mpeg1 streams and see how it performs
[21:26] <wtay> taaz: yes
[21:26] <wtay> ajmitch: trying to send to myself now
[21:26] <taaz> i was trying to view a divx/avi/whatever the other day with gstmediaplay... the sync was waaaay off.. like 1 second or more.
[21:27] <wtay> taaz: indeed, avi sync is not very well implemented
[21:27] <ajmitch> wtay: send me the script you use (via dcc)
[21:27] <taaz> by "not very well" do you mean not at all? ;)
[21:27] <hadess> hey taaz, ajmitch
[21:27] <wtay> taaz: somewhat, I mean
[21:27] <ajmitch> hi hadess
[21:27] <wtay> cd /home/wim/
[21:27] <wtay> cat logs/fd_header logs/fd.log logs/fd_separator logs/scrappy.log |sendmail -t -F"Wim Taymans" -fwim.taymans at chello.be
[21:27] <wtay> ajmitch: that's it :-)
[21:28] <wtay> and I got the mail to myself...
[21:28] <ajmitch> wtay: hmm... not much too it, how could it go wrong? ;)
[21:28] <ajmitch> wtay: ok, shall i use anoher of my email addresses? ;)
[21:28] <wtay> ajmitch: yes
[21:29] <ajmitch> wtay: ajmitch at ihug.co.nz might work (my SF one points there)
[21:30] <wtay> ajmitch: sent (twice)
[21:35] <ajmitch> willl await it in my mail... ;)
[21:36] Action: hadess just created 4 useless bonobo components
[21:36] <wtay> 2001-04-26 21:29:39 14srSI-0006Fx-00 => ajmitch at ihug.co.nz R=smarthost T=remote_smtp H=out-mx.chello.be [195.162.196.21]
[21:36] <wtay> 2001-04-26 21:29:39 14srSI-0006Fx-00 Completed
[21:36] <wtay> 2001-04-26 21:29:43 14srSL-0006G5-00 => ajmitch at ihug.co.nz R=smarthost T=remote_smtp H=out-mx.chello.be [195.162.196.20]
[21:36] <wtay> 2001-04-26 21:29:43 14srSL-0006G5-00 Completed
[21:36] <ajmitch> useless?
[21:37] <hadess> yep, they just display a table, or a tree
[21:37] <omega_lunch> so any ideas on the Gbox idea?
[21:37] <hadess> and that's it
[21:37] <hadess> omega_lunch: yeah, rhythmbox will do the first 2 paragraphs =)
[21:37] <wtay> omega_lunch: I'm tempted to try the diskcache...
[21:37] Nick change: omega_lunch -> omega_rr
[21:38] <omega_rr> for that, yeah.
[21:39] <wtay> libmpeg doesn't compile...
[21:39] Action: omega_rr looks surprised
[21:39] <wtay> reconstruct.c:345: `lc_mcomp_sum_U8_S16_U8_8x8_mmx' undeclared (first use in this function)
[21:39] <wtay> reconstruct.c:345: (Each undeclared identifier is reported only once
[21:39] <wtay> and I think I know what the problem is
[21:39] <omega_rr> lemme give it a try, then check in what I need to do
[21:39] <omega_rr> brb
[21:40] <omega_rr> <gulp>
[21:40] Action: omega_rr does a diff
[21:43] <wtay> you include mcomp.c in mcomp.h but parts af the code are #ifdef'ed out because __LC_HAVE_MMX isn't defined when compiling libmpeg
[21:43] <omega_rr> hrm
[21:43] <omega_rr> remove config.cache and reconfig with mmx.h in the right place
[21:43] <omega_rr> or check the configure.in check
[21:44] <wtay> did that with the configure results:
[21:44] <wtay> checking for MMX-capable compiler... yes
[21:44] <wtay> checking for 3DNow!-capable compiler... no
[21:44] <wtay> checking for SSE-capable compiler... yes
[21:44] <wtay> in libmpeg
[21:45] <wtay> hmm, you do define __LC_HAVE_MMX in configure.in...
[21:45] <omega_rr> hmm
[21:45] <omega_rr> well, cvs update in libcodec
[21:45] <omega_rr> then I'll go patch up libmpeg
[21:46] <omega_rr> I changed the arch names to __LC_HAVE_X86_MMX
[21:46] <wtay> ooh, lots of changes 
[21:46] <omega_rr> so I have to update the configure.in in libmpeg
[21:46] <wtay> I also did make install
[21:46] <omega_rr> and some other stuff
[21:46] <omega_rr> see commitlog
[21:46] <omega_rr> ok
[21:46] <omega_rr> you'll want to do it again with libcodec
[21:46] <omega_rr> libbitstream should still work without changes
[21:47] <omega_rr> I have a massive rewrite of bitstream in the works, but in a separate working copy
[21:48] <wtay> how much faster is an MMX optimised bitstream?
[21:48] <ajmitch> bbl
[21:48] Nick change: ajmitch -> ajbusy
[21:48] <steveb> will richard's configure.in patch go into cvs?
[21:48] <omega_rr> also, you might be interested in signing onto the codecs.org lists, esp if Andrew gets onboard
[21:48] <omega_rr> wtay: depends, I'm working out the best mechanism still
[21:48] <omega_rr> but it's supposedly 2x faster, roughly
[21:48] <wtay> omega_rr: ok, I'll subsribe
[21:48] <omega_rr> my timings indicate that I can do 1000 5-bit reads at 5 cycles each, including next_word overhead
[21:49] <omega_rr> but that's in a tight loop
[21:50] <wtay> pretty good
[21:52] Action: omega_rr is timing the C equiv now
[21:53] Nick change: hadess -> hds-busy
[21:54] <omega_rr> ok, it works for me, I'll now commit and you can update
[21:55] <wtay> ok
[22:07] <omega_rr> gstreamer.net/cvs/ is a forwarder to the viewcvs now, as a shortcut...
[22:13] <steveb> what version of automake do you lot use?
[22:14] newbie (arte at host036087.arnet.net.ar) joined #gstreamer.
[22:15] <ChiefHighwater> ello
[22:19] <steveb> night
[22:19] steveb (steveb at node1ee31.a2000.nl) left irc: [x]chat
[22:21] newbie (arte at host036087.arnet.net.ar) left #gstreamer (lilo: KVIrc).
[22:25] dobey (dobey at dreadnought.ximian.com) joined #gstreamer.
[22:30] Wackston (as at f-82-217.cvx-munchen.ipdial.viaginterkom.de) joined #gstreamer.
[22:32] <Wackston> Any gstreamer dev folk around
[22:34] <wtay> yeah
[22:34] Action: wtay is a little distracted
[22:34] <Wackston> Just got an email from Ronald Bultje...
[22:34] <Wackston> Suggested Erik Watkinson wanted to chat re: MPEG 1/2 encoders...
[22:35] <wtay> Are you Andrew?
[22:36] <Wackston> That's me.  I use "wackston" for historical reasons.
[22:36] <wtay> cool, welcome :)
[22:36] <Wackston> I gather the issue is packing a reasonably o.k. MPEG encoder into gstreamer.
[22:37] <wtay> yes
[22:37] <wtay> but I would first create a library out of mpeg2nc
[22:37] <ChiefHighwater> omega (Erik) says ETA 10 mins...he's in a meeting just now
[22:37] <dobey> hrmm
[22:38] <Wackston> Ok doke... I'll just lurk here and send Ronald an email or two - I'll be listening up.
[22:38] <Wackston> Got a niggly YUV422 / YUV420 issue in JPEG to sort out.
[22:54] Action: omega_rr is here
[22:55] <Wackston> Hi Omega...
[22:55] <BBB> wackston? that can only be one guy!!!
[22:55] Action: BBB is Ronald :)
[22:55] <Wackston> Thats me (Andrew Stevens)...its a long story.
[22:55] Action: omega_rr is gonna commit his libmpeg stuff for wtay, sec..
[22:55] <dobey> ppppshftf
[22:56] <BBB> Wackston: the yuv-player is getting along quickly, I think I'll have a search-system in a few days.... if school doesn't bother me too much
[22:57] <Wackston> I should have a nice quiet weekend.  No project pressure at work
[22:57] <omega_rr> wtay: ok, update libcodec and libmpeg
[22:57] <Wackston> and my Mommy is overnighting friday which kills
[22:57] <wtay> ok thx
[22:57] <BBB> hm...... nice
[22:57] <Wackston> ski-ing for sat and sun is supposed to be crud weather
[22:57] <BBB> I have about a hundred school projects to go this weekend and next week :(
[22:58] <omega_rr> so, I haven't looked through the code much, is there a roadmap somewhere for mpeg2enc?
[22:58] <BBB> I'll leave you two alone and go back to schoolwork ;)
[22:58] <omega_rr> heh
[22:59] <Wackston> There's a TODO but its fairly low-level.
[22:59] omega_ (omega at qwest.dsplinux.net) joined #gstreamer.
[22:59] Action: omega_ can read better on this screen
[22:59] <Wackston> The exec. summary is that mpeg2enc is feature frozen.
[22:59] <Wackston> I.e. further work will be bugs and interoperability/environment only
[22:59] <Wackston> The reason is that it would be a major league pain to
[22:59] <Wackston> update to do the stuff that's not there.
[22:59] <omega_> but this is for 1.4 only, right?
[23:00] <Wackston> I'd rather invest the time in the sampeg-4 project and on stuff
[23:00] <Wackston> like.... (tada)
[23:00] <Wackston> getting it all into gstreamer so its really widely useful
[23:00] <omega_> url for sampeg?
[23:00] <Wackston> I very much doubt I will do much more to it.  The law of diminishing returns
[23:00] <Wackston> (hold on sec)
[23:01] <omega_> uni-mannheim doesn't respond, trying again
[23:01] <omega_> wtay: you trying latest cvs?
[23:01] <Wackston> http://sourceforge.net/projects/mpegvideo/
[23:01] <wtay> omega_ I see something, it looks good
[23:02] <Wackston> (pop)
[23:02] <omega_> play everest.m1v with plaympeg too
[23:02] <Wackston> is applyin fairly strongly.  What's really needed isn't better MPEG
[23:02] <omega_> any code for this project yet?
[23:02] <wtay> omega_ horrible with plaympeg :-)
[23:02] <Wackston> but stuff that relates to pre and post processing
[23:02] <omega_> wtay: hrm, even latest? I get cleaner mb's for B's with plaympeg
[23:03] <omega_> Wackston: yeah, that's the way things are going
[23:03] <Wackston> Code - yes definately.  I haven't looked for a bit.
[23:03] <wtay> omega_ well, the yuv scaling doesn't work so I can't see much details
[23:03] <Wackston> Move of house and job got in the way.  However I was hoping to start
[23:03] <omega_> the startup I worked for before RR was working on a workflow for encoding that involved significant preprocessing
[23:03] <Wackston> serious work with those guys sometime this year.  Dirk is good and knows his
[23:03] <omega_> no code in CVS on sf though
[23:03] <Wackston> compression / MPEG stuff
[23:04] <Wackston> However, I want to get closure on mpeg2enc first.   The big job
[23:04] <Wackston> is the multiplexer.  There isn't a good general purpose open source muxer.
[23:04] <Wackston> Its needed not just for the MPEG encoder folk but also the linuxtv guys
[23:04] <omega_> wtay: how well does the one in gstreamer work?
[23:04] <omega_> right
[23:05] <Wackston> They can pull MPEG from their sat / cable boards but remux / transcode isn't so hot.
[23:05] <wtay> omega_ it used to work somewhat
[23:05] <Wackston> What's the code base - "mplex".  That was my biggest error. Should have started
[23:05] <wtay> implemented from scratch without docs etc...
[23:05] <omega_> wtay: you're insane
[23:06] <Wackston> from scratch.  The author was *almost* right but not quite right.
[23:06] ajbusy (me at p56-max6.dun.ihug.co.nz) left irc: Ping timeout for ajbusy[p56-max6.dun.ihug.co.nz]
[23:06] <Wackston> The killer with mux-ing is VCD/SVCD.  The former especially is a MESS.
[23:06] <omega_> howso?
[23:06] <Wackston> Actually from old philips hands I have it on reliable authority that the
[23:07] <Wackston> coloured book "spec" was more or less "how our first bodged chipset worked".
[23:07] <omega_> oy
[23:07] <Wackston> E.g.  The last 14 or 16 or whatever bytes of every audio sector in the stream are
[23:07] <Wackston> simply ignored.  Woe betide the naive mux author who does it correctly and actually fills his
[23:07] <Wackston> audio sectors.   
[23:07] <omega_> ic
[23:07] <omega_> er, ick
[23:08] <Wackston> Also the mux rate is not the actual data-rate in the MPEG stream but the date rate coming
[23:08] <Wackston> *raw* of the MODE2 XA CD stream.   Its 20 bytes more per sector.
[23:08] <omega_> hmm
[23:08] <Wackston> The reason is (presumably) that the first chipsets were bodged audio CD chips with a DSP "side-car"
[23:09] <omega_> neat
[23:09] <Wackston> SVCD is much more rational in this respect but has the evil (vile) habit of
[23:09] <Wackston> mixing its layers.
[23:09] <omega_> layers?
[23:09] <Wackston> Seek info for navigation in the program stream is packed into user-date
[23:09] <omega_> ah
[23:09] <Wackston> sections of the video sequence.  The info is *CD* sector info.  It is,
[23:10] <Wackston> needless to say not info that is available when the video stream is being generated.
[23:10] <omega_> wtay: compare the haze surrounding the ridge that's 'behind' the climber between plaympeg and ./decode
[23:10] <omega_> Wackston: cool
[23:10] <Wackston> Anyway, the current muxer is also brainless in that it 
[23:11] <Wackston> unnecessarily does two passes and is hard-wired for 2 streams.
[23:11] <omega_> oops
[23:11] <Wackston> It really needs to be able to mux 1 video + n audio.   
[23:12] <Wackston> Getting rid of the two-pass guff shouldn't be too hard it is *almost* there
[23:12] <omega_> any use for n video + m audio?
[23:12] <Wackston> already access unit info is held in big vectors which could easily morph
[23:12] <Wackston> into dynamically updated buffers.
[23:13] <Wackston> However,  as with mpeg2enc I wanted to get a stable final out
[23:13] <Wackston> and then move into gstreamer so that (for me) side-issues like
[23:13] <Wackston> filters and pre-proc could be "assumed" to be dealt with in the enc pipeline.
[23:13] <omega_> right
[23:14] <wtay> omega_ I can't see any obvious errors...
[23:14] <omega_> it looks like idct fuzz, but when I look at the plaympeg output I see roughly the same
[23:14] <omega_> wtay: maybe I fixed it accidentally <g>
[23:15] <omega_> Wackston: so sampeg, is it going to basically be a codec suite, plus pre-proc filters?
[23:15] <wtay> omega_ so it seems...
[23:15] ajbusy (me at 203.173.238.184) joined #gstreamer.
[23:15] <Wackston> sampeg is going to be a nice built from scratch MPEG-4/2/1 encoder.
[23:15] <omega_> wtay: can you time the decode now, I'm gonna commit some speedups (just use sse instead of C for epsilon mcomp)
[23:15] ajbusy (me at 203.173.238.184) left irc: http://www.freedevelopers.net
[23:15] <omega_> Wackston: cool
[23:15] <Wackston> Idea is to do it cleanly in C++ and incorporate the lessons learn from sampeg-2
[23:15] <omega_> sounds like codecs.org stuff is exactly what's needed
[23:16] <omega_> c++? ick
[23:16] <omega_> why??
[23:16] <Wackston> and (if I ever do anything on it) my stuff in mpeg2enc.
[23:16] <Wackston> C++ - fine no issue if you undertstand anonymous object creation
[23:16] <Wackston> placement new and implicit copy constructors.
[23:16] <omega_> but what does an object system give to an encoder/decoder?
[23:17] Action: omega_ thinks a codec should be as *bare* metal as possible
[23:17] <Wackston> It makes it possible to do the fiddly control stuff you need for
[23:17] <Wackston> really high end results.
[23:17] <omega_> howso?
[23:17] <Wackston> The CPU cycles are all in about 5 sub-routines anyway. The rest is in the noise.
[23:18] ajbusy (me at p56-max11.dun.ihug.co.nz) joined #gstreamer.
[23:18] <Wackston> That's why "Tom's hardware" are a bunch of lamers using MPEG encoding as a
[23:18] <Wackston> benchmark.
[23:18] <Wackston> Change 5 asm instructions or even your source material and you get
[23:18] <omega_> mpeg encoding as a benchmark is reasonable if every single attempt is highly optimized for that chip
[23:18] <Wackston> totally different results.
[23:18] <Wackston> Back to C++:  Example:
[23:19] <Wackston> You want to do dynamic selectino between B/P frames.
[23:19] <omega_> if you compare uber-tuned encoders of the same architecture on different chips, then it gets useful, but anyway
[23:19] <omega_> for encoder or decode?
[23:19] <wtay> omega_ libmpeg is on par with gstmpeg_play (quality wise), and much better than smpeg
[23:19] <omega_> cool
[23:19] <Wackston> Of course you still want to do your multi-threading et all.
[23:20] <Wackston> This gets really hairy unless you can nicely encapsulate
[23:20] <omega_> multi-threading where?
[23:20] <Wackston> the notion of "frame being encoded" and suchlike.
[23:20] <Wackston> I.e. you use the "++" stuff for the despatcher and control
[23:20] <Wackston> and the low-level stuff is C and the real work gets done in asm.
[23:21] <omega_> wtay: time decode, update libmpeg/reconstruct.c, and time decode again
[23:21] <Wackston> Multi-threading:  macro level parallelism in frame encoding.
[23:21] <Wackston> Basically you can do part of every frame independent of every other
[23:21] <omega_> define macro-level?
[23:21] <omega_> ok, right
[23:21] <Wackston> the rest of each B*P group up to rate control in parallel
[23:22] <Wackston> but rate control and VLC coding is essentially serialised.
[23:22] <omega_> right
[23:22] <Wackston> If you want to get really aggressive you also have worker pools for 
[23:22] <Wackston> motion compensation and DCT/quantisation.
[23:22] <Wackston> The latter is not needed for a dual CPU machine you can get
[23:23] <Wackston> 80%+ utilisation of a dual machine with just the macro level stuff.
[23:23] <omega_> wtay: results?
[23:23] <omega_> how do you mean 'macro-level' ?
[23:23] <Wackston> Add in audio encoding, filtering, decoding of input stream and muxing and you have
[23:23] <wtay> omega_ doh I forgot to time *before* the update :)
[23:23] <wtay> 1.2s user
[23:23] <Wackston> enough for 3 CPU's.
[23:23] <omega_> wtay: rev 1.2 
[23:23] <Wackston> mpeg2enc as it stands does the macro-level multi-threading.
[23:24] <omega_> define macro-level ?
[23:24] <Wackston> Is this an issue for gstreamer plug-in's? 
[23:24] <Wackston> Macro-level = "top-level chunks of computatin".  In the case of MPEG
[23:24] <Wackston> this would be encoding of the seperate frames.
[23:24] <Wackston> Micro-level would be splitting an individual computatino 
[23:24] <omega_> ok, then I'd call it frame-level paralellism
[23:25] <Wackston> like the motion compensating the macro blocks of a frame
[23:25] <Wackston> between multiple threads.  
[23:25] <Wackston> Too much time amoungst distrib. proc. peolpe atOxford I guess...
[23:25] <omega_> heh
[23:25] <wtay> 1.5 sec
[23:26] <omega_> nice
[23:26] <omega_> compare to plaympeg ?
[23:26] <wtay> 1.3..
[23:26] <wtay> 0.3
[23:27] <omega_> I get 6.4sec vs 5.4sec without/with sse
[23:27] <omega_> Wackston: so where is the sampeg code right now?
[23:28] <wtay> it's about the same here
[23:28] <Wackston> No idea really.  I've been busting a gut to get mjpegtools to final (at last).
[23:28] <omega_> wtay: it's not using mmx idct right now, either
[23:28] <Wackston> I'd hoped to have it done a month ago but stuff just keeps coming up.
[23:28] <wtay> omega_ ok
[23:28] <Wackston> Now we're down to YUV422 MPJPEG from xawtv and gstreamer - makes lavplay
[23:29] <Wackston> barf at present. 
[23:29] <omega_> hmm
[23:29] <Wackston> Can be mpeg encoded though.
[23:29] <Wackston> lavlpay does some real dirty stuff to get decent software MJPEG speed.
[23:30] <Wackston> Anyway, regarding gstreamer.  Wim ??nameforgot?? has offered to hand-hold
[23:30] <omega_> == wtay
[23:30] <Wackston> embedding mpeg2enc 
[23:30] <Wackston> mplex is still a little way away from this.  The two-pass crud needs to be
[23:30] <Wackston> got rid of first and then it can get "the treatment too".  Do you have
[23:30] <wtay> There is a one pass muxer in gstreamer...
[23:31] <Wackston> toolame or somesuch encapsulated.  
[23:31] <Wackston> What state is its code-base in?  It might perhaps be easiet to
[23:31] <wtay> mpegaudio for layer2 and lame for layer3 mpeg audio
[23:31] <Wackston> put the lesson learned from mplex into a clean code base
[23:31] <wtay> it's in a very bad shape but it used to work
[23:31] <Wackston> than make mplex a clean code base ;-)
[23:32] <Wackston> Oh dear... mux-ing is damn fiddly.  There may also be some code
[23:32] <omega_> wtay: mmxext idct screws the image (different reorder matrix needed), but goes from 5.4sec to 4.1sec
[23:32] <Wackston> frmo the linuxtv guys.  I'll have to look...
[23:32] <Wackston> For layer 2: toolame is way better than mpegaudio.
[23:33] <wtay> Wackston: hmm
[23:33] <Wackston> If mpegaudio is MSSG audio encoder...
[23:33] <wtay> Wackston: I think so yes
[23:33] <Wackston> Yup, then toolame is mucho better.  The "mp2enc" in mjpegtools is
[23:33] <Wackston> mpegaudio.
[23:33] <omega_> wtay: can you change the lc_idct_8x8_inplace_S16 line to:
[23:33] <omega_>           _lc_idct_8x8_inplace_S16__x86_mmxext(mb.blocks[i].coeffs);
[23:33] <wtay> libraryfied?
[23:33] <Wackston> Aside: anyone got the source code for Intel's recommend *SSE*
[23:34] <Wackston> *forward* DCT.
[23:34] <omega_> um, no, but I know people who might
[23:34] <Wackston> Their appnote only has code fragments in their macro asm.
[23:34] <omega_> need that for libcodec
[23:34] <Wackston> Getting that stuff right in a port is way fiddly work.
[23:34] <wtay> I saw an implementation of it once...
[23:34] <Wackston> where where where
[23:34] <wtay> good question...
[23:34] <wtay> I know it's out there somewhere..
[23:34] <Wackston> One for codecs.org for sure.... (needless to say I'd like to use that
[23:35] <Wackston> for mpeg2enc sometime too).  gstreamer first tho.
[23:35] <taaz> does mpeg2dec have it?  i know walken did the mmx one... maybe a sse one too
[23:35] <omega_> Wackston: have you checked out the code?
[23:35] <omega_> taaz: forward, not idct
[23:35] <wtay> taaz: nope, mpeg2dec only has iDCT
[23:35] <taaz> uh... just do it in reverse ;)
[23:36] <omega_> fyi, switching from C to mmxext (3dnow) idct and C to sse for mcomp caused a 56% jump in speed of my libmpeg code, with no other changes
[23:36] <omega_> because of libcodec
[23:36] <omega_> taaz: not quite <g>
[23:37] <Wackston> Anything more to chat - gotta hit sack soon, gotta earn my
[23:37] <Wackston> techno toys and ski money
[23:37] <omega_> heh, just take a look at libcodec, libbitstream (in mid-rewrite, so don't get too attached) and libmpeg
[23:37] <wtay> omega_ hmm, where is that idct call?
[23:38] <omega_> esp tests/decode.c from libmpeg, as a high-level usage of low-level routines
[23:38] <omega_> wtay: tests/decode.c
[23:38] <wtay> huh?
[23:38] <omega_> libmpeg/tests/decode.c
[23:38] <omega_> Wackston: my dream decoder/encoder lib has access to lower-level routines, so you can play with enhancing the encoder/decoder with just the top-level code equiv to decode.c
[23:38] <wtay> oh, you do part of the decoding in decode.c..
[23:39] <omega_> yeah, that will get moved down into helper routines eventually, just didn't get around to it
[23:39] <wtay> 1.2sec
[23:39] <omega_> better than plaympeg <g>
[23:39] <omega_> er, wait
[23:39] <Wackston> That's more or less what the sampeg-4 project is about.
[23:39] <omega_> no it isn't
[23:39] <wtay> hmm, sorry 
[23:39] <omega_> Wackston: good, though I still don't like the C++ idea
[23:40] <wtay> 0.9
[23:40] <omega_> wtay: yeah, I'm looking at the wrong numbers
[23:40] <Wackston> Panic not.   Really honestly its not a performance issue if you
[23:40] <Wackston> know what you're doing.
[23:40] <omega_> yes, but I don't think it gives sufficient advantage, if you sturcture your C code right
[23:40] <Wackston> Actually, for a lot of "clean" C code you can sometimes gain
[23:41] <Wackston> because the compiler can optimise passing around of this pointers and such
[23:41] <omega_> wtay: I see better results from decode than plaympeg, time-wise
[23:41] <omega_>  /usr/bin/time
[23:41] <Wackston> which it can't if all its sees are struct's.
[23:41] <omega_> Wackston: check out libcodec and libmpeg, I think I have a good arch in C for that
[23:41] <wtay> omega_ 0.3 vs 0.8 now
[23:42] <Wackston> Of course, you'd be insane to encapsulate your MC code in a class rather
[23:42] <Wackston> than straight functinos wrapping asm ;-)
[23:42] <omega_> that's what libcodec is for <g>
[23:42] <Wackston> Hmmm... cycle of reincarnation... C++ grew out of AT&T labs
[23:42] <Wackston> C coding conventions.  
[23:43] <wtay> omega_ anyway plaympeg only does a half job (no half pel motion comp) so...
[23:43] <Wackston> Simulating C++ classes in C with the same compiler back-end doesn't
[23:43] <omega_> wtay: oh??
[23:43] <Wackston> save much and only adds coding overhead.
[23:43] <wtay> omega_ X and Y helf pel isn't implemented
[23:43] <Wackston> HOWEVER: you have to *understand* C++ class instantiation/copying
[23:43] <omega_> wtay: I get 0.6357 decode vs. 0.9196 for plaympeg
[23:44] <wtay> omega_ hmm
[23:44] <Wackston> if you don't want "surprisingly slow results"
[23:44] <omega_> that's /usr/bin/time user time * PU
[23:44] <omega_> Wackston: yeah, but I think C is just better for this stuff regardless
[23:44] <omega_> maybe we can compete C++ vs C if we get enough of the core routines into libcodec <g>
[23:44] <omega_> which is C, of course
[23:45] <wtay> real	0m1.965s
[23:45] <wtay> user	0m0.890s
[23:45] <wtay> sys	0m0.010s
[23:45] <wtay> decode
[23:46] <wtay> real	0m4.813s
[23:46] <wtay> user	0m0.310s
[23:46] <wtay> sys	0m0.040s
[23:46] <wtay> plaympeg
[23:46] <wtay>  time plaympeg /opt/data/everest.mpg
[23:46] <wtay> time ./decode /opt/data/everest.mpg
[23:46] Uraeus (Uraeus at c224s9h5.upc.chello.no) left irc: 
[23:47] <omega_> wow
[23:47] <Wackston> O.k. beddy-byes for me... gotta build the scaler-from-hell tomorrow...
[23:47] <omega_> use /usr/bin/time though
[23:47] <omega_> Wackston: ok, cya round, maybe subscribe to codecs-dev ?
[23:47] <omega_> there's no traffic there, but there will be soon
[23:48] <omega_> and codecs-cvs if you're interested
[23:48] <Wackston> WIll do for sure.   It'll be mpeg2enc platform one day.  Night all...
[23:48] Wackston (as at f-82-217.cvx-munchen.ipdial.viaginterkom.de) left irc: using sirc version 2.211+4KSIRC/1.1
[23:48] <omega_> brb
[23:48] <wtay> decode: 0.82user 0.03system 0:01.97elapsed 43PU (0avgtext+0avgdata 0maxresident)k
[23:49] <wtay> plaympeg 0.37user 0.02system 0:04.87elapsed 8PU (0avgtext+0avgdata 0maxresident)k
[23:51] <omega_> um, now I'm confused over times
[23:51] <omega_> is user time absolute in seconds?
[23:51] <wtay> I think so yes
[23:51] <omega_> oh
[23:52] <omega_> there's no way there's that much difference
[23:52] <wtay> gstmediaplay: 0.21user 0.11system 0:05.71elapsed 5PU (0avgtext+0avgdata 0maxresident)k
[23:52] <BBB> hey, I'm reading through the discussion a bit...:) C/C++ conflict? :P
[23:53] <omega_rr> yeah
[23:53] <BBB> lol
[23:53] Action: BBB has absolutely no knowledge about which would be better for what...
[23:53] <wtay> and sampeg fails to compile for that reason...
[23:53] <omega_rr> where did you get sampeg??
[23:53] <BBB> I should start doing computer courses, or programming courses or something for that :)
[23:53] <wtay> image/bitmap.cc:105: duplicate explicit instantiation of `class Bitmap<unsigned char>'
[23:54] <wtay> omega_ freshmeat search I think
[23:54] <omega_rr> hmm, ok
[23:54] <wtay> http://rachmaninoff.informatik.uni-mannheim.de/sampeg/
[23:54] <omega_rr> no response last I tried
[23:54] <omega_rr> can you email me the tarball?
[23:55] <wtay> sure
[23:55] <omega_> turning off half-pel can shave 20+% off decode time
[23:56] <wtay> sent
[23:57] <wtay> plaympeg is twice as slow as the current gst one...
[23:57] <omega_> wow
[23:59] <omega_> I average 10% penalty for half-pel
[23:59] <omega_> and that's just forcing the flags to zero after computing them
[23:59] <omega_> and still switching out on thost flags
[23:59] <omega_> so even bigger diff without those
[00:00] --- Fri Apr 27 2001
[00:00] <omega_> so, can you write up or at least finger the changes you made to the mpeg_play in gstreamer?
[00:00] <omega_> since you made significant performance improvements
[00:00] Action: dobey pokes hadess
[00:00] <omega_> maybe add a page on the codecs.org wiki
[00:00] <hds-busy> dobey: si ?
[00:01] <wtay> hmm
[00:01] <dobey> sup?
[00:01] <wtay> it adds and averages in one pass..
[00:01] <omega_> for which?
[00:01] <wtay> all
[00:02] <omega_> I mean, during mcomp or elsewhere?
[00:02] <wtay> during mcomp
[00:02] Ow3n (owen at ti34a80-0313.bb.online.no) joined #gstreamer.
[00:02] <omega_> yo
[00:02] <Ow3n> yo
[00:02] <wtay> hi
[00:02] <omega_> wtay: ok, something to add to libcodec somehow
[00:03] <wtay> a huge improvement
[00:03] <omega_> what file is that in?
[00:03] <omega_> recon.c or recon_mmx*.c ?
[00:03] <wtay> hmm yes
[00:03] <omega_> um, ok
[00:03] <wtay> I first dit this with macros and then hand optimised the gcc output
[00:04] <omega_> hmm, ok
[00:04] <omega_> can you write up the concepts and how they fit into mpeg_play on codecs wiki?
[00:05] <wtay> my mpeg knowledge is not good at all, I have never seen the specs so I might speak rubish
[00:05] <omega_> so? you succeeded in making mpeg_play faster than smpeg
[00:05] <omega_> that counts for a lot
[00:05] <wtay> I merely optimised the existing code :)
[00:05] <omega_> exactly
[00:06] <hds-busy> wtay: full-screen with xvideosink ?
[00:06] <wtay> also, the DCT coef parsing is quite optimised in the decoder.h macros
[00:06] <wtay> hds-busy: for which?
[00:06] <omega_> you mean the vlc decoder?
[00:06] <wtay> DecodeDCTCoeff whatever that is...
[00:06] <omega_> right, vlc decoding
[00:06] <wtay> ok :-)
[00:07] <dobey> vlc sucks, it won't play my dvds
[00:07] <omega_> not videolan client, variable length code
[00:07] <wtay> it also has sparse idct..
[00:07] <dobey> oh
[00:07] <omega_> I'm sure that's an intentional confusion on the part of the vlc guys
[00:07] <omega_> wtay: how did it decide to use sparce idct?
[00:07] <hds-busy> dobey: there are xine debs, so you might grab the sources and give it a try
[00:07] <omega_> on all error macroblocks only?
[00:08] <dobey> hds: it doesn't work on ppc afaik
[00:08] <hds-busy> wtay: for mpeg_play
[00:08] <wtay> omega_ you're asking a lot now... let me see...
[00:08] <dobey> it bitches about not having x86 in ./configure
[00:08] <hds-busy> dobey: does, there are ppc debs with fixes et al
[00:08] <wtay> ParseReconBlock?
[00:08] <hds-busy> dobey: lemme find the mail
[00:09] <wtay> if only one coef was decoded and the position was 0, it's sparse
[00:09] <omega_> um
[00:09] <omega_> that's not even sparse, that'd DC only
[00:09] <omega_> and 'never' happens
[00:09] <wtay> um
[00:09] <omega_> what file/func?
[00:10] <wtay> parseblock.c
[00:10] <omega_> ok, one AC coeff
[00:10] <omega_> interesting
[00:10] <hds-busy> dobey: http://people.debian.org/~daenzer/xine/
[00:11] <wtay> doesn't count for a large speedup boost though
[00:11] <hds-busy> dobey: xine and vlc
[00:11] <dobey> ack
[00:11] <omega_> wtay: any numbers?
[00:11] <dobey> can i get a tarball?
[00:11] <wtay> 1%?
[00:11] <omega_> not bad, considering
[00:11] <omega_> I'm interested in applying every optimization I can get my hands on
[00:11] <hds-busy> dobey: just use alien, or ...
[00:11] <dobey> hrmm, i need libelf sources too
[00:12] <wtay> the biggest optimisation is doing compensation and adding errors in one pass
[00:12] <omega_> hmm, ok
[00:12] <wtay> cache lines etc..
[00:13] <omega_> right, though I wonder if that's a win in the libmpeg case, since it's done macroblock at a time anywy
[00:13] <omega_> mpeg_play decodes the error frame in its entirety, then constructs the reconstructed frame, then sums the two?
[00:14] <hds-busy> dobey: the links to the sources are at the bottom
[00:14] <dobey> xine.html?
[00:14] <dobey> ppc-compat sources?
[00:14] <wtay> the add is just one mmx instruction added to the sum so
[00:14] <hds-busy> yeah, stuck with lynx and no cut'n'paste
[00:14] <hds-busy> dobey: should be
[00:14] <omega_> wtay: is it frame-level?
[00:14] <wtay> frame-level?
[00:14] <dobey> hrmm
[00:14] <dobey> ok
[00:14] <omega_> see above
[00:15] <wtay> oh no
[00:15] <wtay> one mb at a time
[00:15] <omega_> hrm, and you get a significant win from that even then???
[00:15] <wtay> hmm?
[00:15] <wtay> I think it works like this:
[00:15] <omega_> the cache should hold things nicely then, though you will see a cycle loss per re-load
[00:16] <wtay> decode error... take reference frames... sum+add error, next mb...
[00:16] <omega_> wow, what kind of % gain?
[00:16] <wtay> no idea x4?
[00:17] <omega_> no, I mean globally
[00:17] <wtay> only the mb at hand is in the cache then
[00:17] <hds-busy> night gang
[00:17] <wtay> cya
[00:17] <omega_> hds-busy: 'night
[00:17] hds-busy (hadess at pc121-gui14.cable.ntl.com) left #gstreamer.
[00:17] <wtay> omega_ do I make sense?
[00:18] <omega_> yes, but I don't see how you can get significant (still not quantified) gain with just that
[00:18] <ChiefHighwater> now there's a loaded question
[00:18] Action: omega_ is incredulous, not uncomprehending
[00:18] <omega_> ChiefHighwater: yeah, yeah
[00:18] <wtay> omega_ you decode *all* the errors first and then add them to the two ref frames?
[00:18] <ChiefHighwater> wtay:notice, I'm not asking omega_ that question
[00:18] <omega_> no, I do it mb at a time
[00:18] <wtay> hmm
[00:19] <dobey> combo boxen rule
[00:19] <omega_> I'm wary of the idea that doing avg+sum is that much faster than avg, sum
[00:19] <wtay> you don't have any extra loop overhead..
[00:20] <omega_> I don't have loop overhead anyway, iirc
[00:20] <wtay> and you avoid a load/store pair..
[00:20] <omega_> true
[00:20] <omega_> btw, incsched is working afaict
[00:20] <wtay> cool
[00:20] <omega_> but nego is screwed
[00:20] <wtay> and gstplay too?
[00:20] <wtay> oh
[00:20] <omega_> untested
[00:21] <wtay> ok
[00:21] <omega_> but autoplug is gonna need some changes to work with incsched
[00:21] <omega_> which is why I need you to screw with INCSCHED1 ASAP
[00:21] <wtay> I have a copy checked out and I was about to do that :-)
[00:21] <omega_> updated?
[00:21] <omega_> I merged last night
[00:21] <omega_> and lemme commit some fixes
[00:21] <wtay> I don't have that one yet
[00:22] <wtay> and... after the sse optimisations the decoder was twice as fast..
[00:22] <omega_> yeah
[00:22] <omega_> they help a lot
[00:22] Action: omega_ wants access to a P4 to test out the SSE2 optimizations
[00:23] <wtay> you should consider .s files instead of those macros, gcc adds a lot of crap...
[00:24] <omega_> yes, I want to once I get more familiar with the .s syntax and the required x86 asm supports
[00:24] <wtay> for final optimisations that is...
[00:24] <omega_> ok, update incsched1
[00:24] <omega_> you may need to hack the mp1vid.c file location, I hardcoded it
[00:24] <omega_> tests/mp1vid.c
[00:25] <omega_> and I sent you the output of mp1vid, which should show failed nego of some form
[00:25] <wtay> test dynamic pad connections?
[00:25] <omega_> yup
[00:25] <dobey> sig
[00:25] <dobey> sigh rather
[00:25] <dobey> xine didn't build
[00:25] <wtay> dobey: get a real pc :)
[00:25] Action: wtay ducks
[00:26] <BBB> <g>
[00:26] <dobey> i did
[00:26] <dobey> i don't use any of that legacy intel crap
[00:26] <omega_rr> heh, I thought intel did PCI
[00:26] <omega_> and AGP
[00:27] <dobey> their chips are legacy
[00:27] <dobey> they don't support not sucking ass
[00:27] <omega_> hrm, new way of looking at it <g>
[00:29] <omega_> the problem with avgsum routines is that they have 4 pointers and strides
[00:29] <omega_> or... wait
[00:29] <omega_> just 3, ok
[00:29] <wtay> omega_ sound is bad?
[00:30] <omega_> yes
[00:30] <omega_> stereo/mono mixup, and/or 8/16 mixup
[00:30] <omega_> lemme see if I can determine which
[00:30] <omega_> 8/16
[00:30] <omega_> er, not really
[00:30] <wtay> I'll have to run anyway it to understand the problem...
[00:30] <omega_> stereo seems ok, but there's no 8/16 mixup either
[00:30] <wtay> hmm
[00:31] <omega_> it also pauses a lot
[00:31] <omega_> play,play,play,pause,repeat
[00:31] <wtay> wow
[00:31] <wtay> you're sure the pull works?
[00:31] <omega_> why?
[00:31] <omega_> ooh, it faults at the end, unsurprisingly
[00:31] <wtay> dunno, same buffer pulled twice for example...
[00:32] <omega_> nope
[00:32] <wtay> oh, maybe you don't call gst_pad_connect but set the ->peer pointers right away...
[00:33] <wtay> hmm, can't be...
[00:33] <omega_> do you get any audio at all?
[00:33] <wtay> still compiling :)
[00:33] <omega_> oh
[00:33] <omega_> hrm, well, wait until you run it to see
[00:33] <wtay> docs...
[00:34] Action: BBB is gonna zzzz
[00:34] <BBB> nite all
[00:34] <omega_> darn, I wanted to discuss libcodec avgsum api while it compiled...
[00:34] <wtay> nite
[00:34] <omega_> BBB: later
[00:34] Action: BBB is away: zzz
[00:34] Nick change: BBB -> BB-zZz
[00:34] Nick change: BB-zZz -> BBB-zZz
[00:34] <wtay> I have to sleep too... :(
[00:35] <omega_> darn
[00:35] <wtay> heh: ** ERROR **: GstElement: error in element 'src': opening file "/home/omega/media/AlienSong.mpg"
[00:35] <omega_> ok, well, I'll think about it and give it a try
[00:35] <omega_> yeah, EMESTUPID
[00:35] <wtay> looks like a rate problem
[00:35] <omega_> but what about the pauses
[00:36] <wtay> that's because the audiosink undeflows
[00:36] <omega_> ah, makes sense
[00:36] <omega_> I didn't think it would take that long to decode that it would cause an underflow
[00:36] <omega_> esp since it's threaded
[00:36] <wtay> it does, mpeg1parse syncs on the SCRs
[00:37] <omega_> hrm, ok
[00:37] <omega_> but it can't delay anything can it, or does mad carry timestamps through?
[00:37] <wtay> I think it does..
[00:37] <omega_> so is this a nego problem?
[00:38] <wtay> yes
[00:38] <omega_> well, that'd be your job <g>
[00:38] <omega_> fix it in HEAD if you can reproduce it, I'll merge up <g>
[00:38] <wtay> try osssink and it"ll work
[00:38] <omega_> hrm, ok
[00:38] <omega_> testing
[00:38] <omega_> stop xmms, killall -9 esd
[00:39] <omega_> ooooooh
[00:39] <wtay> esd has a poor set of caps...
[00:39] <omega_> I see
[00:40] <wtay> in fact it doesn't even care about mono/stereo right now...
[00:40] <omega_> grrr
[00:40] <omega_> there's still a pause at startup, as before
[00:40] <wtay> yup
[00:40] <omega_> we need to make sure the player uses a highwater mark on the queue to start the actual player threads and clocks once stuff is full enough
[00:41] <omega_> but incsched works!
[00:41] <wtay> yes, somebody should start the clock..
[00:41] <omega_> or set the origin
[00:41] <wtay> works very well I would say :-)
[00:41] <omega_> yup
[00:42] <wtay> ooh, you add the queue to the thread...
[00:42] Action: wtay drools
[00:42] <omega_> yes
[00:42] <wtay> is that intentional or it doesn't matter where the queue is put?
[00:43] <omega_> doesn't matter
[00:43] <wtay> good
[00:43] <wtay> so...
[00:43] <wtay> it's all currently cothread based, right?
[00:44] <omega_> how do you mean?
[00:44] <wtay> so no real problems when mad (cothreaded) is added
[00:44] <omega_> as long as the incsched does it job, yes
[00:44] <omega_> afaict so far
[00:45] <wtay> imagine creating a stupid pipeline, the scheduler sets it up as chain based.. then you add a loop based element and it is turned into a cothreaded pipeline.. will that be possible?
[00:46] Action: omega_ chats with matth simultaneously
[00:47] <wtay> hmm... /usr/bin/ld: cannot find -ldb
[00:47] <omega_> -devel
[00:47] <wtay> strange...
[00:47] <wtay> rerunning autogen.sh
[00:48] <wtay> pff, full recompile again...
[00:49] <omega_> ok, mad carries timestamps through decode
[00:49] <omega_> good
[00:51] <wtay> I didn't verify that the timestamps actually match the decoded frame as outputed by mad, but..
[00:51] <omega_> heh
[00:51] <omega_> close enough
[00:51] <wtay> it's possible that mad buffers a frame..
[00:51] <omega_> yeah
[00:54] <omega_> grr, clocking gets in my way
[00:54] <wtay> that's odd I don't have libdb...
[00:54] <omega_> whoops
[00:55] <wtay> hmm I have libdb3-dev...
[00:55] Nick change: ajbusy -> ajmitch
[00:56] <wtay> hacked the makefile... now gstplay compiles..
[00:57] <ajmitch> yay
[00:57] <wtay> oops gstplay crashed :)
[00:59] omega_ (omega at qwest.dsplinux.net) left irc: Ping timeout for omega_[qwest.dsplinux.net]
[00:59] <wtay> hmm, a little bit better with a pipeline as the top element... but still a crasg
[01:00] <wtay> omega_rr: ?
[01:00] <wtay> omega_rr: I always have to have a pipeline as the toplevel bin now, right?
[01:01] <omega_rr> omega_ got disconnected
[01:02] <ajmitch> now his clone is here to take his place?
[01:02] <dobey> hey aj
[01:02] <ajmitch> hi dobey
[01:02] <dobey> <- totally was hacking kick-ass ui stuff earlier
[01:02] <omega_rr> wtay: yeah, you should, but as matth pointed out it's kinda dumb not to have threads for all the elements, in the majority of cases
[01:02] <ajmitch> nice..
[01:03] <dobey> for encompass anyway
[01:03] <wtay> omega_rr: so the toplevel thread in gstplay should simply be put in a pipeline then
[01:03] omega_omicron (omega at qwest.dsplinux.net) joined #gstreamer.
[01:03] <omega_omicron> yes
[01:03] <ajmitch> encompass isn't in sid...
[01:03] <wtay> ok, will try to fix that tomorrow
[01:04] <wtay> I need sleep now.. cya all
[01:04] <omega_omicron> ok, l8r
[01:04] Nick change: wtay -> wtay-sleeping
[01:04] <dobey> aj: not yet, no
[01:13] <omega_omicron> but /me isn't so sure <g>
[01:13] <omega_omicron> grrr, nevermind
[01:28] herring (seth at null.Stanford.EDU) joined #gstreamer.
[01:28] <herring> I'm having difficulties compiling CVS gstreamer
[01:29] <herring> Configure seems to go fine until it starts generating Makefiles
[01:29] <herring> At which point it starts spewing tons of things like:
[01:29] <herring> sed: can't read ./plugins/Makefile.in: No such file or directory
[01:29] <herring> creating plugins/aasink/Makefile
[01:29] <omega_omicron> hmm
[01:29] <omega_omicron> you ran ./autogen.sh ?
[01:29] <herring> Yes
[01:29] <omega_omicron> odd
[01:29] <herring> Which had one minor weirdness
[01:30] <herring> ./autogen.sh: line 60: 14475 Killed                  automake --add-missing
[01:30] <herring> creating cache ./config.cache
[01:30] <omega_omicron> neat
[01:30] <omega_omicron> what version of automake?
[01:30] <herring> When I run automake --add-missing on the commandline it eventually just prints out
[01:30] <herring> "Killed"
[01:30] <omega_omicron> wow
[01:30] <omega_omicron> sh -x automake --add-missing and see what dies
[01:30] <herring> 1.4a
[01:30] Action: omega_omicron has 1.4
[01:31] <omega_omicron> in automake-land, 1.4a is before 1.4, I think
[01:31] <herring> seth at null /gnome-source/gstreamer $ sh -x automake --add-missing
[01:31] <herring> + eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
[01:31] <herring> ++ exec /usr/bin/perl -S automake --add-missing
[01:31] <herring> Killed
[01:31] <omega_omicron> just like 1.3b came before 1.3.x
[01:31] <omega_omicron> wow
[01:31] <herring> give me a second...
[01:31] <omega_omicron> is your perl in one piece?
[01:31] <herring> I *think* so
[01:32] <herring> I use Debian, so its excercised pretty heavily by debconf
[01:32] <herring> And other autogens work just fine
[01:32] <herring> I just finished building a GNOME source tree a few hours ago w/o problems
[01:33] <herring> Let me try running this with my system automake
[01:33] <herring> Yah, it barfs with automake 1.4 too
[01:39] Nick change: ajmitch -> aj_uni
[01:43] <omega_omicron> hrm
[01:44] <omega_omicron> odd, it sounds like perl is the problem somehow
[01:44] Nick change: omega_omicron -> omega_
[01:44] <omega_> are you Seth @ Ximian, by chance?
[01:46] <Ow3n> herring: What does perl --version say?
[01:50] <Ow3n> omega_: how're things going?
[01:51] <omega_rr> pretty good, getting incsched close
[01:51] <Ow3n> nice. Have there been any devlopments on the netowkring front?
[01:51] <omega_rr> not yet
[01:52] <Ow3n> Is zaheer still working on the RTP sink/src? Come to think of it I havn't seen him around much recently.
[01:53] <omega_rr> yes
[01:53] <omega_rr> he's busy this week
[01:53] <Ow3n> I'm still fighting a battle with bonobo.
[01:53] <Ow3n> I think I'm starting to win though :)
[01:54] <Ow3n> It's kind of tough seeing The Right Way [tm] to do things when there are very few examples.
[01:54] <Ow3n> And those that do exist rely on old implementations.
[01:54] <Ow3n> Evolution is my guide.
[01:55] <omega_rr> whee!
[01:55] <Ow3n> But it has chunks of #if 0 so just when my grep -r finds an example of what I'm looking for, closer inspection reveals it as a red herring
[01:55] <omega_rr> hrm, herring is green on my xchat....
[01:55] <Ow3n> <g>
[01:56] <omega_> speaking of which, he kinda disappeared...
[01:56] <Ow3n> yeah. maybe you scared him off.
[01:56] <Ow3n> maybe he was trying to concele his id
[01:56] <omega_> hehehe
[01:57] <Ow3n> hey. i only just noticed that x-chat expands macros. e.g. 'u' expands to 'you'
[01:57] <omega_rr> yeah, that one can get annoying at times
[01:57] <Ow3n> and there was I thinking you just typed at light speed :)
[01:57] <omega_rr> I do
[01:57] <omega_rr> I haven't added any expansions
[01:58] <omega_rr> but I use tab nick completion heavily
[01:58] <Ow3n> Yeah. I have to admit it actually. you really do type quickly.
[01:58] <Ow3n> hey!!!
[01:58] <Ow3n> I should really read documentation some time!
[01:58] <Ow3n> omega_: this is really neat!
[01:59] <omega_rr> which?
[01:59] <omega_rr> tab completion?
[01:59] <Ow3n> Yeah. I could never figure out how people could ever be bothered to to type out Ow3n all the time.
[01:59] <omega_rr> btw, a project you might like that I want to do: wiki/Gbox
[02:00] <omega_rr> if there were no tab completion, you'd just have to guess who was talking to you all the time <g>
[02:00] <Ow3n> yeah. I saw you talk about Gbox yesterday.
[02:00] <omega_rr> check out the page, and see the NewGboxName node
[02:01] <Ow3n> Ashamed, I have to admit that I always used to hand yupe omega_: every time I aimed a comment at you
[02:01] <omega_rr> wow
[02:02] <omega_rr> thoughts on the propsed new name?
[02:02] <omega_rr> since the idea is still <24hrs old, we can get a jump on changing the name as many times as possible <g>
[02:02] <Ow3n> <g>
[02:02] <Ow3n> Hmmm...
[02:03] <Ow3n> How much do (or will) existing solutions cost?
[02:04] <omega_rr> you mean piecing the hardware together as outlined?
[02:04] <omega_rr> I figure $1000-$1500 depending no caps
[02:04] <omega_rr> er, on caps
[02:04] <Ow3n> Is anyone making them already?
[02:04] <omega_rr> no
[02:04] <omega_rr> I intend to do an incremental prototype (put a G400-TV or somesuch in an existing box, etc.)
[02:06] <Ow3n> I think many people hold the belief that the compiter is already to all-encompasing and that it tries to do too many things.
[02:06] <Ow3n> But I disagree.
[02:06] <Ow3n> Consumer's generally want small boxes that do everything.
[02:06] <omega_rr> the thing is that with convergence the concept of a VCR and a TV and a computer merge so as to make it irrelevant how it's actually implmented
[02:06] <Ow3n> People in the know want to do it themselves the harder, more expensive but in the long run better way.
[02:07] <omega_rr> eventually, I want to see a decent server in the basement with a fiber link receiving live TV, phone lines, ethernet, etc.
[02:07] <herring> Ow3n:  v5.6.0 built for i386-linux
[02:07] <omega_rr> and you have a ethernet-connected TV that *just* displays video
[02:07] <omega_rr> and ethernet-connected amp that *just* outputs audio to speakers
[02:07] <Ow3n> herring: Hmm. Me too. I guess that was a red herring.
[02:07] <omega_rr> and the central machine does the bulk of the work
[02:07] <Ow3n> duh. That was bad.
[02:07] <omega_rr> doh
[02:08] <Ow3n> Right. I see. Actually, I had a similar idea a while ago. But for sound studio equipment.
[02:09] <omega_rr> same thing
[02:09] <omega_rr> though the idea of a firewire-attached microphone scares me
[02:09] <Ow3n> why?
[02:10] <omega_> that's a huge amount of overhead for a single mic
[02:10] <Ow3n> Ah, OK. I see what you mean.
[02:10] <omega_> and requires significant gear (power-supply, mic pre, a/d, firewire interface) all in the mic body
[02:10] <omega_> stick with balanced XLR to a box, have a box that does N (8-16) inputs to firewire
[02:10] <omega_> this box exists
[02:11] <omega_> sorta
[02:11] <Ow3n> True. The nice thing with convergance though is that the hardware components quickly become very cheap both in terms of money and power.
[02:11] <omega_> MOTU has one now
[02:11] <omega_> theoretically, but digital audio gear has had a long time to get small too, and it hasn't gotten that small yet
[02:12] <Ow3n> Mainly because it's based around fairly propriatory standards.
[02:12] <omega_> which?
[02:12] <omega_> herring: any progress?
[02:12] <Ow3n> A-DAT. Tascam for example.
[02:12] <herring> omega_: nope
[02:12] <omega_> same thing?
[02:12] <herring> yup
[02:13] <herring> Does gstreamer have its own AVI CODECs or are they based off another source?
[02:13] <omega_> did you see my previous message? are you Seth @ Ximian?
[02:13] <herring> er, I'm seth at eazel actually
[02:13] <herring> Close though ;-)
[02:13] <omega_> not sure what the AVI stuff looks like, wtay is the author of that
[02:13] <omega_> oh, right, eazel, duh
[02:13] <omega_> tadpole?
[02:13] <herring> yes
[02:14] <omega_> any url for that?
[02:14] <herring> nope :)
[02:14] <omega_> ah
[02:14] <omega_> cvs?
[02:14] <herring> Not anonymous at the moment
[02:14] <omega_> ok
[02:14] <omega_> what's it's scope?
[02:14] <herring> We've been too lazy to tack GPLs onto things
[02:14] <omega_> doh
[02:15] <herring> At the moment I'm exploring the possibility of using GStreamer but moving our CODECs over
[02:15] <Ow3n> I can knock you up a perl script to do it no time.
[02:15] <Ow3n> Doh!
[02:15] <omega_> cool
[02:15] <omega_> Ow3n: um
[02:15] ChiefHighwater (paul at temple-baptist.com) left irc: 
[02:15] <herring> My concern with gstreamer is latency
[02:15] <omega_> latency is only what you put in it
[02:16] <herring> Its not clear to me that the architecture is going to be well suited to real-time audio
[02:16] <omega_> gstreamer adds zero latency that you don't build into your pipeline, unless you count the ~500 cycles for a cothread switch
[02:16] <herring> The problem is that it doesn't dictate a pipeline
[02:16] <omega_> I designed it for realtime audio actually, that was my reason for starting the project
[02:16] <omega_> that's exactly its advantage
[02:16] <herring> Nor does it provide a mechanism for gaining realtime thread priority
[02:16] <omega_> that's the thread element's job
[02:17] <herring> right, but that adds overhead to the actual implementation of systems
[02:17] <omega_> we just haven't implemented it cause we haven't needed it, but it's an easy thing to add code for a gtk arg that sets the prio
[02:17] <omega_> yes
[02:17] <omega_> well, not really, where would it add overhead?
[02:18] <herring> In the sense that it means that code is factored out in a way optimal for maximuum sharing
[02:18] <omega_> howso?
[02:18] <herring> Everyone gets to write their own stuff to deal with realtime priority...
[02:18] <omega_> nope
[02:18] <herring> Because the architecture does not dictate a load manager
[02:19] <omega_> the container handles realtime priority, all the elements are blissfully unaware
[02:19] <omega_> load manager?
[02:19] <herring> When you move to realtime priority a filter can potentially lock and hose a system
[02:19] <omega_> yes, it could, but "don't do that"
[02:19] <herring> urgh
[02:20] <omega_> how would you deal with a misbehaving filter anyway?
[02:20] <herring> The approach to realtime priority that seems traditionally succesful is to actually run the whole system in a single thread
[02:20] <omega_> realtime priority or rtlinux? they're different things
[02:20] <herring> You basically right your own scheduler
[02:20] <herring> Definitely not rtlinux
[02:20] <omega_> ok, there's nothing stopping anyone from doing that
[02:20] <herring> The number of people with rtlinux is very low
[02:20] <omega_> it's been discussed even
[02:20] <omega_> yes
[02:20] <herring> I mean, it'd be cool, but its a limited audience right now
[02:20] <omega_> if you don't do any threads at all, everything is cothreaded
[02:20] <herring> right
[02:21] <omega_> and if you have misbehaving elements, you shoot them int he head and fix them
[02:21] Action: herring shrugs
[02:21] <herring> This is not always an option
[02:21] <omega_> by definition, if you have arbitrary blocking, there is no way to fix that without fixing it
[02:21] <omega_> then you can't run that code in realtime priority
[02:21] <omega_> there's nothing an infrastructure can do to fix that
[02:21] <herring> No, no
[02:21] <herring> You do not run that code in its own thread
[02:22] <herring> The scheduler runs in realtime priority
[02:22] <omega_> ok, you just don't give it rt-prio
[02:22] <omega_> ok
[02:22] <herring> anyway...I need to disappear for a few hours
[02:22] <omega_> ok
[02:22] <omega_> send mail tot he list with your concerns, we can hash them out
[02:22] <omega_> I'm as interested in realtime prio as you are, cause I wanna do live mixing with gstreamer
[02:22] <herring> First I need to get things compiling so I can do some experimentation ;-)
[02:22] <omega_> good point <g>
[02:23] <omega_> well, it doesn't seem like it's a gstreamer problem, though maybe we're triggering some bug somehow in automake or perl
[02:23] <omega_> which strikes me as unlikely, but who knows....?
[02:24] <omega_> btw, is that competition for a nautilus media plugin still on?
[02:24] <herring> Live mixing probably isn't as demanding as, say, compositing video streams in realtime from multiple sources and feeding them off to a machine receiving 5.1 point audio and compressing that all into a single stream ;-)
[02:24] <herring> omega_: I don't actually know
[02:24] <omega_> I know a couple people who are effectively racing for it <g>
[02:25] <omega_> gstreamer-based media player in a bonobo or bonobo-media control
[02:25] <herring> cool...
[02:25] <omega_> if it's still on, could you let the gst-devel list know?
[02:25] <omega_> they'll work faster <g>
[02:25] Action: herring has a simple XMPS based media player (as a bonobo control) with GnomeVFS support he hacked together
[02:25] Action: omega_ needs to bug hadess into writing gnomevfssrc and gnomevfssink
[02:25] <herring> omega_: I'll see if it is...actually, I don't know who at Eazel is in charge of the competition (I have only heard distant references to it)
[02:26] <omega_> I think he has them, but they're not fully working yet
[02:26] <omega_> ok
[02:26] <herring> omega_: hadess isn't very experienced with GnomeVFS, but yah
[02:26] <omega_> would be good for someone to get $5k for it <g>
[02:26] <omega_> yeah, but he needs it for rhythmbox anyway, so <g>
[02:26] <herring> *nod*
[02:26] <omega_> which is gst-based
[02:27] <herring> I think I convinced him to use GnomeVFS for his RIO program at GUADEC, not sure if he's actually running w/ that though
[02:27] <omega_> yeah, he was very excited when you did <g>
[02:27] <herring> omega_: Did I meet you there?
[02:27] <omega_> I had to wipe up some drool ;-)
[02:27] <omega_> um, I don't remember....
[02:27] Action: herring having bad memory of names...
[02:27] <omega_> did you go on the Monday sight-seeing thing?
[02:28] <herring> I don't remember the days...
[02:28] <omega_> to see the Little Mermaid?
[02:28] <herring> I did go sight seeing w/ Ankh, Havoc, etc
[02:28] <Ow3n> Yes. herring's in one of omega_'s pictures.
[02:28] <omega_> ok, searching
[02:28] <herring> uh-oh
[02:29] Action: herring desperately tries to connect omega with a name & face ;-)
[02:29] <omega_> http://gstreamer.net/guadec-pics2/dscn0049.jpg
[02:29] <omega_>  ?
[02:29] <Ow3n> damn. you're fast with a mouse too.
[02:29] <omega_> yup <g>
[02:29] <herring> AUGH!
[02:29] <omega_> which one?
[02:29] <herring> The guy on the left is so damn ugly
[02:29] <omega_> far left or next to hadess?
[02:29] <Ow3n> far
[02:30] <omega_> ok
[02:30] <herring> omega_: Are you in that picture???
[02:30] <omega_> no, I took that picture
[02:30] <omega_> 0053 for a more amusing one <g>
[02:30] <omega_> gstreamer.net/guadec-pics/guadec-crew.jpg
[02:30] <herring> heh
[02:30] <omega_> I'm kneeling in that one
[02:31] <omega_> I sent that to Liam <g>
[02:31] <omega_> I was gonna figure out who you were and send it to you, but forgot ;-(
[02:31] <herring> ok, I gotta go now
[02:31] <omega_> ok, l8r
[02:34] <Ow3n> Urgh. I think I'm living in the wrong time zone.
[02:57] matth_ (matth at 63.228.189.94) got netsplit.
[02:57] omega_rr (omega at 63.228.189.94) got netsplit.
[02:57] richardb (richard at 195.153.205.133) got netsplit.
[02:57] BBB-zZz (BBB at 131.211.105.116) got netsplit.
[03:00] Nick change: aj_uni -> ajmitch
[03:07] matth_ (matth at 63.228.189.94) returned to #gstreamer.
[03:07] omega_rr (omega at 63.228.189.94) returned to #gstreamer.
[03:07] richardb (richard at 195.153.205.133) returned to #gstreamer.
[03:08] BBB-zZz (BBB at 131.211.105.116) got lost in the net-split.
[03:08] BBB-zZz (BBB at ucu-105-116.ucu.uu.nl) joined #gstreamer.
[03:11] matth_ (matth at 63.228.189.94) got netsplit.
[03:12] omega_rr (omega at 63.228.189.94) got netsplit.
[03:12] richardb (richard at 195.153.205.133) got netsplit.
[03:12] matth_ (matth at 63.228.189.94) returned to #gstreamer.
[03:12] omega_rr (omega at 63.228.189.94) returned to #gstreamer.
[03:12] richardb (richard at 195.153.205.133) returned to #gstreamer.
[03:44] Action: omega_ goes to hack with matth
[03:44] omega_ (omega at qwest.dsplinux.net) left irc: [x]chat
[04:02] Ow3n (owen at ti34a80-0313.bb.online.no) left irc: [x]chat
[04:22] Nick change: ajmitch -> ajbusy
[04:32] Nick change: ajbusy -> ajmitch
[04:52] <dobey> la la
[04:53] <ajmitch> tinky winky
[04:53] Action: dobey moby
[04:57] <omega_rr> matth says: "teletubbies are evil!"
[04:58] Action: ajmitch agrees
[04:58] Action: omega_rr is adding colorization to DEBUG and INFO
[05:06] Nick change: omega_rr -> omega_sleep
[05:06] Action: omega_sleep will commit colorized DEBUG and INFO tomorrow
[05:07] <ajmitch> hehe ;)
[05:08] <omega_sleep> great.  my laptop just crashed in suspend
[05:09] Action: dobey will sit back and be in a depressed and sad mood some more
[05:09] <omega_sleep> @#%&*@$#%
[05:09] <omega_sleep> invalid kernel, /me drags out the redhat rescue CD
[05:09] <ajmitch> dobey: why?
[05:09] <omega_sleep> @#%#%$&@%$#
[05:10] <omega_sleep> I use reiserfs now
[05:10] <dobey> aj: life
[05:10] Action: omega_sleep just killed his laptop
[05:10] <dobey> aj: or lack thereof
[05:11] <ajmitch> dobey: coding not good enough for ya? ;)
[05:11] Action: omega_sleep should be most worried about lack of life: it's 9:15 and he's worried about not being able to use his laptop tonight before work tomorrow
[05:11] <dobey> ajmitch: if it were, would i be sad and depressed?
[05:11] Action: omega_sleep thanks redhat profusely for including reiserfs.o on the rescue CD
[05:12] <ajmitch> dobey: true...
[05:12] Action: omega_sleep curses redhat profusely for not putting any /dev/* files on the rescue CD
[05:12] <ajmitch> dobey: what other hobbies do you have?
[05:12] <dobey> none particularly useful at the moment
[05:12] <dobey> since my car is 900 miles away
[05:13] <omega_sleep> @#%$, it silently failed to modprobe reiserfs
[05:13] <ajmitch> dobey: that could be an issue
[05:13] <ajmitch> dobey: i just walk everywhere, dunedin's a small city ;)
[05:14] <dobey> ajmitch: and others aren't an option, because they require one or more females
[05:14] <ajmitch> lol
[05:15] <omega_sleep> #@$^#%*#@$%
[05:19] Action: omega_sleep is booting from floppy, hoping it finds rootfs
[05:19] <omega_sleep> log replay!
[05:20] <omega_sleep> took 4sec to fsck 17.5GB <g>
[05:20] <dobey> now that is an issue
[05:20] <omega_sleep> ?
[05:21] <dobey> oh, my previous statement
[05:21] <omega_sleep> oh?
[05:22] Action: ajmitch must study
[05:22] <dobey> yes
[05:22] <dobey> sad and depressing issue
[05:22] <dobey> <- sad and depressed
[05:23] Action: omega_sleep really must go eat and sleep now
[05:25] <omega_sleep> 'gnight all
[06:01] Nick change: ajmitch -> ajbusy




More information about the gstreamer-devel mailing list