19:41:30 #startmeeting 19:41:30 Meeting started Sat Jan 30 19:41:30 2010 UTC. The chair is mchua. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:41:31 Useful Commands: #action #agreed #halp #info #idea #link #topic. 19:41:35 #action mchua make sure logs get stitched together from the zodbot hiccup 19:42:21 #chair loupgaroublond ctyler jds2001 spevack herlo dgilmore stickster ke4qqq inode0 quaid 19:42:22 Current chairs: ctyler dgilmore herlo inode0 jds2001 ke4qqq loupgaroublond mchua quaid spevack stickster 19:43:14 mchua: thanks 19:43:34 zxiiro: did you make that with inkscape or what? 19:43:45 * herlo is going to alter it if he can get the source... 19:44:14 dia 19:44:17 i can send you the .dia file 19:44:28 zxiiro: yeah, herlo@fedoraproject.org 19:45:59 zxiiro: one thing we should do is create command line equivalents to what you have done in code. That will help us quickly identify what's going on 19:46:45 zxiiro: per chance, do you have a simple command line for a usb device in and out?? 19:47:02 if not, I can probably figure it out 19:47:11 herlo: no i don't 19:47:53 i can make commandline equivalents of the code, which part do you need specifically? 19:48:54 zxiiro/herlo: feel like committing the dia diagram it into github? 19:48:56 herlo: you should have my email by now, i should mention the dotted line sections are optional, in the code it can be added/removed 19:50:18 zxiiro: cool 19:51:00 rossand: I think that's appropriate in a docs dir 19:51:56 herlo: good idea. I'll create src, docs and push to master. 19:52:10 The wiki was another option, but it's not as good IMHO 19:52:12 rossand: sweet 19:55:50 zxiiro: http://blog.abourget.net/2009/6/14/gstreamer-rtp-and-live-streaming 19:56:01 that has some code that pulls from firewire 19:58:19 dgilmore: thanks i'll take a look 20:20:00 zxiiro: gst-launch v4l2src ! queue ! videorate ! video/x-raw-rgb,framerate=25/1 ! videoscale ! video/x-raw-rgb,width=720,height=480 ! ffmpegcolorspace ! xvimagesink 20:20:04 here's one that works! 20:20:24 you can put the rate and scaling in the queue 20:20:49 we can actually queue up outputs at different rates... 20:22:49 herlo: i'll see about adding that to the code 20:24:06 just trying to think where we'd fit that in 20:24:11 to the diagram 20:27:50 zxiiro: I'll be diagraming in a bit... 20:40:32 how does ! video/x-raw-rgb,width=720,height=480 translate to pygst code? 20:40:42 i can't make that with element_factory 20:41:12 capsfilter = gst.element_factory_make('capsfilter') 20:41:13 capsfilter.set_property('caps', gst.caps_from_string('video/x-raw-yuv, width=320, height=240')) 20:41:47 zxiiro: there is an example of it in the post i pointed you at earlier 20:42:10 dgilmore: ok so then i just like videorate to capsfilter to videoscale to another capsfilter and so on 20:42:19 s/like/link 20:42:35 zxiiro: i believe so 20:42:46 im new to python gstreamer also 20:42:53 ok i think i can do that 20:43:11 i'm gonna grab a bit to eat first then i'll be back to try it 20:47:29 freeseer: master Andrew Ross * 4072c97 (0 files in 0 dirs): added docs, pkg directory - http://bit.ly/cVCJ1D 20:49:55 Looks like the irc plugin is working ;-) 20:55:11 w00t 21:13:54 rossand: zxiiro: I'm available to help out now in any way I can 21:16:23 stickster: cool. zxiiro and herlo have issues 4&5 on the go. Not sure if they're ready for people to go after issue 6. Issue 1 is doable if you care for packaging. http://github.com/fosslc/freeseer Another idea is to simply code review and spot any issues needing fixing. 21:16:44 * stickster can package, that's not a bad idea 21:16:51 I think zxiiro has issue 9 on the go as well. zxiiro? 21:17:11 * stickster will take issue 1 21:17:21 stickster: perfect. if you pulled the code earlier, please refresh as I shifted the directory structure about an hour ago. 21:17:50 I don't have zxiiro's latest, but we can extrapolate by looking at his branch in the web to get the filenames for the spec file. 21:18:15 rossand: I have the stuff that's in zxiiro/playground, and I also have a branch for freeseer/master. 21:18:24 rossand: Which should I be looking at for packaging? 21:19:07 stickster: I need to educate myself on the convention for python scripts.. if there's a lib directory convention or it's typical to just throw the library code and exec in the same directory 21:21:54 rossand: The Fedora Python guys know quite a bit about this 21:22:09 If you check over at #fedora-python you can probably get tips or even just a pointer to a well-done lib 21:22:25 stickster: off I go, be right back 21:32:31 FYI http://docs.python.org/distutils/ 21:33:08 * rossand is reading. This will affect how we deliver the apis 21:35:53 herlo: i added the videorate and videoscale to the chain, i basically i fit it between the current ffmpegcolorspace and videotee in the diagram 21:36:46 herlo: so the updated diagram should be [vidsrc] - [ffmpegcolorspace] - [queue] - [videorate] - [queue] - [videoscale] - [vidtee] 21:38:46 Even though we don't have a lot of code, we may want to have two packages: libfreeseer which delivers the apis, and freeseer which delivers the gui. The latter could become freeseer-qt and freeseer-gtk. 21:39:05 rossand: I agree completely 21:39:17 stickster: cool. 21:39:35 rossand, stickster: works for me 21:39:45 We'd probably use 'python-freeseer' as the package name 21:39:57 If this is modular, it could grow quite a bit and a component based approach from the start makes sense. 21:40:09 Typically I tend to see 'libfoo' being Cxx libraries 21:40:16 stickster: I saw python-blah and blah-python. It wasn't clear which is the dominant convention. 21:40:17 C/C++, I mean, sorry 21:40:29 blah-python tends to be "Python support for library blah" 21:40:42 Whereas python-blah tends to be "Native Python library blah" 21:40:45 makes sense. 21:41:11 * stickster probably misused terms there, like "native" 21:41:11 sorry 21:41:22 curse of being a liberal arts weenie with no business coding ;-) 21:44:04 no one flinched so you're probably safe. :-) 21:44:44 at work i've been completely confused with this product people keep calling "resource optimization" 21:45:04 the application does not do anything even related to optimizing resources 21:45:32 * rossand shudders as resource optimization has meant sacking people for the past 11 years of his career. 21:46:17 i don't like that version of optimizing resources either... 21:48:08 yikes 21:48:41 zxiiro: rossand said he had rearranged the dir structure, not sure I have the latest now 21:48:53 zxiiro: do you want to pull from master? 21:48:58 My changes won't conflict. 21:49:09 That'll let others pull from playground and get it. 21:49:34 ok time, i guess this is a good excuss to figure out how to git merge :) 21:50:29 zxiiro: Now, I could be wrong... but my recollection is that if you 'git pull' it does a fetch and a merge together, and unless something *really* wacky has occurred in between branching, it just works 21:51:14 oh wow really? 21:51:26 stickster: that's my understanding as well 21:51:52 stickster: git pull --rebase 21:51:54 I've heard many good things about git's ability to figure out merges automagically. I haven't yet tried it in anger on something complex though. 21:52:05 stickster: then it pulls and applies your patches on top 21:52:14 and you dont get lots of merge commits 21:52:17 makes it cleaner 21:52:18 dgilmore: Sure, pull --rebase is something I tend to do 21:52:36 But I usually would only do that if I know the changes in either the other branch or mine are pretty minor 21:52:44 http://help.github.com/forking/ 21:53:02 seems to have a section on working with upstream 21:54:06 stickster: I may be reading this wrote but it looks like python knows how to produce rpms, solaris packages, and more. See: http://docs.python.org/distutils/introduction.html#a-simple-example 21:54:22 rossand: well... to some extent 21:54:39 But their RPMs tend to be... "less than optimal" 21:54:40 s/wrote/wrong/ 21:55:37 Good to know. Do you know off hand a major example of what it does sub-optimally? 21:56:02 I think there are issues with (1) multilib, (2) FHS for example 22:09:43 i merged everything 22:10:17 my master and playground branch are merged too so they are exactly the same now 22:10:22 zxiiro: awesome 22:10:43 stable enough for a pull to master, or not yet? 22:11:26 zxiiro: sorry, have been debugging a kernel problem here with the firewire stuff... 22:11:31 reading the backlog now 22:12:15 rossand: you might as well pull to master, i can't say it's stable though but it "works for me" :D 22:13:52 zxiiro: will do... finding people to test and point out bugs is definitely doable. 22:14:47 alot of this code hasn't been thoroughly tested so i personally consider freeseer to be less stable than when i was still calling it kapture 22:16:17 http://wiki.github.com/fosslc/freeseer/use-cases <-- stickster 22:20:23 We were doing a roundup here on the phone... 22:20:52 i discovered an interesting bug just now 22:21:56 gst-launch-0.10 v4l2src ! queue ! videorate ! queue ! videoscale ! ffmpegcolorspace ! xvimagesink 22:22:09 use that commandline and record somewhere dark 22:22:16 the video will be incredibly slow 22:22:25 but in a bright room it's just fine 22:22:45 but if you do the simple gst-launch-0-10 v4l2src ! xvimagesrc 22:22:49 it works fine in a dark room 22:23:41 is the ability to record in a dark room important? 22:24:21 zxiiro: Well -- I suppose it might be 22:24:26 zxiiro: let me restate 22:24:36 zxiiro: Probably not *important*... but is it an interesting feature? sure 22:24:57 I think that enhancement is happening in the v4l2 device, right? 22:25:10 meaning, there's no 'enhancement' happening as a result of that GST pipeline 22:25:49 well the slowdown only happens when you use the GST videorate and videoscale components 22:26:09 if you do v4l2src directly to xvimagesink the video records just fine 22:26:10 zxiiro: yeah... 22:26:43 There are different scaling routines I think you can use 22:26:47 that's an aweseom bug :) 22:26:58 i don't understand why whether a room is well lit or not would have an impact on performance but that's really weird to me 22:27:42 zxiiro: try only one or the other? 22:27:47 like only video scale? 22:28:04 or only videorate? 22:28:29 oh it's the videorate that's the culprit 22:28:44 gst-launch-0.10 v4l2src ! queue ! videorate ! ffmpegcolorspace ! xvimagesink 22:29:13 do something like fps=7/1 22:29:16 :) 22:29:24 I bet that will work better 22:29:34 oh wait 22:29:55 videorate ! video/x-raw-rgb,framerate=7/1 22:30:00 gst-launch-0.10 v4l2src ! videorate ! ffmpegcolorspace ! xvimagesink 22:30:04 that is the culprit 22:30:11 it's using videorate with ffmpegcolorspace 22:30:13 yeah, did you try it as above? 22:30:15 if you use videorate alone it works 22:30:18 haha 22:30:48 zxiiro: yeah, that makes *total* sense 22:31:02 gst-launch-0.10 v4l2src ! videorate ! video/x-raw-rgb,framerate=7/1 ! ffmpegcolorspace ! xvimagesink 22:31:07 that works too 22:31:13 converting from raw to other mode... 22:31:33 zxiiro: what does that mean 'that works too'? does that cause problems? 22:32:00 videorate + framerate=7/1 + ffmpegcolorspace records a good video 22:32:20 videorate + ffmpegcolorspace does the slowdown 22:32:36 but the slowdown ONLY happens in a dark room 22:32:48 so if your recording with a camera in a well lit room there is no problems at all 22:33:13 so if we want to record in a dark room we have to lower the framerate i guess? 22:33:37 Hm 22:33:48 I wonder if there's a way to sample the data to determine that 22:34:19 i've also reproduced the slowdowns on 2 seperate webcams 22:34:57 herlo said something about transcoding black 22:35:10 That it was a heavier cost 22:36:52 here's the lowdown on the Epiphan device: it consists of a triple-A/D converter with a PLL. The PLL generates a dot clock from the hsync, which clocks the A/D converters. The other main chip is a USB microcontroller, which integrates an 8501 CPU (6510 in CMOS) with a USB interface. 22:36:59 stickster: no, not black per se 22:37:15 This just sucks in the digital data from the 3 A/Ds and dumps it onto the USB bus. 22:40:11 The USB microcontroller is booted from a 64k EEPROM in the device. The data rate must be pretty high, 1024x768x60 would be 240 MBps (though this device would only reach 1/6 of that because it would run at 10 fps) 22:40:35 freeseer: master Andrew Ross * 45e7be9 (1 files in 1 dirs): Update README to point to new site. Remove out dated instructions - http://bit.ly/c7UpKD 22:40:54 Sorry, 1/3rd because of interlacing. 22:42:20 The firmware in the EEPROM implements a proprietary ("Vendor defined") USB device and interface class. I suspect the 512-byte block isochronous endpoints are being used. 22:43:36 So right now we have a binary blob locked in the EEPROM on one end, communicating with a 2MB binary blob in the Linux device driver. dgilmore has built the driver from the wrapper source + binary blob as shipped by the vendor. 22:47:28 So we've gotten as far as we can without breaking the blobs. That could be done by unsoldering the EEPROM and reading it, then disassembling the 8501 code, and reading it. Or we could disassemble the blob. Or we could snoop the usb connection. 22:47:58 None of which can be completed in the next 24h, methinks. 22:50:25 ctyler: do you know if anyone got their hands on another vga capture device? 22:50:56 the proprietary blob from epiphan won't matter if the other devices work fine. 22:51:09 rossand: no 22:51:21 rossand: they did not have all the parts 22:51:52 dgilmore: ok. Which device(s) were you going for? 22:52:12 rossand: herlo was trying to get a scan converter and then an NTSC capture device, but failed find one locally 22:52:58 rossand: but we're going to be buying on online very soon :) 22:54:22 herlo: cool. I'll wait to see how it turns out. If it works out, I'll pick up a couple for zxiiro and I as well. 22:54:43 yeah, they are only like $80 total 22:54:53 there are actually two parts... 22:55:33 btw, one thing we have to start thinking about (ctyler brought this up) is the fact that we need to adjust the timing for video and audio sources that are not coming from the same place... 22:55:53 herlo: yeah. That's a pain. I was discussing that with zxiiro 22:56:21 we may want a calibration wizard as part of set up. 23:02:56 so zxiiro 23:03:07 dgilmore just pulled down the latest playground branch 23:03:19 and it no longer has the firewire stuff? 23:04:53 I noticed a couple of quirks during the merge. A trivial change to README got clobbered. I wonder if this was a victim as well? What's in master seems to match playground. 23:06:45 rossand: maybe go back and look at the diff between HEAD and 228798a134f836eac5ec29ae4abefb1e253dd43f 23:06:48 ?? 23:07:23 herlo: it doesn't? 23:07:30 let me double check 23:07:43 zxiiro: herlo knows a lot about git and may be able to help repair this 23:08:28 well, I can probably re-apply the fixes from the commit 23:08:38 my version of playground has it 23:08:42 zxiiro: http://nvie.com/archives/323 <-- read this and start living by it :) 23:08:43 what's 05ss5ng+ 23:08:48 what's missing? 23:09:10 zxiiro: is that a commit hash? 23:09:23 * herlo has no idea what you are talking about 23:09:24 but 23:09:24 no i accidnetly hit the numkey on my laptop 23:09:30 ahh 23:09:37 it changes the right half of my keyboard into numbers 23:09:38 the dv stuff is missing 23:10:19 at least in the playground branch 23:10:59 hang on let me force a push 23:11:54 kk 23:12:28 try pulling now 23:12:53 kk 23:12:59 herlo: i see a picture, i like this link already :) 23:13:46 zxiiro: it's amazing 23:14:16 zxiiro: you should do it! 23:15:16 zxiiro: btw, the code is back it looks like. I'm digging in... 23:15:38 herlo: good to hear 23:16:04 we're testing the syncing now... 23:25:52 brb, food bekons 23:38:43 #info gst-launch dv1394src ! queue ! dvdemux ! queue ! dvdec ! oggmux name=mux ! filesink filename=test.ogg ! alsasrc device=plughw:0,0 ! audio/x-raw-int,rate=4000,channels=1,depth=8 ! queue ! audioconvert ! vorbisenc ! mux. 23:38:50 oops 02:38:36 zxiiro: you still around? 03:49:26 w00t! both cameras are working :) 03:56:47 zxiiro: why are there two sound queues? 05:03:14 herlo: Were you still asking about the 2 sound queues? 05:13:25 stickster: yeah 05:15:54 herlo: One queue feeds the muxer, the other feeds your normal audio sink device 05:16:16 herlo: Any chance you guys could push a new branch up to my gitweb? 05:16:35 stickster: thought so... 05:16:43 stickster: yeah, I can push up a branch here in a sec 05:16:44 hang on 05:16:50 what is the git url? 05:17:23 stickster: ^^ 05:17:54 ssh://fedorapeople.org/~pfrields/public_git/freeseer.git 05:18:01 oops, herlo ^^ :-) 05:18:29 k 05:23:16 * stickster wants to help with code... 05:23:33 Wow, those people have that crying baby again down the hall 05:23:43 *someone* needs to discover the magic of whiskey 05:23:44 stickster: there's a new playground branch 05:23:49 herlo: woowoo! 05:23:50 stickster: lol 05:24:40 stickster: I'm coming down to the room for a bit, since I will need to crash soon... 05:26:26 #endmeeting