Present Perfect


Picture Gallery
Present Perfect

Time for a photo update

Filed under: Life,Pictures — Thomas @ 1:40 pm

1:40 pm

Finally managed to get all my pictures transfered, sorted and uploaded. So time for a quick runthrough for those that like to watch.

Here’s where you can play “Spot The Computer Geek”.
This is how Australians eat a cookie with their coffee. And this is what we make for you if you come over for tortilla wraps.

Here’s some pictures of our office, before there was furniture.

Whenever we can we have a great barbeque on the terrace. Here’s one for our friend Lotte returning for a short visit, and here’s one with people from work.

Last week we went out to a tango festival. Only, the tent where there was supposed to be tango dancing was empty, and they weren’t really playing tango music either. So we went out instead. Here’s Barcelona’s coast line by night. And this is how you’re supposed to get rid of furniture.


Xiph hacking

Filed under: Hacking — Thomas @ 8:57 pm

8:57 pm

I had volunteered at some point to go over the autotools setup for the Xiph stack. Finally took some time out to do so and I can now develop applications against an uninstalled svn HEAD stack of ogg, vorbis and theora.

Here are the patches. I mailed them on the list, hope they get accepted.

Ogg/Theora streaming

Filed under: Fluendo,GStreamer — Thomas @ 8:38 pm

8:38 pm

Work is progressing. Zaheer is joining in on the fun, he was able to stream from his DV camera using theora, and watch the stream on his Mac OSX machine.

Meanwhile, Wim has changed the muxer somewhat so it does a nicer job of doing live streaming by making the Ogg pages smaller. Johan is doing great work on the python classes and making sure they can launch from a nice config file, so that we can wrap up the code and hand it to Matthias for live testing soon.

Today I set up a relay server on a university machine using our code, and it works quite well.

From that server, you can check the jpeg-like stream with audio (you need Java for this), or if you’re brave and you have a player that supports Theora alpha3, try http://birgit.urgent.fm:8801, which is the relayed Ogg stream (with only Theora) from our server here.

For tonight, I turned on some crap music from the office’s broadcasting system and I left on the lights in case you want to see something. The view is the centre square in front of our office with the fountain, so don’t expect to see much after 10 PM CET. And of course, if it’s down or stuttering, all of that is still possible.

This stuff is fun to hack on. Started getting my toes slightly wet in the server python code as well today.


Filed under: Fluendo,GStreamer — Thomas @ 2:49 pm

2:49 pm

Oh yes.
Oh yes.

I shouldn’t be so excited, but I am. After Wim’s ogg muxing changes, Ogg/Theora+Vorbis streaming now works !

Here’s the server line:
gst-launch -v v4lsrc device=/dev/video0 ! video/x-raw-yuv,framerate=4.6875,width=320,height=240 ! theoraenc ! oggmux name=mux { filesrc location=/home/audio/albums/Elbow - Asleep In The Back/Elbow - Newborn.ogg ! oggdemux ! vorbisdec ! rawvorbisenc ! queue ! mux. } { mux. ! queue ! tcpserversink }

Here’s the client line:
gst-launch -v tcpclientsrc ! oggdemux name= mux ! { queue ! theoradec ! ffcolorspace ! ximagesink } { mux. ! queue ! vorbisdec ! audioconvert ! alsasink device=hw:0 }

Note that the client can connect to the stream whenever, and will get correct Ogg header pages.

And here’s the result of a second client writing directly to disk. Can someone verify this works with theora alpha3 or higher please ???

Yes, I know the frames are jerky. My machine can barely keep up encoding and decoding at the same time, and the framerate on the webcam is low. There wouldn’t be any fun left if everything worked beautifully already.

Theora Streaming

Filed under: Fluendo,GStreamer — Thomas @ 12:43 am

12:43 am

Today I took some time to finish up the streamheader support for Vorbis and Theora. After some fiddling I was able to do live streaming of both using the GStreamer Data Protocol. (Since Vorbis and Theora are unpacketized formats, just sending them over TCP loses the framing information which makes it undecodable. So you need at least a basic packetizing protocol). So a server was reading an Ogg/Vorbis file from disk, marking the header buffers as streamheader and part of caps, and the client was able to pick in on the stream at any point.

Wim plugged a bunch of memleaks in the tcp code I wrote (I still can’t get valgrind to work well on my gst-launch lines). With that, the server runs a bit more stably. Still not quite there though; checking just now shows that it’s torn into 25% of memory use after 6 hours. But hunting leaks seems to be fun at the moment. Especially if most of them are in my code.

Using Python for the server code seems to work well for Johan but it makes it slightly harder to debug. We’re left trying to figure out where the memory is leaking by running non-gst stuff from Python and vice versa.

Anyways, if Wim adds the buffer marking code to the ogg muxer tomorrow, then we can start doing Ogg/Theora streaming for real.

Now need to set up a frontend relay for the streams so we can post the link without hammering our download speeds.

Here’s some harmless fun with the GStreamer tcp elements. Nothing special, just ten “tcpclientsrc protocol=gdp ! ffcolorspace ! ximagesink” gst-launch lines against one “v4lsrc device=/dev/video0 ! video/x-raw-yuv ! tcpserversink protocol=gdp” gst-launch line, and everything taking less than 15% CPU on my laptop.

« Previous PageNext Page »