My experiments with open source, multimedia and other random stuff

Hacking A/V

#hackers-india is moving...

Monday, March 22, 2010 by Jai

Its been a long time coming, but the folks over at #hackers-india have finally decided that we deserve better as far as IRC experience is concerned. Consequently, we are "officially" moving to The reasons have been articulated quite well by our very own Bheekling over at his blog and I don't see a point in repeating that here. will remain alive for some time, albeit with a big fat warning in the /topic.
'Nuff said. See you on IRC.

Filed under having 0 comments  

Shaastra 2009 Hackfest

Thursday, October 8, 2009 by Jai

Note : This post has been long overdue, but was delayed primarily because of the lack of decent internet connectivity in the past week. Nevertheless, here it is... :)

As part of this year's Shaastra, the folks at IITM decided to include a Hackfest (a glorified version of last year's installment, if i have my facts correct), with the noble aim of getting students and enthusiasts started with code contributions to Open Source. At KStar's behest, I dropped in to do a track on FFmpeg which was IMO quite successful. I'll attempt to summarize the proceedings.

The "story" starts way before the hackfest days. I spent _a lot_ of time trying to come up with things students would even remotely find interesting. Sadly, we dont have any "Easy first bugs" or other such low hanging fruit (with the added constraint of the program schedule). Most bugs require a fairly decent amount of knowledge of format specs, multimedia concepts in general, audio/video coding theory etc. So fixing bugs was (mostly) out of the picture. Code cleanups and documentation, though important and useful, didnt seem like a good idea because I personally feel functional patches > cosmetics :)
So I finally settled on a simple and modular task of writing playback support for a format we dont support yet. Obviously, there were quite a few candidates, so I randomly selected Psygnosis YOP and HNM.

To start things off, there were a bunch of talks. I did one too (though I usually suck at these things). To my surprise, a lot of people in the hall that day actually knew about FFmpeg and some had actually used it too :)
Slides here

Moving on, Yadu and Noufal hacked on FFmpeg during the hackfest days. Day 1 mostly consisted of wading through the codebase and understanding the format and the other days were spent hacking together some patches. I'm quite happy to report that we did manage to get these patches posted as well :) Upvotes for you guys.

The other tracks were pretty successfull too. While Kstar tried to get dev builds of KDE ready, Kashyap and Prakash (KDE GSoC students for Kalzium and KStars, in that order) gave introductory talks and helped the participants get started with Qt and the KDE codebase.

Sid0 handled the Mozilla track impressively, to say the least ;) He managed to get in a decent coverage of JS _and_ got the participants started with writing stuff in Jetpack, the shiny new add-on writing API from Mozilla Labs.

Vamsi's Sugar hackfest went superbly well and from what I hear, Sugar got a long term bug wrangler/contributor :) This is probably one of the coolest things to come out of the hackfest, other than the usual slew of patches and bugfixes :)

Vimzard handled the GTK and GNOME sessions which I'm pretty sure turned out quite well (I couldnt be there because these were held in a separate lab).
(Its hard for me not to make a BloodNinja reference here, but I'll give it a pass..)

The hackfest organizers also managed to get in some improptu BoF sessions which were quite good too. The one on GSoC was quite well attended and was followed by similar discussions on version control systems, a brief rant on llvm (and parallels to gcc) and some more stuff I'm probably forgetting.

So overall, it was an awesome and productive 3 day nocturnal coding experience (though most of us arent strangers to the idea ;) ) Big ups to the Shaastra hackfest organizers, especially (and in no particular order) KStar, Kashyap Garimella, Vinay Hegde, Kashyap2 and all the fellow hackers who made the event a memorable one.

And yes, I dont usually blend FOSS with real life etc but I really did have a fun time. Just the very opportunity to put faces to IRC nicks makes it worth it. Infact, I just might change my mind and go to FOSS.IN :)

Pics courtesy Kstar here

Gotta go and listen to some awesome music I siphoned off sid0 a mile high ....

Filed under , having 0 comments  

Opensource WMA Pro decoder \o/

Thursday, September 3, 2009 by Jai

