Monday, 2013-07-29

*** tpb has joined #timvideos00:00
bananadinei'm going00:00
bananadineand coming back tomorrow00:00
bananadineto solve this mystery00:00
bananadinegoodnight all00:00
*** bananadine has quit IRC00:01
*** Jahanzeb has quit IRC00:16
*** Jahanzeb has joined #timvideos00:17
*** Jahanzeb has quit IRC01:22
*** Jahanzeb has joined #timvideos01:48
*** hyades has quit IRC02:10
*** Jahanzeb has quit IRC02:53
*** mithro has joined #timvideos03:59
*** iiie0 has quit IRC04:08
*** hyades has joined #timvideos04:38
*** parx has left #timvideos05:46
*** mithro has quit IRC07:22
*** mithro has joined #timvideos07:24
*** mithro- has joined #timvideos07:28
hyadesmithro-work: mithro  meeting?07:28
mithro-hyades, yes07:30
hyadesmithro-: joining in 2 mins07:30
mithro-Give me 2 too :)07:30
*** mithro has quit IRC07:31
*** hyades0 has joined #timvideos07:35
*** hyades is now known as Guest3302407:36
*** hyades0 is now known as hyades07:36
hyadesmithro-, im in07:37
mithro-hyades, try dragging the bandwidth slider down07:39
hyadesaye, not again!07:39
hyadesya did07:39
mithro-hyades, we can just have a text based meeting if you want07:39
mithro-still can't hear anything from your end07:40
mithro-hyades, lets give up on video/audio07:40
hyadessome connectivity issues07:40
mithro-so, it's effectively mid-term evaluation07:41
mithro-hyades, so have you done any work on the mid-term report?07:42
hyadesi'll post that long blog post sometime today07:42
hyadesmostly done, some parts left07:42
mithro-do you want to dump it into a google doc or something that I can view?07:42
mithro-and give you feedback on before you post it?07:42
hyadesk..i do it after this meeting/07:43
hyadesmost of the unittests were completed07:43
hyadesintegration tests are still left, I have only one of them07:44
mithro-I've just installed Ubuntu, what are the steps I need to test your code?07:46
hyadesfirst get gst-switch running :)07:46
mithro-hyades, assume I know nothing07:47
mithro-how does one "first get gst-switch running"07:47
hyadesi use the uninstalled script for doing that ok?07:47
mithro-hyades, what ever steps are required07:47
tpb<> (at
mithro-hyades, please write up these instructions07:48
mithro-hyades, you want to have instructions which even parx could follow07:48
hyadesokay first u need to download this script07:48
hyadesthen do a ./gst-uninstalled07:49
mithro-hyades, writing in IRC is not going to make it possible for parx to follow it07:49
hyadesi will put in a blog post...i am currently not sure where this script resides on my system07:50
hyadesi will upload the script also07:52
*** tansell__laptop has joined #timvideos07:53
*** tansell__laptop is now known as mithro07:54
*** mithro- has quit IRC07:55
hyadesmithro: this is the script07:56
tpb<> (at
mithrohyades, that probably gets you into a clean state, but you still need to get the rest working07:56
hyadeswhat rest?07:57
tpb<> (at
mithrohyades, the installation of gst-switch07:58
mithrohyades, yeah that looks like a good thing to start with07:59
hyadesinstead of the link to the script you should use this07:59
tpb<> (at
hyadesyou can even edit that script and remove gst-plugins-bad from line 3908:01
hyadessince gst-plugins-bad has to be installed from duzy's repo08:02
mithrohyades, your still not getting it - I want you to write down something which lets someone else reproduce your results without having any knowledge about anything except how to type commands into their computer08:02
hyadesokay, i will better make a script for doing all this :)08:03
hyadesand also edit this blog post08:03
mithrohyades, okay08:04
mithrohappy to test08:04
mithroI'm sure CarlFK and parx will be happy to test too08:04
hyadesproblem with me testing this in VM is that this script requires me to download huge amount of data, which takes lots of time08:05
*** hyades_ has joined #timvideos08:11
hyades_mithro: anything else?08:13
*** hyades has quit IRC08:13
mithrohyades_, not that I can think of08:13
mithrodo you have any questions yourself?08:13
hyades_i will mail you the gdoc08:14
*** hyades_ is now known as hyades08:16
hyadesmithro: i'll have lunch and quickly come back :)08:19
mithrohyades, no hurry08:19
mithrohyades, can you give me comment access?08:35
hyadesyeah gave08:40
hyadesur email is [email protected]?08:44
mithrohyades, yes09:07
hyadesi had given u edit access earlier09:08
mithrooh wait09:09
mithrostupid google09:09
mithroit's opened it with my account rather then my [email protected] account09:09
*** Jahanzeb has joined #timvideos09:10
mithrohey Jahanzeb09:14
mithroJahanzeb, numanto is going to release the PCB footprints for the VHDCI connector we are using on the dev board09:14
mithroJahanzeb, Would you find that useful? or are you using the other type of connector (IE female/male)09:15
JahanzebI already made it09:15
Jahanzebit on git09:15
Jahanzebvmodvga repository09:16
mithrooh well09:16
mithrohyades, lots of comments09:16
Jahanzebyea just trying to make it as habit09:17
Jahanzebso commiting any time i make a small change09:17
mithroJahanzeb, great! good habit to get into to09:17
mithroanyway have to run now09:17
mithroso I'm back in time for bananadine09:18
Jahanzebbegore u go09:18
Jahanzebjust a quick question09:18
Jahanzebcan i start working on jpeg optimization?09:18
mithroJahanzeb, at the moment there is no funding for it yet09:18
mithroSo maybe worth working on your PhD instead :P09:19
mithrobe back in 20 minutes09:19
JahanzebOk yea have to start writing thesis now submission deadline is september :)09:20
*** mithro has quit IRC09:24
*** Jahanzeb has quit IRC09:26
*** mithro has joined #timvideos09:44
mithrohyades, oh btw - your audience for the mid-term report is not the mentors, but the general public09:45
mithrothe mentors have been reading your blog regularly09:47
mithrohyades, actually - you should always assume the general public for your blog possts09:53
mithrohyades, have you ever published a paper for University?10:03
*** bananadine has joined #timvideos11:34
*** Jahanzeb has joined #timvideos11:36
bananadineping mithro11:38
mithrobananadine, running a little late?11:38
bananadinei overslept11:38
mithroso where are you at with the stream?11:39
mithroI saw you where working with iiie over the weekend11:39
*** Sewar-- has joined #timvideos11:41
bananadinewell i still haven't resolved the pspec issue11:42
*** Jahanzeb has quit IRC11:42
mithrobananadine, please describe this issue11:42
bananadinein the ported version pspec is getting a None value, and the exception gets raised for this line
tpbTitle: flumotion/flumotion/common/ at master · bananadine/flumotion · GitHub (at
bananadinesaying NonType object pspec has no attribute 'name'11:44
bananadinepspec is the argument for the pipeline specifications11:45
bananadinehas stuff like:11:45
bananadine<GParamEnum 'pattern'>11:45
bananadine<GParamInt 'bitrate'>11:45
bananadineso iiie suggest to fake the pspec_name and see what happens11:47
bananadineso wrote:11:47
bananadineif pspec == None:11:47
bananadine       pspec_name = 'bitrate'11:48
bananadine    else:11:48
bananadine        pspec_name = pspec.name11:48
bananadine    output = orig.get_property(pspec_name)11:48
bananadinewell the indenting is not like i pasted, but you get the idea11:48
mithrobananadine, so what does the documentation say you will get in that callback?11:48
bananadinethis is not a gstreamer callback11:49
mithrobananadine, okay - so what calls it back then?11:50
bananadinethis function11:51
tpb<> (at
bananadinei looked in GstPipeline for the connect function11:51
bananadinebut couldn't find it11:51
bananadineyou told me to look at this line11:51
tpb<> (at
tpb<> (at
mithrobananadine, assuming that the pipeline object is a GstPipeline object is a dangerous assumption to make11:52
mithrohave to tried printing out what the pipeline object actually is?11:53
mithroI suggest both a repr and str11:53
bananadinei think i've printed self.pipeline11:54
mithroso what is it?11:54
bananadinei'll do it again now11:54
bananadinehere mithro11:56
bananadinei printed self.pipeline in feedcomponent010.py11:57
bananadine<Pipeline object at 0x95602d4 (GstPipeline at 0x94f03a8)>11:57
bananadine<Pipeline object at 0x9649784 (GstPipeline at 0x9792618)>11:57
bananadine<Pipeline object at 0x988d66c (GstPipeline at 0x9844758)>11:57
mithroI recommend printing out11:58
bananadine<class 'gi.repository.Gst.Pipeline'>11:59
mithrookay, so it is a Gst.Pipeline object12:00
mithroso your safe there :)12:00
mithrohave you tried creating a GstPipeline object in iPython/bPython?12:00
bananadineno i haven't12:00
mithrothat might let you discover where the .connect method is coming from12:03
bananadinei don't know how that'll work12:05
bananadineoh wait12:06
bananadineFound a Gst.Pipeline.connect with auto complete12:06
bananadinei could find it before12:06
bananadineor i've missed it12:06
bananadinei don't know12:06
bananadinehow do i find more about it?12:07
bananadinei couldn't find it before *12:07
bananadineHelp on method_descriptor:12:11
bananadinethis is all i got12:11
mithrobananadine, sadly that is not unexpected12:12
bananadinewell, what now?12:15
mithroWe try and figure out what method that maps to on the C api12:15
mithroas the C API does have documentation12:16
mithrobananadine, find Gst-1.0.gir12:17
*** Sewar-- has quit IRC12:19
bananadinemithro what to do with that file?12:20
mithrolooks like connect doesn't come from gstreamer12:20
mithrobananadine, if you open that file you'll see the definition for GstPipeline12:20
mithro    <class name="Pipeline"12:20
mithro           c:symbol-prefix="pipeline"12:20
mithro           c:type="GstPipeline"12:20
bananadineok, btw12:21
tpb<> (at
mithroyeah I was hoping for nothing a little nicer then that12:22
mithroI did a google search for12:23
mithro"gstreamer deep-notify"12:24
mithroand came up with12:24
tpb<> (at
*** hyades has quit IRC12:25
bananadineso pspec is equivalent to prop12:25
*** Jahanzeb has joined #timvideos12:27
tpb<> (at
mithroso it doesn't look like the callback change at all?12:28
bananadineit's the same12:28
bananadinewhy does this happen then12:29
bananadinesomething blocking the way?12:29
mithrogood question12:29
mithrobananadine, so going back to the verbose_deep_notify_cb12:30
mithrowhat is the full set of arguments it gets?12:31
bananadine(object, orig, pspec, component)12:31
bananadineand they all have values, only pspec has None12:32
mithrowhat are the values they have?12:32
bananadine'print object' prints <Pipeline object at 0x9cb0c34 (GstPipeline at 0x9ce6c38)>12:33
bananadine'print orig' prints <__main__.GstMultiFdSink object at 0x9868c0c (GstMultiFdSink at 0x98656d0)>12:33
bananadine'print pspec' prints None12:33
bananadine'print component' prints all components in the pipeline12:33
bananadine(videotest, audiotest, encoders etc.)12:33
mithrowhat happens if you just do nothing if pspec was none?12:37
mithro"if pspec is None: return"12:37
bananadinehaven't tried that12:38
mithromaybe it's just getting called even when something other then a property is being updated?12:38
mithroactually looking at this function12:38
mithroall it does is log information about properties changes12:39
bananadinewhen i put that line12:40
bananadinethe worker output is a lot smaller12:40
bananadinethere is no error because of the line i put12:41
mithrobananadine, what do you mean?12:41
bananadinewell the pspec error is gone12:41
bananadinethere's no new error12:41
mithroand is it working?12:43
bananadinewhat? the stream?12:43
bananadinemithro the stream is not working since there a couple of other smaller errors12:48
bananadinemostly "before it took this now it takes something else as an argument"12:48
bananadinebut i'm not sure of what to exactly do with them12:48
mithroI wouldn't call them small errors12:49
bananadinecan i show you one of them?12:49
mithrobananadine, but I'm going to be grumpy if you haven't atleast done your homework and looked up the stuff in the documentation12:52
bananadinei've looked12:52
bananadinebut i don't know what to do with the code12:53
bananadine here's the error12:53
tpbTitle: Twisted traceback: Traceback (most recent call last): File "/usr/lib/python2 - (at
bananadinethe code before the port12:53
tpb<> (at
tpb<> (at
bananadineget_name is from the parent of GstPipeline, GstBin12:54
tpb<> (at
bananadineit's the same in gst 0.1012:55
mithrobananadine, so what is self.pipeline?13:03
mithrowhat is happening is that the get_by_name method is not being properly bound to the pipeline class13:04
mithrotry printing out13:04
mithrorepr(self.pipeline), repr(self.pipeline.get_by_name)13:05
bananadinenothing got printed out...13:07
mithroand the problem is13:08
mithro        self.pipeline = Gst.Pipeline13:08
mithrothat line is totally not valid13:08
bananadineoh wawit13:08
bananadineforgot to put print before repr()13:08
mithrobananadine, plus13:08
bananadineah yes i forgot to tell you13:08
bananadinethat line13:08
bananadineself.pipeline changes to another Gst  class13:08
mithrobananadine, I can find no reference to these lines in the original code13:08
bananadinein that functio13:08
bananadineso i bring it back13:09
bananadinei'll comment that line13:09
bananadineand show you what self.pipeline gives13:09
bananadinemithro, i get nothing from printing self.pipeline or repr(self.pipeline)13:13
bananadineand since i commented that line i don't get the error13:13
mithroI have no idea why you thought it would be a good idea to assign a bare class to that variable13:14
bananadineprinting doesn't work there13:15
bananadinei'll try with raising an exception13:15
bananadine    raise Exception(self.pipeline)13:17
bananadineexceptions.Exception: <Pipeline object at 0x9d796bc (GstPipeline at 0x9d36758)>13:17
bananadinewell it's ok now13:17
bananadinei mean the self.pipeline thing13:17
bananadinebefore it used to return GstElement i think13:17
bananadineso that's why i assigned Gst.Pipeline13:17
bananadineto that variable13:17
bananadinenow to get this working
tpb<> (at
bananadinebecause element is none (in other words it gets nothing from this, right)13:19
*** hyades has joined #timvideos13:21
bananadine    raise Exception(self.pipeline.get_by_name('src'))13:21
bananadineexceptions.Exception: None13:21
bananadinemithro i'm going to eat, see what i wrote13:24
bananadinebe back in 10 min.13:24
mithrowhat makes you think that get_by_name('src') would return anything?13:24
mithroI probably won't be around thenm13:24
hyadesmithro: is there any place where i can get VMs. My system has no RAM left13:25
mithrowhy do you want VMs?13:25
mithronothing you are doing should require VMs13:25
hyadestry out installing, I don't want to loose my existing things13:26
mithrohyades, use a chroot13:26
bananadinemithro, i'm back13:29
bananadineok so there wasn't a get_by_name before13:29
tpb<> (at
bananadinebut now it needs this to get the element13:30
bananadinebecause the function set_base_time etc.13:30
bananadineare in GstElement13:30
bananadineoh wait...13:32
mithrobananadine, you need to work out which element the old functions where routed too13:32
bananadinepipeline does have those functions13:33
bananadinesomewhere i read otherwise and changed it without double checking13:34
bananadinesilly mistake13:34
bananadinewell this reduces the number of errors13:35
bananadinemithro, got time for one more?13:38
mithrobananadine, I guess13:39
mithrobut I might disappear at any time13:39
bananadinehere's what was before13:39
tpb<> (at
tpb<> (at
bananadinehere what is now13:39
tpb<> (at
tpb<> (at
bananadinei'm not sure i did right here13:40
bananadineso i need to you tell me13:40
bananadinei get:13:40
bananadineTraceback (most recent call last):13:40
bananadine  File "/home/max/Desktop/flumotion-porting/flumotion/cache/component/aec307a20c9dc39fab3ef842b25076c2/flumotion/component/", line 985, in buffer_probe_cb13:40
bananadine    pad = Gst.Element.get_static_pad('src')13:40
bananadineTypeError: unbound method get_static_pad() must be called with Element instance as first argument (got str instance instead)13:40
bananadinei know what it means13:40
bananadinepre-port that line was pad = depay.get_pad("src")13:41
bananadinenow i deleted dpay13:41
bananadineand the line is13:41
bananadine pad = Gst.Element.get_static_pad('src')13:41
bananadinewhich is bad13:41
bananadinei know it should be like this13:41
mithroGst.Element.get_static_pad('src') <- you can do that13:43
mithroyou need to call get_static_pad('src') on a GstElement element13:43
mithronot the class13:43
bananadinebut i need to tell where from13:43
bananadinebut i don't have a GstElement13:44
bananadinei think dpay was a GstElement13:45
mithrotry starting up the old system and print each of the elements13:46
bananadinei can do that13:46
mithroyou want to look at where you bind too13:48
mithro                depay.get_pad("src").add_buffer_probe(13:49
mithro                    self.buffer_probe_cb, depay, e)13:49
bananadinei looked there13:49
bananadineit's in place of the callback function argument13:50
bananadineand that function is described in the link i sent you above13:50
tpb<> (at
bananadineand in the new gst13:50
tpb<> (at
mithroso originally it gave the depay element13:50
mithro            depay = self.get_element(self.eaters[e].depayName)13:52
mithro            self._probes[e] = \13:52
mithro                depay.get_pad("src").add_buffer_probe(13:52
mithro                    self.buffer_probe_cb, depay, e)13:52
bananadinehad to raise to get what dpay has (in the pre-port flumotion)13:52
bananadineException: INFO  [ 9598] "muxer-audio-video:eater:default-bis" default           Jul 29 15:51:32 /GstPipeline:pipeline-muxer-audio-video/GstGDPDepay:eater:default-depay (__main__.GstGDPDepay)13:52
mithroso you removed depay from add_buffer_probe because?13:53
*** hyades has quit IRC13:53
bananadineit couldn't take that many arguments13:54
*** hyades has joined #timvideos13:54
mithrodepay.get_pad("src").add_buffer_probe(self.buffer_probe_cb, [depay, e])13:54
mithrodepay.get_pad("src").add_buffer_probe(self.buffer_probe_cb, (depay, e))13:55
mithrothen on the other end13:55
bananadinei can't add_buffer_probe13:55
bananadinein the new gstreamer13:55
mithro    def buffer_probe_cb(self, pad, probe_info, clientData):13:55
bananadineit's just add_probe13:55
mithro        depay, e = clientData13:55
bananadinewhat you're saying is13:57
bananadinedef buffer_probe_cb(self, pad, probe_info, eaterAlias):13:57
bananadine  def buffer_probe_cb(self, pad, probe_info, clientData):13:57
mithrothen in13:57
mithrodepay, e = clientData13:57
bananadinewhat about eaterAlias?13:57
bananadineit uses it in13:57
bananadinesrcpad_to_link = self.get_eater_srcpad(eaterAlias)13:58
mithroe == eaterAlias13:58
bananadineand         Gst.Element.get_static_pad("src").remove_probe(self._probes[eaterAlias])13:58
mithrodo you understand that clientData can be anything?13:59
bananadinedidn't understand that13:59
bananadinebut as i see14:00
bananadinesince the callback defined here!api=gstreamer-1.0/Gst.PadProbeCallback14:00
tpb<> (at
bananadineonly has 2 arguments14:00
bananadineis this why it can be anything?14:00
bananadineTraceback (most recent call last):14:01
bananadine  File "/home/max/Desktop/flumotion-porting/flumotion/cache/component/712f7faa53a666720b6bb0223de1c735/flumotion/component/", line 985, in buffer_probe_cb14:01
bananadine    depay, eaterAlias = clientData14:01
bananadineValueError: too many values to unpack14:01
mithrowhat is clientData?14:01
bananadinei don't know14:02
bananadineyou just told me to put it there14:02
mithroprint it then!14:02
bananadineand i put it14:02
bananadineit printed out14:04
bananadinejust that14:05
mithrorepr it14:05
bananadine    raise Exception(repr(clientData))14:06
bananadineException: 'default'14:06
mithromy guess that is e14:06
mithrodid you update the add_probe?14:06
bananadine                depay.get_static_pad("src").add_probe(14:07
bananadine                    Gst.PadProbeType.BUFFER, self.buffer_probe_cb, e)14:07
mithrono you didnt14:07
bananadinei'll do it now14:07
mithroyou understand when you change the callback you also have to update the thing which calls it14:09
bananadineit got pass the error it gave before14:09
bananadineright right14:09
bananadinethat's wht it couldn't assign to e and depay14:09
bananadinewell now i got some errors which i can fix on my own14:12
bananadine(stuff i missed to port)14:12
*** Jahanzeb has left #timvideos14:21
bananadinemithro, what can i do to pass a return value of something from one function15:18
bananadineas an argument in something in another function15:18
bananadinefor example this:
bananadineis ported to pad.add_probe(Gst.PadProbeType.BLOCK, self._on_eater_blocked, None)15:19
tpb<> (at
bananadineand this:
tpb<> (at
bananadineto pad.remove_probe()15:19
bananadinebut i need to pass the return value of the first to the pad.remove_probe(15:20
bananadinepad.remove_probe() *15:20
bananadinethe return value of add_probe is the probe id15:20
mithrobananadine, store it somewhere15:21
mithroand I'm pretty sure that is not being ported to add_probe15:21
mithro            pad.set_blocked_async(True, self._on_eater_blocked)15:22
mithrothat line is actually doing something other then just setting a callback15:22
bananadine gst_pad_set_blocked(), gst_pad_set_blocked_async(),15:24
bananadine    gst_pad_set_blocked_async_full() are removed, use the gst_pad_add_probe()15:24
bananadine    method with the GST_PAD_PROBE_TYPE_BLOCK to get the same result as the async15:24
bananadine    blocking version.15:24
mithrobananadine, looks like you are right15:25
mithroso I'm confused at what your problem is?15:26
bananadineit's a bit silly15:26
bananadineso i store it in some variable15:26
bananadinelets say15:26
bananadineprobe_id = pad.add_probe(Gst.PadProbeType.BLOCK, self._on_eater_blocked, None)15:26
bananadinehow do i then pass that in the other function?15:26
bananadinedo i need to define probe_id as a global variable?15:27
*** hyades has quit IRC15:28
mithrothese functions are on a object right?15:29
mithrostore it on the object15:30
mithroand make sure you don't leak callbacks by accidently overwritting them15:30
*** hyades has joined #timvideos15:32
*** hyades0 has joined #timvideos15:44
*** hyades has quit IRC15:52
*** hyades0 is now known as hyades15:53
*** hyades_ has joined #timvideos15:55
*** hyades has quit IRC15:57
*** mithro has quit IRC16:07
*** bananadine has quit IRC16:07
*** hyades_ is now known as hyades16:12
*** hyades has quit IRC16:46
*** hyades has joined #timvideos16:54
*** hyades has quit IRC17:01
*** hyades has joined #timvideos17:06
*** iiie is now known as iiie217:09
*** Jahanzeb has joined #timvideos17:35
*** hyades has quit IRC17:46
*** hyades has joined #timvideos17:49
*** hyades has quit IRC18:56
*** hyades has joined #timvideos18:57
*** CarlFK has joined #timvideos19:14
hyadeshi CarlFK19:23
CarlFK  not only talks about the mock module, but testing strategies and philosophies and general chit-chat19:24
tpb<> (at
CarlFKhi hyades19:24
hyadesi'll write about building gst-switch in a while. Can you try it out whenever you have time?19:30
CarlFKmaybe in about 24 hours19:31
*** iiie has joined #timvideos19:38
*** iiie0 has joined #timvideos20:02
*** parx has joined #timvideos20:27
*** hyades has quit IRC20:36
*** hyades has joined #timvideos20:41
*** hyades has quit IRC20:49
*** hyades has joined #timvideos21:07
tpbTitle: (at
*** CarlFK has quit IRC22:20
*** Jahanzeb has left #timvideos23:09
*** mithro has joined #timvideos23:49
*** mithro has quit IRC23:59

Generated by 2.12.1 by Marius Gedminas - find it at!