freeseer
LOGS
19:41:30 <mchua> #startmeeting
19:41:30 <zodbot> 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 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
19:41:35 <mchua> #action mchua make sure logs get stitched together from the zodbot hiccup
19:42:21 <mchua> #chair loupgaroublond ctyler jds2001 spevack herlo dgilmore stickster ke4qqq inode0 quaid
19:42:22 <zodbot> Current chairs: ctyler dgilmore herlo inode0 jds2001 ke4qqq loupgaroublond mchua quaid spevack stickster
19:43:14 <herlo> mchua: thanks
19:43:34 <herlo> 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 <zxiiro> dia
19:44:17 <zxiiro> i can send you the .dia file
19:44:28 <herlo> zxiiro: yeah, herlo@fedoraproject.org
19:45:59 <herlo> 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 <herlo> zxiiro: per chance, do you have a simple command line for a usb device in and out??
19:47:02 <herlo> if not, I can probably figure it out
19:47:11 <zxiiro> herlo:  no i don't
19:47:53 <zxiiro> i can make commandline equivalents of the code, which part do you need specifically?
19:48:54 <rossand> zxiiro/herlo: feel like committing the dia diagram it into github?
19:48:56 <zxiiro> 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 <herlo> zxiiro: cool
19:51:00 <herlo> rossand: I think that's appropriate in a docs dir
19:51:56 <rossand> herlo: good idea. I'll create src, docs and push to master.
19:52:10 <rossand> The wiki was another option, but it's not as good IMHO
19:52:12 <herlo> rossand: sweet
19:55:50 <dgilmore> zxiiro: http://blog.abourget.net/2009/6/14/gstreamer-rtp-and-live-streaming
19:56:01 <dgilmore> that has some code that pulls from firewire
19:58:19 <zxiiro> dgilmore: thanks i'll take a look
20:20:00 <herlo> 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 <herlo> here's one that works!
20:20:24 <herlo> you can put the rate and scaling in the queue
20:20:49 <herlo> we can actually queue up outputs at different rates...
20:22:49 <zxiiro> herlo: i'll see about adding that to the code
20:24:06 <zxiiro> just trying to think where we'd fit that in
20:24:11 <zxiiro> to the diagram
20:27:50 <herlo> zxiiro: I'll be diagraming in a bit...
20:40:32 <zxiiro> how does ! video/x-raw-rgb,width=720,height=480 translate to pygst code?
20:40:42 <zxiiro> i can't make that with element_factory
20:41:12 <dgilmore> capsfilter = gst.element_factory_make('capsfilter')
20:41:13 <dgilmore> capsfilter.set_property('caps', gst.caps_from_string('video/x-raw-yuv, width=320, height=240'))
20:41:47 <dgilmore> zxiiro: there is an example of it in the post i pointed you at earlier
20:42:10 <zxiiro> dgilmore: ok so then i just like videorate to capsfilter to videoscale to another capsfilter and so on
20:42:19 <zxiiro> s/like/link
20:42:35 <dgilmore> zxiiro: i believe so
20:42:46 <dgilmore> im new to python gstreamer also
20:42:53 <zxiiro> ok i think i can do that
20:43:11 <zxiiro> i'm gonna grab a bit to eat first then i'll be back to try it
20:47:29 <GitHub10> freeseer: master Andrew Ross * 4072c97 (0 files in 0 dirs): added docs, pkg directory - http://bit.ly/cVCJ1D
20:49:55 <rossand> Looks like the irc plugin is working ;-)
20:55:11 <stickster> w00t
21:13:54 <stickster> rossand: zxiiro: I'm available to help out now in any way I can
21:16:23 <rossand> 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 <rossand> I think zxiiro has issue 9 on the go as well. zxiiro?
21:17:11 * stickster will take issue 1
21:17:21 <rossand> stickster: perfect. if you pulled the code earlier, please refresh as I shifted the directory structure about an hour ago.
21:17:50 <rossand> 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 <stickster> rossand: I have the stuff that's in zxiiro/playground, and I also have a branch for freeseer/master.
21:18:24 <stickster> rossand: Which should I be looking at for packaging?
21:19:07 <rossand> 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 <stickster> rossand: The Fedora Python guys know quite a bit about this
21:22:09 <stickster> 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 <rossand> stickster: off I go, be right back
21:32:31 <rossand> FYI http://docs.python.org/distutils/
21:33:08 * rossand is reading. This will affect how we deliver the apis
21:35:53 <zxiiro> 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 <zxiiro> herlo: so the updated diagram should be [vidsrc] - [ffmpegcolorspace] - [queue] - [videorate] - [queue] - [videoscale] - [vidtee]
21:38:46 <rossand> 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 <stickster> rossand: I agree completely
21:39:17 <rossand> stickster: cool.
21:39:35 <zxiiro> rossand, stickster: works for me
21:39:45 <stickster> We'd probably use 'python-freeseer' as the package name
21:39:57 <rossand> If this is modular, it could grow quite a bit and a component based approach from the start makes sense.
21:40:09 <stickster> Typically I tend to see 'libfoo' being Cxx libraries
21:40:16 <rossand> stickster: I saw python-blah and blah-python. It wasn't clear which is the dominant convention.
21:40:17 <stickster> C/C++, I mean, sorry
21:40:29 <stickster> blah-python tends to be "Python support for library blah"
21:40:42 <stickster> Whereas python-blah tends to be "Native Python library blah"
21:40:45 <rossand> makes sense.
21:41:11 * stickster probably misused terms there, like "native"
21:41:11 <stickster> sorry
21:41:22 <stickster> curse of being a liberal arts weenie with no business coding ;-)
21:44:04 <rossand> no one flinched so you're probably safe. :-)
21:44:44 <zxiiro> at work i've been completely confused with this product people keep calling "resource optimization"
21:45:04 <zxiiro> 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 <zxiiro> i don't like that version of optimizing resources either...
21:48:08 <stickster> yikes
21:48:41 <stickster> zxiiro: rossand said he had rearranged the dir structure, not sure I have the latest now
21:48:53 <rossand> zxiiro: do you want to pull from master?
21:48:58 <rossand> My changes won't conflict.
21:49:09 <rossand> That'll let others pull from playground and get it.
21:49:34 <zxiiro> ok time, i guess this is a good excuss to figure out how to git merge :)
21:50:29 <stickster> 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 <zxiiro> oh wow really?
21:51:26 <rossand> stickster: that's my understanding as well
21:51:52 <dgilmore> stickster: git pull --rebase
21:51:54 <rossand> 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 <dgilmore> stickster: then it pulls and applies your patches on top
21:52:14 <dgilmore> and you dont get lots of merge commits
21:52:17 <dgilmore> makes it cleaner
21:52:18 <stickster> dgilmore: Sure, pull --rebase is something I tend to do
21:52:36 <stickster> 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 <zxiiro> http://help.github.com/forking/
21:53:02 <zxiiro> seems to have a section on working with upstream
21:54:06 <rossand> 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 <stickster> rossand: well... to some extent
21:54:39 <stickster> But their RPMs tend to be... "less than optimal"
21:54:40 <rossand> s/wrote/wrong/
21:55:37 <rossand> Good to know. Do you know off hand a major example of what it does sub-optimally?
21:56:02 <stickster> I think there are issues with (1) multilib, (2) FHS for example
22:09:43 <zxiiro> i merged everything
22:10:17 <zxiiro> my master and playground branch are merged too so they are exactly the same now
22:10:22 <rossand> zxiiro: awesome
22:10:43 <rossand> stable enough for a pull to master, or not yet?
22:11:26 <herlo> zxiiro: sorry, have been debugging a kernel problem here with the firewire stuff...
22:11:31 <herlo> reading the backlog now
22:12:15 <zxiiro> 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 <rossand> zxiiro: will do... finding people to test and point out bugs is definitely doable.
22:14:47 <zxiiro> 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 <herlo> http://wiki.github.com/fosslc/freeseer/use-cases <-- stickster
22:20:23 <stickster> We were doing a roundup here on the phone...
22:20:52 <zxiiro> i discovered an interesting bug just now
22:21:56 <zxiiro> gst-launch-0.10 v4l2src ! queue ! videorate ! queue ! videoscale ! ffmpegcolorspace ! xvimagesink
22:22:09 <zxiiro> use that commandline and record somewhere dark
22:22:16 <zxiiro> the video will be incredibly slow
22:22:25 <zxiiro> but in a bright room it's just fine
22:22:45 <zxiiro> but if you do the simple gst-launch-0-10 v4l2src ! xvimagesrc
22:22:49 <zxiiro> it works fine in a dark room
22:23:41 <zxiiro> is the ability to record in a dark room important?
22:24:21 <stickster> zxiiro: Well -- I suppose it might be
22:24:26 <stickster> zxiiro: let me restate
22:24:36 <stickster> zxiiro: Probably not *important*... but is it an interesting feature? sure
22:24:57 <stickster> I think that enhancement is happening in the v4l2 device, right?
22:25:10 <stickster> meaning, there's no 'enhancement' happening as a result of that GST pipeline
22:25:49 <zxiiro> well the slowdown only happens when you use the GST videorate and videoscale components
22:26:09 <zxiiro> if you do v4l2src directly to xvimagesink the video records just fine
22:26:10 <herlo> zxiiro: yeah...
22:26:43 <stickster> There are different scaling routines I think you can use
22:26:47 <herlo> that's an aweseom bug :)
22:26:58 <zxiiro> 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 <herlo> zxiiro: try only one or the other?
22:27:47 <herlo> like only video scale?
22:28:04 <herlo> or only videorate?
22:28:29 <zxiiro> oh it's the videorate that's the culprit
22:28:44 <zxiiro> gst-launch-0.10 v4l2src ! queue ! videorate ! ffmpegcolorspace ! xvimagesink
22:29:13 <herlo> do something like fps=7/1
22:29:16 <herlo> :)
22:29:24 <herlo> I bet that will work better
22:29:34 <zxiiro> oh wait
22:29:55 <herlo> videorate ! video/x-raw-rgb,framerate=7/1
22:30:00 <zxiiro> gst-launch-0.10 v4l2src ! videorate ! ffmpegcolorspace ! xvimagesink
22:30:04 <zxiiro> that is the culprit
22:30:11 <zxiiro> it's using videorate with ffmpegcolorspace
22:30:13 <herlo> yeah, did you try it as above?
22:30:15 <zxiiro> if you use videorate alone it works
22:30:18 <zxiiro> haha
22:30:48 <herlo> zxiiro: yeah, that makes *total* sense
22:31:02 <zxiiro> gst-launch-0.10 v4l2src ! videorate ! video/x-raw-rgb,framerate=7/1 ! ffmpegcolorspace ! xvimagesink
22:31:07 <zxiiro> that works too
22:31:13 <herlo> converting from raw to other mode...
22:31:33 <herlo> zxiiro: what does that mean 'that works too'?  does that cause problems?
22:32:00 <zxiiro> videorate + framerate=7/1 + ffmpegcolorspace records a good video
22:32:20 <zxiiro> videorate + ffmpegcolorspace does the slowdown
22:32:36 <zxiiro> but the slowdown ONLY happens in a dark room
22:32:48 <zxiiro> so if your recording with a camera in a well lit room there is no problems at all
22:33:13 <zxiiro> so if we want to record in a dark room we have to lower the framerate i guess?
22:33:37 <stickster> Hm
22:33:48 <stickster> I wonder if there's a way to sample the data to determine that
22:34:19 <zxiiro> i've also reproduced the slowdowns on 2 seperate webcams
22:34:57 <stickster> herlo said something about transcoding black
22:35:10 <stickster> That it was a heavier cost
22:36:52 <ctyler> 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 <herlo> stickster: no, not black per se
22:37:15 <ctyler> This just sucks in the digital data from the 3 A/Ds and dumps it onto the USB bus.
22:40:11 <ctyler> 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 <GitHub143> 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 <ctyler> Sorry, 1/3rd because of interlacing.
22:42:20 <ctyler> 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 <ctyler> 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 <ctyler> 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 <ctyler> None of which can be completed in the next 24h, methinks.
22:50:25 <rossand> ctyler: do you know if anyone got their hands on another vga capture device?
22:50:56 <rossand> the proprietary blob from epiphan won't matter if the other devices work fine.
22:51:09 <dgilmore> rossand: no
22:51:21 <dgilmore> rossand: they did not have all the parts
22:51:52 <rossand> dgilmore: ok. Which device(s) were you going for?
22:52:12 <ctyler> rossand: herlo was trying to get a scan converter and then an NTSC capture device, but failed find one locally
22:52:58 <herlo> rossand: but we're going to be buying on online very soon :)
22:54:22 <rossand> 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 <herlo> yeah, they are only like $80 total
22:54:53 <herlo> there are actually two parts...
22:55:33 <herlo> 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 <rossand> herlo: yeah. That's a pain. I was discussing that with zxiiro
22:56:21 <rossand> we may want a calibration wizard as part of set up.
23:02:56 <herlo> so zxiiro
23:03:07 <herlo> dgilmore just pulled down the latest playground branch
23:03:19 <herlo> and it no longer has the firewire stuff?
23:04:53 <rossand> 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 <herlo> rossand: maybe go back and look at the diff between HEAD and 228798a134f836eac5ec29ae4abefb1e253dd43f
23:06:48 <herlo> ??
23:07:23 <zxiiro> herlo: it doesn't?
23:07:30 <zxiiro> let me double check
23:07:43 <stickster> zxiiro: herlo knows a lot about git and may be able to help repair this
23:08:28 <herlo> well, I can probably re-apply the fixes from the commit
23:08:38 <zxiiro> my version of playground has it
23:08:42 <herlo> zxiiro: http://nvie.com/archives/323 <-- read this and start living by it :)
23:08:43 <zxiiro> what's 05ss5ng+
23:08:48 <zxiiro> what's missing?
23:09:10 <herlo> zxiiro: is that a commit hash?
23:09:23 * herlo has no idea what you are talking about
23:09:24 <herlo> but
23:09:24 <zxiiro> no i accidnetly hit the numkey on my laptop
23:09:30 <herlo> ahh
23:09:37 <zxiiro> it changes the right half of my keyboard into numbers
23:09:38 <herlo> the dv stuff is missing
23:10:19 <herlo> at least in the playground branch
23:10:59 <zxiiro> hang on let me force a push
23:11:54 <herlo> kk
23:12:28 <zxiiro> try pulling now
23:12:53 <herlo> kk
23:12:59 <zxiiro> herlo: i see a picture, i like this link already :)
23:13:46 <herlo> zxiiro: it's amazing
23:14:16 <herlo> zxiiro: you should do it!
23:15:16 <herlo> zxiiro: btw, the code is back it looks like.  I'm digging in...
23:15:38 <zxiiro> herlo: good to hear
23:16:04 <herlo> we're testing the syncing now...
23:25:52 <rossand> brb, food bekons
23:38:43 <herlo> #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 <herlo> oops
02:38:36 <herlo> zxiiro: you still around?
03:49:26 <herlo> w00t! both cameras are working :)
03:56:47 <herlo> zxiiro: why are there two sound queues?
05:03:14 <stickster> herlo: Were you still asking about the 2 sound queues?
05:13:25 <herlo> stickster: yeah
05:15:54 <stickster> herlo: One queue feeds the muxer, the other feeds your normal audio sink device
05:16:16 <stickster> herlo: Any chance you guys could push a new branch up to my gitweb?
05:16:35 <herlo> stickster: thought so...
05:16:43 <herlo> stickster: yeah, I can push up a branch here in a sec
05:16:44 <herlo> hang on
05:16:50 <herlo> what is the git url?
05:17:23 <herlo> stickster: ^^
05:17:54 <stickster> ssh://fedorapeople.org/~pfrields/public_git/freeseer.git
05:18:01 <stickster> oops, herlo ^^ :-)
05:18:29 <herlo> k
05:23:16 * stickster wants to help with code...
05:23:33 <stickster> Wow, those people have that crying baby again down the hall
05:23:43 <stickster> *someone* needs to discover the magic of whiskey
05:23:44 <herlo> stickster: there's a new playground branch
05:23:49 <stickster> herlo: woowoo!
05:23:50 <herlo> stickster: lol
05:24:40 <herlo> stickster: I'm coming down to the room for a bit, since I will need to crash soon...
05:26:26 <mchua> #endmeeting