|
From: <wim...@ch...> - 2001-04-18 04:35:06
|
[06:37] <taaz> omega_: wake up! [06:38] <taaz> omega_: you changed configure.in but forgot every other dir that uses those vars... [07:29] omega_ (om...@om...) left irc: still in the wrong timezone [08:13] lsetia (lsetia@203.195.143.134) joined #gstreamer. [08:29] ajmitch (me...@20...) left irc: Ping timeout for ajmitch[203-79-80-247.ipn9.paradise.net.nz] [08:35] lsetia (lsetia@203.195.143.134) left irc: [x]chat [08:47] ajmitch (me...@20...) joined #gstreamer. [09:47] lsetia (lsetia@203.195.143.57) joined #gstreamer. [09:53] lsetia (lsetia@203.195.143.57) left irc: Ping timeout for lsetia[203.195.143.57] [10:06] ajmitch (me...@20...) left irc: Ping timeout for ajmitch[203-79-80-217.ipn9.paradise.net.nz] [11:05] matth-ride (ma...@qw...) left irc: Ping timeout for matth-ride[qwest.dsplinux.net] [11:52] ajmitch (me...@20...) joined #gstreamer. [12:44] lsetia (lsetia@203.195.142.23) joined #gstreamer. [12:45] lsetia (lsetia@203.195.142.23) left irc: [x]chat [13:02] matth-ride (ma...@qw...) joined #gstreamer. [13:06] rdj (rd...@a3...) joined #gstreamer. [14:12] Nick change: ajmitch -> aj_zzzz [14:22] holger (holger@Q.convergence.de) joined #gstreamer. [14:48] thomasvs (root@212.100.172.175) joined #gstreamer. [14:49] thomas (th...@ur...) joined #gstreamer. [14:50] thomasvs (root@212.100.172.175) left irc: Leaving [14:55] Action: thomas is away - Automatically set away. - messages will be saved. [15:05] <thomas> anyone awake ? [15:08] thomas (th...@ur...) left irc: I'm outta here! [15:13] thomas (th...@ur...) joined #gstreamer. [15:13] Action: thomas thinks something went wrong with the mad plugin since last night [15:16] Action: thomas or perhaps thomas doesn't have mad installed yet and it's all his own fault for being stupid [15:16] Nick change: matth-ride -> matth_ [15:16] <matth_> yawn [15:17] _gst_newt_ joined #gstreamer. [15:17] wtay-sleeping (wi...@ca...) joined #gstreamer. [15:19] Action: thomas is away - Automatically set away. - messages will be saved. [15:28] sienap (sy...@ip...) joined #gstreamer. [15:28] <sienap> boe ;) [15:28] <thomas> hi sienap [15:29] <sienap> hej thomas! [15:29] <sienap> got something done ? [15:29] <thomas> nothing bloody useful [15:29] <thomas> work stuff caught up [15:29] <thomas> but now I just got the new gstreamer working at work [15:29] <thomas> so I can continue working [15:29] <thomas> Took me an hour to figure out ... [15:29] <thomas> ... that the reason my mixer wasn't working here ... [15:29] <thomas> ... was that I didn't have libmad installed ! [15:30] <sienap> he :) [15:30] <sienap> HAHAHAHA :) [15:30] <sienap> aah shit happens :) [15:30] <thomas> there should be a better warning system in gstreamer [15:30] <thomas> anyway... [15:30] <thomas> I'll try changing the plugin now [15:31] <sienap> he [15:31] <sienap> this is cvs dude :) [16:30] Aquatopia (aq...@aq...) joined #gstreamer. [16:39] <sienap> hi [16:40] lsetia (lsetia@203.195.140.41) joined #gstreamer. [16:40] <lsetia> hello [16:40] <sienap> hi [16:41] <lsetia> I erased my 0.1.1 rpm, and installed gstreamer from CVS [16:41] <lsetia> now I can't run anything :) [16:42] <sienap> he :) [16:42] <sienap> gstreamer from CVS is BUGGGGGED :) [16:42] <lsetia> anyone to help? [16:42] <sienap> it is undergoing heavy stuff [16:42] <thomas> lsetia: what's wrong with it ? [16:42] <sienap> and the worst part isn't even done.. [16:42] <sienap> like inches / events / gobject [16:42] <lsetia> when I run gstreamer-register, I get the following error [16:43] <lsetia> ** CRITICAL **: file alaw.c: line 63 (plugin_init): assertion `plugin != NULL' failed. [16:43] <lsetia> I get this for all plugins [16:43] <sienap> however i have to go [16:43] sienap (sy...@ip...) left irc: sienap has no reason [16:43] <thomas> how did you get rid of the rpm ? [16:43] <lsetia> rpm -e [16:43] <lsetia> actuall: rpm -e gstreamer [16:43] <thomas> can you check from some of the first line where it is getting it's plugins from ? [16:44] <lsetia> INFO(29422:-1):gst_plugin_load_all:233: loading plugins from /home/lsetia/download/gstreamer/./gst/autoplug [16:44] <lsetia> hmmm. I installed in /usr/local, its not picking from there [16:44] <thomas> ok... so you should fix that first [16:45] <thomas> did you do make install ? [16:45] <lsetia> yes, I did, [16:45] <lsetia> and I run the gstreamer-register from /usr/local/bin [16:46] <thomas> ok... the lines to watch for contain "loading plugins" [16:46] <thomas> these are the lines that tell you which path's it's traversing [16:46] <thomas> I keep my CVS in my home directory and run gstreamer-register from there directly [16:47] <thomas> if you did make install, it will check for /usr/local/lib/gst as well... [16:47] <thomas> ...but it is possible that it tries to load the plugins in your homedir first [16:47] <lsetia> I just did a ./autogen.sh --prefix=/usr/local; make; make install [16:48] <thomas> well, maybe you should try a make uninstall first, and then go back to where you downloaded the cvs [16:48] <lsetia> was there anything more to it? [16:48] <thomas> then in that dir do tools/gstreamer-register [16:48] <thomas> it looks fine what you did, but I never did it that way [16:48] <thomas> so can't help you there [16:49] <thomas> but you can run it from your home dir [16:49] <thomas> so I'd try that first [16:49] <lsetia> ok I'll try your way :) [16:50] <thomas> don't forget the make uninstall first [16:50] <lsetia> what should I do next after make uninstall [16:50] <thomas> try tools/gstreamer-register [16:50] <lsetia> ? [16:50] <thomas> in the root dir of the gstreamer download dir [16:51] <lsetia> It works... no errors this time [16:51] <lsetia> but does it mean it will pick the plugins from my home dir each time? [16:51] <lsetia> even if I do a make install [16:52] <thomas> if you do a make install [16:52] <thomas> then normally it should keep picking them from your home dir [16:52] <thomas> until you do a new gstreamer-register [16:52] <thomas> but since that didn't work for you [16:52] <thomas> I'd wait until someone more knowledgeable than me arrives here [16:52] <thomas> and just try it out now the way it is [16:52] <thomas> you can try tools/gstreamer-inspect now to see if you get a list of available plugins [16:52] <lsetia> sure :) [16:55] <lsetia> it gives around 20 critical errors (plugin != NULL failed) [16:55] <lsetia> then gives a list of around 20-25 correct plugins [16:55] <thomas> that's weird... and tools/gstreamer-register didn't give problems ? [16:55] <thomas> what kinds of plugins fail ? [16:55] <lsetia> btw, make install isn't completed yet... [16:56] <thomas> what do you mean, make install isn't completed ? [16:56] <thomas> did you type it in anyway ;) ? [16:56] <lsetia> it takes a couple of mins..., its completed now [16:56] <lsetia> some sample errors: [16:57] <lsetia> ** CRITICAL **: file mulaw.c: line 63 (plugin_init): assertion `plugin != NULL' failed. [16:57] <lsetia> ** CRITICAL **: file alaw.c: line 63 (plugin_init): assertion `plugin != NULL' failed. [16:57] <thomas> okay wait... [16:57] <lsetia> and some sample correct output [16:57] <lsetia> mp2videoparse: mp2videoparse: MPEG 2 Video Parser [16:57] <thomas> did you or did you not do make install after gstreamer-register ? [16:57] <lsetia> mpeg2play: mpeg2play: mpeg1 and mpeg2 video decoder [16:57] <lsetia> mpeg2subt: mpeg2subt: MPEG2 subtitle Decoder [16:58] <lsetia> I DID [16:58] <lsetia> ;) [16:58] <thomas> ok... I think you shouldn't [16:58] <thomas> just do the make uninstall, then tools/gstreamer-register, ... [16:58] <thomas> ... and leave it at that for now. [16:58] <thomas> I wouldn't do make install right now [16:58] <thomas> first get it working [16:58] <thomas> then maybe install it [16:59] <lsetia> ok, back to uninstall [17:00] <lsetia> gstreamer-register goes fine, no error [17:01] <lsetia> but gstplay/gstmediaplay does'nt start [17:01] <thomas> ok, now try tools/gstreamer-inspect [17:01] <thomas> and see if you get the same errors or not [17:02] <lsetia> no error in gstreamer-inspect [17:02] <thomas> ok that's good. [17:02] <thomas> maybe you should try an audio mp3 first ? [17:02] <thomas> it's simpler to start with [17:02] <thomas> if you do examples/helloworld/helloworld (your mp3) [17:02] <thomas> you should hear something [17:03] <thomas> if not, let me know what errors it gives [17:03] <lsetia> yes I can [17:03] <thomas> OK, so that's good. [17:03] <thomas> Now I never tried gstplay [17:04] <thomas> but what error is it giving ? [17:04] <lsetia> [lsetia@milkyway gstreamer]$ gstplay/gstmediaplay [17:04] <lsetia> INFO(5391:-1): Initializing GStreamer Core Library [17:04] <lsetia> INFO(5391:-1): CPU features: (808029bf) MMX 3DNOW [17:04] <lsetia> ** WARNING **: document not well formed! [17:04] <lsetia> ** WARNING **: Could not parse file [17:04] <lsetia> ** ERROR **: file gstmediaplay.c: line 140 (gst_media_play_init): assertion failed: (mplay->xml != NULL) [17:04] <lsetia> aborting... [17:04] <lsetia> Aborted (core dumped) [17:04] <thomas> ok I get the same thing [17:04] <thomas> maybe I should check what you are supposed to type in anyway... [17:04] <lsetia> I wonder if it has to do with me upgrading xml-libs in gnome-1.4 [17:05] <thomas> this is something that works for me... [17:05] <thomas> just do cd gstplay [17:05] <thomas> then ./gstmediaplay [17:05] <thomas> at least it starts a window [17:06] <lsetia> yes, but does not play the mp3 [17:06] <thomas> no... same here. [17:06] <lsetia> earlier it worked quite fine, in 0.1.1 [17:06] <thomas> ah ok. [17:06] <thomas> so why did you want to upgrade ? [17:06] <thomas> not that that's a bad thing of course [17:07] <lsetia> hehe [17:07] iGN_ (ig...@lo...) got netsplit. [17:08] <lsetia> I was starting to write a plugin a couple of weeks back [17:08] <lsetia> and some things I asked here, and was told to upgrade to CVS [17:09] <thomas> well if you're writing plugins... [17:09] <thomas> ... it's probably best to upgrade to CVS [17:09] <thomas> ... so you probably best ask about gstmediaplay later [17:09] <thomas> I only do audio stuff [17:09] <lsetia> ok [17:10] <lsetia> you also from leuven? [17:10] <thomas> no, gent [17:11] <lsetia> nice :) [17:16] iGN_ (ig...@lo...) returned to #gstreamer. [17:22] Aquatopia (aq...@aq...) left irc: Ping timeout for Aquatopia[aqua.wtf.is] [17:57] lsetia (lsetia@203.195.140.41) left irc: Read error to lsetia[203.195.140.41]: Connection reset by peer [18:03] Nick change: wtay-sleeping -> wtay [18:04] <wtay> hi all [18:04] <wtay> thomas: gstplay/gstmediaplay doesn't work because it can't find the glade xml file then... [18:04] <wtay> glade xml file is searched in . and then un /usr/local/share/gstplay, so... [18:08] <thomas> hi wtay... [18:08] <thomas> well, lsetia will be back [18:09] <wtay> just to inform you :) [18:09] <thomas> I tried an mp2 today for the adder like you said... [18:09] <thomas> ...it sounded horrible. [18:09] <thomas> the reason wasn't because of the buffer length... [18:09] <thomas> ...after a few hours of testing I tried the mp2 itself... [18:09] <wtay> hmm [18:09] <thomas> ... and that was the problem. [18:09] <thomas> I could hit myself for stuff like that. [18:10] <wtay> heh [18:10] <thomas> ... so I just tried autoplugging as per your manual... [18:10] <thomas> ... but those functions aren't there ! [18:10] <thomas> is it me or something else ? [18:10] <wtay> was it a bad mp2 or is mad just failing? [18:10] <thomas> nono, the mp2 was bad, I tried a new one and it was perfect. [18:10] <wtay> thomas: the manual is outdated :( [18:10] <wtay> doh [18:10] <thomas> but it also has 4608 length. which is right [18:10] <thomas> since an mp2/3 frame always contains data for 1152 samples [18:10] holger (holger@Q.convergence.de) left irc: Read error to holger[Q.convergence.de]: Connection reset by peer [18:10] <thomas> so times four (16 bit & stereo) ... [18:11] <thomas> though maybe an mp1 should do, since that has only a third of the data [18:11] <wtay> ok [18:11] <thomas> but I wanted to autoplug and use wavs and oggs and stuff [18:11] <thomas> better than to hardcode the change now [18:11] <thomas> so how should I do the autoplug then ? [18:11] <thomas> because the way it is in the manual is pretty simple [18:15] <thomas> wtay: btw I added lines for adder and mixer in configure.in in the root, is that the right way to do it ? [18:15] wtay_ (wi...@ca...) joined #gstreamer. [18:15] <wtay_> hmm sorry sawfish crashed :) [18:15] <thomas> no problem... [18:15] <wtay_> gotto restart X [18:15] <thomas> I'll wait [18:15] wtay_ (wi...@ca...) left irc: Read error to wtay_[cable-195-162-214-190.upc.chello.be]: EOF from client [18:15] wtay (wi...@ca...) left irc: Read error to wtay[cable-195-162-214-190.upc.chello.be]: Connection reset by peer [18:17] wtay (wi...@ca...) joined #gstreamer. [18:18] <wtay> that sucks [18:19] <wtay> thomas: you should look at examples/autoplug for an example of the autoplugger for now... [18:19] <thomas> ok... I will. [18:19] <thomas> but it looks more difficult than in your manual ;( [18:19] <thomas> wtay: btw I added lines for adder and mixer in configure.in in the [18:19] <thomas> root, is that the right way to do it ? [18:20] <wtay> yup [18:20] <wtay> gotta eat now, back in one hour [18:20] Nick change: wtay -> wtay-eating [18:56] omega_ (om...@te...) joined #gstreamer. [18:56] <thomas> hi [18:56] <omega_> yo [18:56] Action: omega_ is on the phone with Dell again [18:57] <thomas> buy me a new machine if you have the money while you're at it [18:57] <omega_> heh [18:57] <omega_> they didn't install the keyboard on my laptop properly when they reassembled it with a new case [18:57] <omega_> so it bows up in the middle, and flexes [18:58] <omega_> not to mention the fact that there's no indication that they actually replaced *both* hinge mounts as I demanded [18:58] <thomas> good luck on getting that fixed [18:58] Action: thomas is still waiting after six months for a firmware upgrade to a KVM switch so that linux gpm does not hang [18:59] <omega_> heh [18:59] <thomas> I just switched off X, I gave up fighting [19:00] <thomas> omega_: I had trouble today with the eos signal from disksrc. [19:00] <omega_> doesn't surprise me [19:00] <omega_> that's a hack [19:00] <thomas> I have two disksrc's, and I only get a signal when the longest one closes [19:00] <omega_> the event system will fix that [19:00] <thomas> ah OK. [19:00] <omega_> hmmm [19:00] <thomas> because the mixer first exited when the first stream stopped [19:00] <thomas> because of the eos... so I added a counter. [19:01] <thomas> that's when I saw the problem [19:01] <thomas> never mind [19:01] <omega_> you'll have to override the default handler [19:01] <omega_> just keep in mind that that all will change shortly <g> [19:01] <thomas> what is "shortly" and what should I keep in mind ? [19:01] <thomas> I mean what's going to change most ? [19:01] <omega_> that anything relating to EOS will change completely [19:02] <thomas> ok... I'll hold off on that then [19:02] <thomas> totally random question: what's the longest time someone ever let a gstreamer app run ? [19:02] steveb (st...@no...) joined #gstreamer. [19:02] <omega_> yo [19:02] <steveb> hi [19:02] <omega_> thomas: no idea, why? [19:03] <thomas> well, my mixer should run for days on end without failing [19:03] <thomas> so that should give some issues [19:03] <omega_> right [19:03] <thomas> aren't you working on embedding gstreamer ? [19:04] <steveb> sheesh, I go away for easter and every file has changed [19:05] <omega_> steveb: heh [19:05] <omega_> thomas: yes [19:05] <thomas> omega_: well then... how long do you expect it to run then ? [19:05] <omega_> thomas: potentially for a long time [19:05] <thomas> omega_: good luck ;) [19:08] Action: taaz looks for the object destruction cleanup methods... [19:12] Nick change: wtay-eating -> wtay [19:12] <wtay> yo [19:14] hadess (ha...@pc...) joined #gstreamer. [19:15] <hadess> hi gang [19:15] <wtay> hi hadess [19:15] <hadess> hi wtay [19:30] omega_ (om...@te...) left irc: Ping timeout for omega_[temple-baptist.com] [19:31] <thomas> wtay: still there ? [19:32] <wtay> yeah [19:32] <thomas> wtay: I noticed something in the disksrc eos handler [19:33] <hadess> fuck [19:33] <thomas> wtay: omega said that it's going to change anmyway... [19:33] <wtay> thomas: yup [19:33] <hadess> mozilla _and_ galeon crash when i try to reserve my domain name :/ [19:33] <thomas> ...but it seems I only get one signal, the one for the last of two input files [19:33] <wtay> hadess: ouch [19:33] <wtay> thomas: hmm [19:33] <thomas> wtay: could be my program as well of course... :) [19:33] <hadess> btw, soundbox is now rhythmbox [19:34] <wtay> hadess: oh? [19:34] <thomas> wtay: I was just trying to make the eos keep track of open channels [19:34] <wtay> thomas: the eos signal in disksrc is a hack anyway [19:34] <wtay> thomas: eos is more complex than just a signal [19:35] <thomas> wtay: I hope to get the autoplug working quick enough [19:35] <thomas> wtay: I want to hear what it does when buffer lengths are different [19:35] <thomas> wtay: I've been thinking all day about the right algorithm to get stuff from the buffers as necessary [19:35] <wtay> thomas: ok, we can do that today If you want [19:36] <thomas> wtay: depends on if I get the time - I'm still at work [19:36] <thomas> wtay: plus I don't want to take too much of yours ;) [19:36] <wtay> thomas: ok [19:36] <thomas> wtay: anyway I changed the mixer that I have now to work with a simple struct... [19:36] <thomas> so that I can easily add more channels [19:36] <thomas> it was a hassle otherwise [19:37] <thomas> wtay: but I was wondering if it would have been more logical... [19:37] <wtay> thomas: hmm, I'll check that out... [19:37] <thomas> ... to have a function that returns a GstElement or GstBin [19:37] <wtay> thomas: where? [19:37] <thomas> ... because now it's a custom struct that holds both the bin/pipe and the various elements [19:37] <thomas> it's not in yet... [19:37] <thomas> just testing... [19:37] <thomas> do you want it in CVS ? [19:38] <wtay> if you want me to take a look at it, yes [19:38] <thomas> ok... sec. [19:38] <thomas> can I create a new file as well ? I've got a header. [19:39] <wtay> thomas: cvs add myheader.h [19:41] <thomas> ok... should be there now. [19:41] <thomas> btw the eos stuff isn't in that one but that doesn't matter anyway [19:47] <thomas> wtay: I'm going home now... [19:47] <thomas> wtay: till later tonight [19:47] <wtay> ok [19:47] thomas (th...@ur...) left irc: I'm outta here! [19:55] aj_zzzz (me...@20...) left irc: Ping timeout for aj_zzzz[203-79-80-164.ipn9.paradise.net.nz] [20:23] rdj (rd...@a3...) got netsplit. [20:23] iGN_ (ig...@lo...) got netsplit. [20:23] taaz (dlehn@66.37.66.32) got netsplit. [20:23] matth_ (ma...@qw...) got netsplit. [20:23] hadess (ha...@pc...) got netsplit. [20:23] steveb (st...@no...) got netsplit. [20:24] taaz (dlehn@66.37.66.32) returned to #gstreamer. [20:24] matth_ (ma...@qw...) returned to #gstreamer. [20:24] hadess (ha...@pc...) returned to #gstreamer. [20:24] rdj (rd...@a3...) returned to #gstreamer. [20:25] iGN_ (ig...@lo...) returned to #gstreamer. [20:25] #gstreamer: mode change '+o wtay' by ChanServ!s@ChanServ [20:25] steveb (st...@no...) returned to #gstreamer. [20:54] ChiefHighwater (pa...@te...) joined #gstreamer. [20:54] <wtay> hello [20:55] thomas (th...@ur...) joined #gstreamer. [20:55] <ChiefHighwater> Ello 8-] [20:56] <thomas> hi everyone [20:56] <thomas> wtay: now that I'm home, in my home CVS dir, what command do I use to update my CVS copy ? [20:57] <wtay> cvs update -dP [20:57] <wtay> in the gstreamer root dir [20:59] Action: wtay is doing docs updates.. [21:01] <thomas> wtay, does the dvd stuff work ? [21:02] <wtay> thomas: sorta, yes [21:02] <wtay> you'll need the DeCSS code though [21:02] <thomas> wtay: sorta probably as in "video and audio out of sync" [21:02] <steveb> wtay: i'm just absorbing the weekend's changes - should I still be using gst_caps_new_with_props? [21:03] <wtay> video and audio a bit in sync [21:03] <wtay> steveb: nope, just one api gst_caps_new [21:03] <steveb> righto [21:03] <steveb> busy, weren't we? [21:04] <steveb> :) [21:04] <wtay> steveb: the use of the GST_PADTEMPLATE_FACTORY is encouraged, though (see tests/padfactory.c) [21:04] <wtay> steveb: as always :-) [21:05] Action: thomas is happy that his mixer still works at home [21:06] <thomas> wtay: is it normal that after an update, I need to remake volenv and adder, but not all of the other plugins ? [21:06] <wtay> thomas: jup [21:06] <thomas> wtay: why the exception ? [21:06] <thomas> wtay: because they changed, and it automake clean's or something ? [21:06] <wtay> thomas: depends on what has changed [21:07] <wtay> thomas: if the makefiles aren't touched, they still work as before [21:07] <thomas> wtay: well the .o files and the rest of it were gone in those two dirs [21:07] <thomas> wtay: luckily I start to get a hang of what errors mean what ;) [21:07] <wtay> I usually run make in the toplevel dir to make sure everything is build again [21:08] <thomas> wtay: I pulled my hair out this morning at work testing it before I realized that I didn't have mad compiled at work ;) [21:08] <wtay> thomas: yeah ;) [21:08] <thomas> wtay: one important thing I'm wondering about... [21:08] <thomas> wtay: can I connect the second pipe after some time instead of at the start ... [21:08] <thomas> wtay: and if I do, do I need to pause the main bin or something ? [21:09] <wtay> thomas: you can't yet, this is what incsched is all about [21:09] <thomas> wtay: oh... [21:10] <thomas> wtay: so that means if I wanted my mixer done today, I shouldn't try to do it as a plugin then [21:10] <thomas> wtay: but incsched is not far away anymore, is it ? [21:10] <wtay> nope, omega is doing that right now [21:10] <thomas> wtay: hope it's relatively bug-free from the beginning then... ;) [21:11] <wtay> you can get away with the scheduling issues by using threads and queues though [21:11] <thomas> oh ? [21:11] <wtay> like gstmediaplay does :) [21:11] <thomas> you can connect queues later on ? [21:11] <wtay> yes [21:11] <wtay> put your two src bins in a thread and connect the queue later on [21:12] <thomas> I was thinking about the struct... it's not really necessary the way I did it is it... [21:12] <wtay> I'm not sure how the dynmaic sink pads of the mixer will work though [21:12] <wtay> thomas: not really [21:12] <thomas> wtay: yeah, I was wondering about that as well. I need a way to start reading in the middle of the loop [21:12] <wtay> thomas: middle of the loop? [21:12] <thomas> wtay: well I'm going to need structs for the channels anyway to get the rest of the data [21:13] <thomas> well, the mix points will not necessarily be aligned to starting points of buffers [21:13] <thomas> so an input stream could be inserted for the first time in the middle of the output buffer [21:13] <wtay> ok [21:13] <thomas> or maybe I could change the size on the output buffer for that particular case [21:13] <thomas> is that allowed ? [21:13] <wtay> sure [21:14] <thomas> maybe that would make for cleaner code, [21:14] <wtay> yes [21:14] <thomas> just switch it to a smaller buffer and bring it back up [21:14] <wtay> push out the part that needs no mixing, and then the mixed part [21:14] <thomas> wtay: wait... that would actually make a whole lot of stuff a lot of easier... [21:15] <thomas> wtay: check each of the src pads, take the smallest one, take data from each of them, and put out a buffer as big as the smallest one [21:15] <wtay> and the leftover then? [21:15] <thomas> wtay: well, each input channel has a pointer and a size of the leftover. each time I take the smallest leftover bit... [21:16] <wtay> hmm ok, sounds good [21:16] <thomas> and when an input buffer is exhausted, I get a new one which gets a large leftover size [21:16] <thomas> should work I think... [21:16] <thomas> does it matter much performance wise if the output buffer size gets smaller ? [21:16] <wtay> not much, no [21:17] <thomas> ok... first the autoplugging... I'll read the example a bit first [21:17] rdj_ (rd...@a3...) joined #gstreamer. [21:17] rdj (rd...@a3...) left irc: Ping timeout for rdj[a37030.upc-a.chello.nl] [21:17] <thomas> btw why is the doc out of sync there ? was it never implemented that way ? [21:17] <thomas> because it's simpler in the doc. [21:18] <wtay> thomas: it was implemented like that first [21:18] <wtay> the way it is in the docs is very primitive [21:19] <wtay> the current one provides much more control over the autoplugging [21:19] <wtay> you'll need a staticautoplugger (no render) [21:20] <wtay> It'll create a src bin exactly like the one you manually construct now [21:22] Action: thomas is away - Automatically set away. - messages will be saved. [21:24] <thomas> wtay: the sprintf stuff I used... is it necessary to make sure each element has a different name ? [21:24] <wtay> thomas: nope [21:25] <wtay> thomas: it's just when you want to retrieve a reference to an object that's in the bin somewhere with gst_bin_get_by_name () [21:26] <wtay> damn, the GTK+ docs are removed from gtk.org... [21:27] <thomas> wtay: hmm... can I set the caps on a ghost pad to make sure autoplugging sets up a path suitable for my adder plugin ? [21:28] <wtay> thomas: why? [21:29] <wtay> it doesn't work like that [21:30] <thomas> wtay: so I should set up the autoplugging in the main program, not in the create_channel then ? [21:31] <wtay> you would run typefind on the src file, get the caps an create a new bin (with autoplug) that connects the src caps to the caps that the adder wants [21:32] <thomas> hmmm... that doesn't leave much of the create_channel ;) [21:32] <wtay> autoplug is the create_chennel :) [21:33] <thomas> ok... I'll start again then... and put in the channel structure I'm going to use eventually anyway [21:36] <thomas> hmm... do I need an autoplug element for each channel I want to connect to the adder ? [21:36] <thomas> Or one for all of them ? [21:36] <wtay> hmm, try one first.. [21:41] <thomas> wtay: forgot something I think... [21:41] <thomas> what I actually need is input channels with disksrc and volenv at the end... [21:41] <thomas> and autoplug that [21:41] <thomas> the volenvs connect to the adder [21:41] <thomas> no need for autoplug thee [21:41] <thomas> there [21:42] <wtay> you can connect the src pad of the autoplugged pipeline to the adder yourself [21:42] <wtay> s/adder/volenc [21:42] <wtay> s/volenc/volenv [21:43] <thomas> so that means I need one autoplug for each channel which should be in the create_channel function [21:43] <thomas> keeping the ghost pads... [21:44] <wtay> yeah [21:44] <thomas> wtay: if I destroy a bin containing other elements, are they automatically dereferenced ? [21:45] <wtay> dunno if that is implemented the way you describe it, although it should... [21:46] <wtay> element destruction isn't implemented/tested very well... [21:52] <thomas> wtay: the gst_play_typefind functions... should I cut them and put them in another c file or just copy them ? [21:52] <thomas> wtay: are you planning on making them standard ? [21:53] <wtay> copy and paste them, I'm not sure where they should go... [21:53] <wtay> maybe in gstutils someday [21:54] <wtay> or maybe in a GstBin plugin... [21:57] ChiefHighwater (pa...@te...) left irc: Read error to ChiefHighwater[temple-baptist.com]: Connection reset by peer [21:57] ChiefHighwater (pa...@te...) joined #gstreamer. [21:59] <thomas> wtay: in the autoplug example, you get a new element from the autoplug... [22:00] <thomas> wtay: ... which you add to the bin and then connect to the disksrc... [22:00] <thomas> wtay:... but it seems you don't need to connect it to the sinks ? [22:00] <wtay> thomas: yup [22:00] <wtay> it's a renderer autoplugger so it does the connection for you [22:00] <wtay> the renderer autoplugger doesn't have src pads [22:00] <thomas> wtay: well maybe that's why I get an error when I run the new mixer [22:01] <wtay> yup, you need a non renderer autoplugger instead [22:01] <thomas> I changed that... [22:01] <thomas> /* add a ghost pad */ [22:01] <thomas> sprintf (buffer, "channel%d", id); [22:01] <thomas> gst_element_add_ghost_pad (pipe->pipe, [22:01] <thomas> gst_element_get_pad (pipe->volenv, "src"), buffer); [22:01] <thomas> oops wrong paste... [22:01] <thomas> I meant autoplug = gst_autoplugfactory_make ("staticautoplugger"); [22:02] <wtay> ok [22:02] <wtay> and how do you get the pad from the autoplugged bin? [22:02] <thomas> but maybe this is wrong: autoplug = gst_autoplugfactory_make ("staticautoplugger"); [22:02] <wtay> thats ok [22:02] <thomas> wrong paste again ;) [22:02] <thomas> new_element = gst_autoplug_to_renderers (autoplug, srccaps, channel->volenv); [22:03] <wtay> pads are called src_%02d [22:03] <wtay> thomas: it's a va_list so you'll need to terminate with NULL too [22:03] <thomas> what do you mean "pads are called src_%02d" ? [22:04] <wtay> src_00, src_01 [22:04] <wtay> in the autoplugged bin [22:04] <thomas> where do I need to use those then ? [22:05] <wtay> you'll have to use gst_autoplug_to_caps too... [22:05] <thomas> before or after renderers ? [22:05] <wtay> instead of _renderers [22:06] <wtay> hmm, hard to explain... [22:06] <wtay> I'm now writing code examples for that [22:07] <thomas> ok so I need to get sinkcaps for the volenv as well [22:07] <thomas> and put that in the autoplug_to_caps [22:07] <wtay> yup [22:08] Last message repeated 1 time(s). [22:08] <wtay> gst_pad_get_padtemplate_caps (gst_element_get_pad (volenv, "sink")) should do [22:09] <thomas> why not gst_play_typefind like for the srccaps ? [22:09] <wtay> how do you mean? [22:09] <thomas> in the autoplug example: [22:10] <thomas> srccaps = gst_play_typefind (GST_BIN (bin), disksrc); [22:10] <wtay> ok, what that does is: [22:10] <wtay> create a little pipeline, add the disksrc to it and connect typefind to it, run it (typefind will find the caps) and return the caps [22:11] <wtay> you can't really do that with volenv [22:11] <thomas> why ? because the caps of volenv are depending on what is put in ? [22:11] <wtay> yup [22:12] <wtay> and you don't know the sink caps at all [22:12] steveb (st...@no...) left irc: [x]chat [22:13] <wtay> I would do: gst_autoplug_to_caps (autoplug, srccaps, gst_caps_new ("audio", "audio/raw", NULL)); [22:13] <wtay> gst_autoplug_to_caps (autoplug, srccaps, gst_caps_new ("audio", "audio/raw", NULL), NULL); sorry [22:13] <wtay> tell the autoplugger to create something that will output raw audio [22:14] <thomas> so not this at all: sinkcaps = gst_pad_get_padtemplate_caps [22:14] <thomas> (gst_element_get_pad (channel->volenv, "sink")); [22:14] <wtay> could do that too although I think the autoplugger will refuse because volenv *needs* 2 channels and all plugins can output 1 channel too [22:14] <wtay> and there is no mono2stereo yet [22:15] <thomas> wtay: yeah, I need to get rid of that 2 channel dependency because there's no good reason [22:15] <wtay> when you do that, the gst_pad_get_padtemplate will work [22:16] <wtay> check out tests/autoplug[23] [22:16] <thomas> as in "cvs check out" ? [22:17] <wtay> as in look at the files on your disk :) [22:17] <thomas> uh, where ? [22:17] <thomas> oh sorry [22:17] <thomas> in tests [22:17] <wtay> that's what the autoplugger does [22:18] <thomas> no, don't have them in test... [22:18] <wtay> test*s* [22:18] <thomas> man... [22:18] <thomas> any good reason for that ? [22:18] Action: thomas feels like an idiot ? [22:18] <wtay> yes [22:18] <wtay> err no [22:18] <wtay> yes, well [22:18] <thomas> never mind... I was trying to save face. [22:19] <wtay> test is random crap, tests is code to test various subsystems [22:19] <thomas> ok so it's called static, not staticautoplugger ? the element that is ? changing... [22:19] <wtay> uhm [22:19] <wtay> ok [22:28] <thomas> hmmm... can I use the gst_play_typefind on the disksrc element ? [22:28] <thomas> adding debug printfs seems to show that this gives an error: [22:28] <thomas> printf ("DEBUG : c_i_p : autoplugging\n"); [22:28] <thomas> sorry... [22:28] <thomas> srccaps = gst_play_typefind (GST_BIN (channel->pipe), channel->disksrc); [22:28] <thomas> that's right [22:28] Action: thomas should learn to get the hang of code crusader [22:29] <wtay> that should work [22:29] <thomas> ok; here's the error when I run it : [22:29] <thomas> ***** GStreamer ERROR ***** in file gstscheduler.c at gst_bin_schedule_func:431 [22:29] <thomas> Element: /pipeline/volenv1.sink [22:29] <thomas> Error: peer is null! [22:29] <wtay> channel->pipe is empty, right? [22:29] <thomas> uh... no. I added disksrc and volenv to it. [22:29] <thomas> do that later ? [22:30] <wtay> yup [22:31] <thomas> now I get this : [22:31] <thomas> DEBUG : c_i_p : getting srccaps [22:31] <thomas> ** ERROR **: file gstbin.c: line 841 (gst_bin_iterate_func): assertion failed: (entries != NULL) [22:31] <thomas> aborting... [22:31] <thomas> Aborted (core dumped) [22:31] <wtay> hmm [22:32] <thomas> it's also in gst_play_typefind (...) [22:32] <wtay> ok, disksrc should be added to the bin.. [22:32] <wtay> only disksrc. [22:33] <thomas> ok, that seems to do something useful... [22:33] <thomas> now the program creates both channels... [22:33] <thomas> ...tells me it registered two new pads... [22:34] <thomas> ... then crashes on : [22:34] <thomas> Element: /bin/pipeline/autoplug_bin/mad.src [22:34] <thomas> Error: peer is null! [22:34] <thomas> checking if I have mad here... [22:34] <thomas> yes, it's there. [22:34] <wtay> did you connect mad to the colenv? [22:34] <wtay> s/col/vol [22:34] <thomas> no, probably not... [22:35] <thomas> you mean the newe element, right ? [22:35] <wtay> I mean the autoplugged src pad [22:35] <wtay> the ghost pad of the autoplugged element to be correct [22:36] <thomas> hang on... I tried this : [22:36] <thomas> gst_element_connect (channel->disksrc, "src", new_element, "sink"); [22:36] <thomas> gst_element_connect (channel->volenv, "src", new_element, "src"); [22:36] <thomas> oops... [22:36] <thomas> last one should be sink [22:36] <thomas> but is it correct then ? [22:36] <thomas> first one I meant [22:36] <wtay> the first one is [22:37] <wtay> the second one should be: [22:37] <wtay> gst_element_connect (new_element, "src_00", channel->volenv, "sink"); [22:37] <thomas> how do you know it's src_00 ? [22:37] <thomas> is there a way to get it ? [22:37] <wtay> you can enumerate the pad [22:38] <wtay> s/pad/pads [22:38] <wtay> gst_element_get_pad_list [22:38] <thomas> oh ok... but for both channels, they're both called src_00, right ? [22:38] <wtay> yup [22:39] <thomas> YES ! it's working. [22:39] <wtay> wow [22:39] <thomas> it sounds perfect. [22:39] <thomas> ok... [22:39] <wtay> try vorbis [22:39] <thomas> time to get some og [22:39] <thomas> have to download it... just a sec [22:41] iGN_ (ig...@lo...) got netsplit. [22:43] iGN_ (ig...@lo...) returned to #gstreamer. [22:45] <thomas> hmmm... 7 packages ? what's the difference between ogg and vorbis ? [22:45] <wtay> ogg is the bitstream, vorbis the codec [22:46] <thomas> do I need to rerun autogen.sh now that vorbis is installed ? [22:46] <wtay> yes [22:46] <wtay> ot manually enter plugins/vorbis and make [22:54] <thomas> I'm moving half a gig to a fat partition, while compiling and ogg encoding.... [22:54] <thomas> my xmms starts to stutter [22:54] ChiefHighwater (pa...@te...) left irc: Read error to ChiefHighwater[temple-baptist.com]: Connection reset by peer [22:56] <thomas> hmm... the ogg encoder doesn't seem particularly fast [22:57] <wtay> nope [22:58] <thomas> ok it works... [22:58] <thomas> and sounds like shit... [22:59] <thomas> but the autoplug works ! [22:59] <wtay> cool [22:59] <wtay> I'm amazed [22:59] <thomas> how's that ? [22:59] <wtay> :) [22:59] <wtay> you're my 'proefkonijn' [23:00] <thomas> glad to be of service ;) [23:00] <wtay> thx for testing :) [23:00] <thomas> how do you launch ogg decoding from commandline ? vorbisdec ? [23:00] <thomas> yeah, works. [23:00] <wtay> cool uh? [23:00] <thomas> yeah... makes it seem SO easy [23:01] <thomas> hah. [23:01] <thomas> hmmm... is it hard to have programs behave in the way gstreamer-launch does ? [23:01] <thomas> to get something like mixer mixer script=mix.xml ! audiosink ? [23:01] <wtay> nope, launch is a library [23:01] <thomas> great ! [23:01] <wtay> look at the gstreamer-launch coe :) [23:02] <thomas> get a mix in, add a tee, encode to different formats, save to disk and icecast it and whatever at the same time... [23:02] <thomas> hmmm.... [23:02] <wtay> ok that sounds more like it :) [23:02] <thomas> so it would be easy to make a multi-output mpeg encoder as well... [23:02] <thomas> speeding up the process a whole lot for multiple outputs [23:02] <wtay> yup [23:02] <thomas> ;) I should stop thinking [23:03] <wtay> go on and try to break gstreamer :) [23:03] <thomas> I probably will when I let it run for a year. [23:03] <thomas> I hope not, really. [23:04] <wtay> we did a leak check once and no significant leaks at runtime were detected [23:05] <wtay> gst_parse_launch ("disksrc location=somegfile.mp3 ! mad ! osssink", bin); :) [23:05] ChiefHighwater (pa...@te...) joined #gstreamer. [23:07] <thomas> ok... I'll commit the mixer now that it works ;) [23:07] <thomas> so you can hear it as well [23:08] <wtay> cool [23:08] <wtay> I just commited the api docs with autoplug examples [23:08] <thomas> ok... so I can learn. [23:09] <wtay> thomas: I doubt it after what you did today... [23:09] <wtay> thomas: nothing more to learn [23:10] <thomas> yes there is, I forgot already ;) [23:10] <wtay> doh [23:10] <thomas> ok it's in there... [23:10] <thomas> now I'll see how big the buffers are. [23:10] <thomas> I suspect ogg has variable length output... [23:11] <wtay> can you mix mp3 and vorbis now? [23:11] <thomas> yes, but it doesn't sound right. [23:11] <thomas> probably because of the ogg buffer length. [23:11] <wtay> ok, buffer length issues [23:11] <thomas> don't know if I'll get that fixed tonight. [23:11] <thomas> if not, then tomorrow for sure. [23:12] <wtay> cool [23:12] <thomas> that is if my idea from back then works... [23:12] <thomas> ... and the logs are in my mailbox ;) [23:12] <wtay> actually with autoplug you'll even be able to play the audio of an mpeg1 system stream... [23:12] <thomas> cool... [23:12] <thomas> that way you could add background music to your video [23:13] <wtay> and the audio in a DivX avi file too... [23:13] <thomas> or your own comments to the video ;) [23:13] <wtay> well don't try it yet, you'll need incsched again [23:14] <thomas> yeah... ogg seems to switch output buffer length [23:14] <wtay> cool [23:14] <thomas> common values : 4096, 512, 2304 (?) [23:14] <thomas> that 2304 seems weird... [23:15] <thomas> anyway. [23:15] <thomas> ok let's rethink this. This is what adder should do : [23:15] <thomas> * check all incoming src pads [23:15] <thomas> * get the smallest one [23:15] <thomas> * allocate an output buffer of that size [23:15] <thomas> * get that much data from each of them [23:15] <thomas> * add it [23:16] <thomas> * send it out [23:16] <thomas> * update pointers [23:16] <thomas> sounds right ? [23:16] <wtay> not quite [23:16] <thomas> what's wrong you think ? [23:16] <wtay> you should not get data from a pad if it has provided large amounts of data before [23:17] <thomas> right... [23:17] <thomas> ok here's what I meant to say... [23:17] <thomas> * check the smallest leftover from all of the srcpads [23:17] <thomas> (leftover being calculated in the previous iteration ... [23:17] <thomas> ... as how much of the current buffer wasn't used) [23:17] <thomas> * allocate that size [23:18] <thomas> * get as much as that from each input and update leftover values for each [23:18] <thomas> ... [23:18] <thomas> better ? [23:19] <wtay> you'll need to pull at least one buffer from the pad that provided the smallest buffer in the previous step [23:19] <thomas> basically; if I take the smallest buffer, I just set it's leftover value to 0... [23:19] <thomas> ... which means that it's empty and I should pull a new one [23:19] <wtay> perfect [23:19] <thomas> ... which I should do for all of them (in case two were equally small) [23:20] <wtay> yup [23:20] <thomas> didn't know it would end up being that easy [23:20] <wtay> hmm samplerate issues aside, yes [23:20] <thomas> I'm not even thinking about those... [23:20] <thomas> those are the hardest to do in one step [23:20] <thomas> basically I just leave it up to someone to make sample rate converter [23:20] <thomas> and have it autoplug [23:20] <wtay> those should be handled by a separate plugin anyway [23:21] <wtay> yup [23:21] <thomas> I actually allowed it in my previous mixer... [23:21] <thomas> ... but without sample rate conversion... [23:21] <wtay> just provide a rate property to the autoplug caps [23:21] <thomas> ... which of course ends up like pitch conversion [23:21] <thomas> ... which was a nice effect to have [23:21] <thomas> when the mixer seems to work I'll learn some more about caps and see how I can get rid of that stereo dependency [23:22] <thomas> then make a stereo envelope plugin [23:22] <wtay> pitch conversion without altering the speed is cool [23:22] <thomas> you know... making a SRC with sox should be pretty straightforward, no ? [23:22] <thomas> or some other libraries somewhere [23:22] <wtay> pipefilter [23:22] <thomas> that's the one that wraps around stdin/stdout ? [23:22] <wtay> yup [23:23] <wtay> not verry well currently but anyway [23:23] <wtay> I have some cool code for a rate converter here [23:25] <thomas> anything special about it ? [23:25] <wtay> int based, does cool interpollation (I didn't write it) [23:25] <thomas> hard to implement ? [23:26] <wtay> FIR lowpass, Froll and other funky names... [23:28] <wtay> looks complicated to me... [23:30] <thomas> I would want to look at that later... [23:30] <thomas> hmmm... I should get some sleep. [23:30] <wtay> yeah, me too... [23:31] <thomas> is that dvd stuff hard to get workingg ? [23:31] <thomas> or should I leave that for tomorrow as well ? [23:31] <ChiefHighwater> hehe, g'nite y'all 8-] [23:31] <wtay> not really, I just lost me DeCSS code :) [23:31] <wtay> hmm, maybe I still have it somewhere... [23:31] Action: taaz perks up [23:32] Action: wtay has to edit the logs again [23:32] <taaz> thomas: since you have so much free time to work on gstreamer things... and you want dvd working... why not just heck gstreamer into oms? ;) i don't seem to have the time to get it done anytime soon [23:33] <thomas> hmmm... is libcss the right thing to have ? [23:33] <thomas> taaz: I don't really have free time to work on gstreamer ;) [23:33] <thomas> taaz: at least not anymore than you all do [23:33] <wtay> thomas: hmm does that exist? [23:33] <thomas> taaz: I just wanted to try it because the first time I checked oms it failed... [23:33] <thomas> ...because of a bad string ptr alloc in the dvddb code. [23:33] <thomas> I fixed that but then it threw some more at me. [23:34] <thomas> I started running in panic [23:34] <thomas> yeah... it seems right : [23:34] <thomas> This source package does two things. [23:34] <thomas> a) It contains code to perform the css authentication protocol, [23:34] <thomas> allowing locked sectors on the DVD disc to be accessed. [23:34] <thomas> This also allows us to read the disc key and title keys. [23:34] <thomas> b) It contains an implementation of the css decryption algorithm, [23:34] <thomas> so that we can watch DVD's. [23:35] <taaz> uh... grr. the oms code only works for those of us who work on the code. everyone else has problems. very annoying [23:35] <thomas> sorry ! [23:35] <wtay> taaz: so does gstreamer :) [23:35] <thomas> I did get the nicelooking omi interface though [23:36] <thomas> wtay: do you want the libcss ? [23:36] <wtay> sure [23:36] <thomas> it's an early version though [23:36] <thomas> I'll put it up... [23:36] <wtay> no prob [23:36] <taaz> libcss is on the livid site [23:36] <wtay> oh [23:36] <thomas> ok then it's ok [23:36] <wtay> cool [23:36] <thomas> you know where it is ;) [23:36] <wtay> yeah [23:36] <thomas> but that's not what I need then to get it working ? [23:36] <wtay> will try to base gstreamer on it then [23:37] <thomas> damn... I bought a Jeff Buckley DVD and I still have to watch it... [23:37] <wtay> thomas: nope, a custom DeCSS version I made... [23:37] <wtay> thomas: xine/ vlc. [23:37] <taaz> please feel free to suggest improvements to libcss code. no one every submits patches or anything for it [23:37] <wtay> taaz: ok [23:38] <wtay> but first things first.. :( [23:40] Action: thomas yawns [23:40] <thomas> ok, I should be able to finish the adder on my own tomorrow... [23:40] <thomas> let's hope it works... [23:40] <thomas> then I can start on some xml input [23:40] <wtay> ok [23:40] <thomas> see you all later [23:40] <wtay> cya [23:41] thomas (th...@ur...) left irc: I'm outta here! [00:00] --- Wed Apr 18 2001 [00:04] rdj_ (rd...@a3...) left irc: proud member of the anti movement... [00:12] rdj (rd...@a3...) joined #gstreamer. [00:16] hadess (ha...@pc...) left irc: mooooh! [00:18] sienap (sy...@ip...) joined #gstreamer. [00:18] <sienap> hi all! [00:18] <sienap> :) [00:18] <sienap> wtay! [00:18] <sienap> being the bast op ? [00:21] #gstreamer: mode change '-o wtay' by wtay!wi...@ca... [00:21] <wtay> uh [00:22] <sienap> wtay >:) [00:22] <sienap> wtay someone done today ? [00:22] <wtay> yo [00:22] <wtay> docs [00:22] <sienap> he important too :) [00:22] <wtay> yup [00:23] <wtay> going to sleep though... [00:23] <wtay> cya all [00:23] Nick change: wtay -> wtay-zZz [00:23] <sienap> bye! [00:23] <sienap> sleep well :) [00:23] <wtay-zZz> thx :-) [00:24] ChiefHighwater (pa...@te...) left irc: [00:34] sienap (sy...@ip...) left irc: sienap has no reason [02:06] matth_ (ma...@qw...) got netsplit. [02:07] matth_ (ma...@qw...) returned to #gstreamer. [02:26] matth_ (ma...@qw...) got netsplit. [02:28] matth_ (ma...@qw...) returned to #gstreamer. [06:04] Nick change: taaz -> taazzzz |