In awesome news, a native wmapro decoder was recently committed to FFmpeg SVN by Sascha.
And there was much rejoicing....

PS : Many thanks to all those who painstakingly RE'd different parts, especially Benjamin. As the tradition goes, this should trickle down to the multitude of applications using FFmpeg, so expect support for all those pesky WMA3 files in your favorite A/V player soon.

Scene Nostalgia

Thursday, July 9, 2009 by Jai

A big part of my childhood was spent dabbling around with the Demoscene, and still is to a certain extent ;). Other than the demos themselves, what really caught my attention was the music. For starters, demo soundtracks were usually tracked music (samples + patterns). Now tracking requires a great amount of skill because there are constraints on the number of samples, channels etc one can use. Given this, you'll definitely be amazed at what the scene musicians have been able to pull of even with as few as 4 tracks (Amiga MODs). Try for example 7th Dimension-Morphium/TRiP, which IMHO is a masterpiece (what with only 7 tracks). There are, of course, many more at The Mod Archive. Playback requires a module renderer and you can find one for your platform here.

Over the last 10 years, I have managed to build up a collection stuff I liked including independent prods, Eurochart recommendations etc and which I still listen to in addition to DemoVibes. As you might have realized by now, MOD playback won't work out of the box on a consumer PMP unless you use custom firmware like Rockbox. Not to mention other exotic use cases :)
Since I spend quite a lot of time on the FFmpeg project, which prides itself in being (sort of) the netcat of A/V tools, the obvious choice was a libavformat wrapper for libmodplug. And so here goes, the result of half an hour of hacking :)

My Github modplug branch

Since this is integrated into FFmpeg, you can pull off a bunch of things like transcoding, muxing with video streams, resampling, playback, streaming .......... you get the idea :)

Should be committed sometime in the future.

Later, have a GSoC project to work on ;)

[EDIT] Updated the repo url.

Filed under , having 0 comments  

The Book Of Wisdom - A/V coding for the masses

Saturday, June 6, 2009 by Jai

Its a well known fact that Open source projects tend to be heavily dependent on contributions from the community. Therefore, it becomes very important that people have access to high quality documentation to supplement their efforts. This is something which FFmpeg has been lacking in for quite some time. Code and associated doxygen markup is all we have in the way of documentation.
Another related problem is the "domain" itself. FFmpeg contributors are expected to know the basic (and sometimes advanced) concepts of A/V coding in addition to signal processing fundamentals and more importantly, how these are applied in practice.
Obviously I'm not the first person to notice this situation :) Infact, at LinuxTag 2008, Attila Kinali (fondly known as root@mphq), Mans Rullgard and Roberto Togni hacked up the framework for what is called The Book Of Wisdom (or BoW) with the aim of consolidating knowledge absolutely essential for multimedia hacking. For a better description of what we are trying to achieve, you can read Attila's announcement mail sent to the BoW list.
You can see what has happened since than by checking out the repo like so :

svn co svn://

I personally believe that the BoW, alongwith The Multimedia Wiki (generously sponsored by the formidable Mike Melanson) which is a compendium of sorts of multimedia formats, will evolve to be an excellent resource for future contributors. I have been toying with the idea of contributing a chapter or two, but that will have to wait till I have some time to spare.

Filed under having 0 comments  

XEmacs + Xft == Awesome

Sunday, May 24, 2009 by Jai

So I finally decided to give the XEmacs 21.5 beta branch a try, mostly because Eric Knauel and Mathias Neubauer's Xft patches had been finally merged into the beta branch along with lots of other stuff. You know what that means though, antialiased fonts :)

(Yes, I'm as shallow as the next geek you meet on the street and care about these things)

Filed under having 0 comments  

GSoC 09

Tuesday, May 19, 2009 by Jai

In the last "update" post, I neglected to mention that my application to FFmpeg was accepted this year as well. So this summer, I'll try and get a native JPEG2000 codec merged into FFmpeg. As of now there are no updates because I'm too lazy to start :)

Should be a fun summer though....

Filed under , having 0 comments