ALSA support in GNOME Volume Control: yes, it’s there! I finally pushed myself into installing the ultimate evil onto my computer ([*] yes, that’s ALSA), and (helped by Jan Schmidt) added some related stuff to the ALSA plugin to get GNOME Volume Control to recognize it correctly. Now everyone can sleep peacefully again, gone’s all regressions.

Did I mention that it looks horrible? See screenshot. Ohwell, we’re in UI freeze, I’ll rewrite the GNOME Volume Control in GNOME-2.8. :).

[*] ALSA’s indeed the ultimate evil [**].
– it hides POSIX using something hideous called alsalib.
– it actually forces the use of this hideous thing by not documenting it’s kernel API and putting kernel driver bug workarounds into alsalib.
– it does assert()s on errors (how about nicely reporting an error back to the application so it can notify the user? How about standard errno? See GNOME bugzilla #134007).
– It “transparently” does software conversion. This is cool, except that it shouldn’t be the default. Unfortunately, the default device enables software conversion (default = plughw:0), thereby stimulating lousy application development.
– I feel like trolling.

[**] Next to terrorism, of course… See below.

Serious things: what can I say about Madrid? Nothing, I guess… Can I cry? No; this is beyond anything I can grasp… I’m currently in New York and visited Ground Zero last week. Why do people do this?

Posted in General | Comments Off on

So, yesterday I finished autotoolification of ffmpeg. I sent Dave Schleef a patch (so he could do some assmbler magic to ffmpeg), and I’ve already integrated it (well, “sort of”…) in our new gst-ffmpeg module and am now watching Quicktime movies with my GStreamer installation.

So far for the good news. Bad news is that I didn’t commit it yet.

I’ve been thinking about reviving our ffmpeg demux wrapper, which could be used as a fallback if we don’t have one ourselves. That’d give us instant demuxing support for +/- 10 new exotic movie formats… Anyway, long-term…

Other stuff
I’m off for Evanescence (playing tonight at Roseland, NYC) in a few minutes, and am currently finishing up details here at the lab…

Posted in General | Comments Off on

Short “hi” from Manhattan, New York City! I arrived here Sunday with a broken laptop, no internet or email access and a taxi driver that didn’t speak english (oh my, the odds). I’ve been to Cornell university for a few days now, I’m getting accustomed to the city and generally, I think this city is excellent.

I hope to get a new laptop screen next week, have internet by then too, and get back to GStreamer development! For now, I’m off to the parties today and tomorrow.

Posted in General | Comments Off on

Today is my last day at work. I’ll have the next week off and after that, I’m hoping to live in Manhattan, New York City, to finish my studies (biomedical sciences) at the Weill Medical College (Cornell University) there. I can’t wait to go there. But I know I’ll leave a lot behind me for the next six months. I’m not expecting to have much time left for GNOME or GStreamer for the next six months… And I’ll definately miss my friends here. :-(. We watched the movie “Discovery of Heaven” together yesterday, sort of a “last goodbye” for me. I’m expecting to see them once or twice next week, but I’m already starting to get that feeling that I miss them, and I’m not even gone yet. Still makes you drop a tear…

On the bright side of things, I can say that during the last month (when I worked on GStreamer for work), a lot of good stuff happened. I mostly rewrote and finished GStreamer’s Plugin Writer’s Guide (which had been unfinished for almost 2 years now). I’ve done quite a lot of work in basic video encoding, recording and parsing (mostly DivX and MPEG) and I just had a lot of fun. GNOME media seems to work fine too, finally, so things are good. I’ll continue working for the company while in New York, but only a few hours per week.

Posted in General | Comments Off on

Apparently, Julien wants me to fix ffmpeg’s codec wrappers so we can release a new GStreamer version. My boss just asked me to first work on MPEG transmuxing (we have a strange issue here that basically comes down to Windows Media Player hanging for up to a minute on streaming video input before starting to play; all other players play the content just fine; however, we need to support WMP since about 90% of the world appears to use just that 🙁 ).

Hm…

Since the MPEG stuff can be done using ffmpeg, I’ll probably combine the two and work on both together. It’s nice to be able to spend time on GStreamer at your regular job. ;).

Posted in General | Comments Off on

Trying to integrate autotools (libtool, automake, autoconf) into ffmpeg. Oh my, I never imagined libraries could be this badly managed. Their configure script is more than a thousand lines of hand-written pure SH code. Their Makefiles are a sign of the devil’s existence. Parts of their code contain assembler that isn’t PIC-capable (PIC is required for shared libraries). And yet, they claim portability. Why, why, oh mother god, why did you allow us to create this pure evil?

Fortunately, my life is doing better: watched the faculty yesterday (BBC1, 0:00 AM), I’m trying to finish my graduation research report (promised to hand it in Tuesday) and I’ve got an appointment at the US consulate next Thursday to request a visum.

Posted in General | Comments Off on

I’m currently working on a profile interface thingy for GStreamer. Think of an automated, simple way of saying how a file should be encoded in Sound Juicer or (hey 😉 ) GStreamer Recorder.

Screenshot of the profile editor: see here.

The idea is very simple: each plugin has default profiles (e.g. ‘DVD’ for an MPEG encoder, ‘CD quality’ for vorbis, etc.), and the user can define custom profiles, too. Sound Juicer or GStreamer Recorder (or any encoding/transcoding app) will, in the default preferences window, just show the available profiles for a given element. For the application, it’s a simple list/get/set as API. Of course, the app can also access properties individually, but that’s more for power users… Be honest: is there any user that knows whether a bitrate of 250 (kbps) is a good quality for half-PAL MPEG-4 TV capture (will the CPU handle fine? Too high/low bitrate? Finetunings?).

Thomas has a simplified (but working 😉 ) version of this in Gnome-media for Gnome-2.6. I hope this can go in for Gnome-2.8.

Posted in General | Comments Off on

GStreamer:: The past few days, I’ve bene hacking on GStreamer Recorder more and more. It’s getting close to being in a releasable state. Yes, surely, I can record movies, what else is it useful for? ;). There’s small issues remaining that I want to fix before releasing a first version:

  • raw video/audio recording doesn’t work properly yet. Yes, the recording works, but ending the recording doesn’t (EOS events aren’t being propagated correctly).
  • Our AVI muxer can only record one movie. The pads aren’t disposed properly afterwards, which causes bad things if you re-use them to record a second movie. Bad.
  • Matroska and ASF probably have the same issue. Didn’t try to record a second movie with them yet. I guess I’m too scared for the havoc this will start. ;).

    Necessary screenshot will follow when I’ve actually fixed these last issues.

    Life: I finally got to see the third episode of Lord of the Rings yesterday night. Nice movie! D. and R., I hope you made it home safely (eek! I’m not taking care well, am I?).

    Work: so, we finally got around to updating all media servers. We’re running an internally rewritten version of opensource software (which we’re giving back to community). Some nice extra features in the software allow us to show on the webpage what’s currently being recorded. Nifty! :).

    Study: last day at my internship. After this, I can start preparing for New York (second part of my graduation process). Yay!

  • Posted in General | Comments Off on

    I just committed some fixes to GStreamer CVS, and now I’m finally starting to see how totally wrong some things still are to make it as perfect as it needs to be and how much work this will need to get done.

    Sure, we can play back a media file. That was hard. I’m talking about advanced stuff. Talk about loading 1000 pipelines at the same time and play fragments of each sequentially. Random codecs, random video/audio combinations, random frame sizes, random audio samplerates, anything mixed. Now get that playing (and seeking!) without a glitch, even during per-pipeline transitions. and that’s just the start, because I want scenes playing in a small subframe of another scene, transitions, and all the like. And all that in real-time. That’s what I want. Eh, we have a lot of work left.

    Anyway, we take small steps at a time, but we’re making progress. I’m currently trying to perfectize a graphical video capture tool, and am preparing a graphical transcoder. Think in terms of virtualdub or so. Simple yet effective. Premiere will come later…

    Andrew is doing real cool stuff, he’s helping out in making the professional-quality MPEG/DVD tools mpeg2enc and mplex available to GStreamer. These are the sort of toys that we need to get some true quality out of this thing. DivX and all is nice, but nothing can compare to DVDs. Even if it was only for the fact that my DVD player doesn’t play back DivX or alike. That’s why I’m doing this stuff, this is what I want to do in the end. This is why Mac OS X is so far beyond perfect! And we’ll get there too.

    Posted in General | Comments Off on