ivtv docs in progress

Believe it or not, I love writing documentation. I dunno why. One thing I enjoy about it is taking programs that have lots of options and breaking it down into clear and concise noob-friendly wording. The main reason for that is I remember all too well what it’s like being a beginner, and just not understanding what documentation is trying to tell you when it throws out all these references that you should have apparently already known about.
Once upon a time, I was really active on the Gentoo wiki. Then I became a staffer, and then a developer, and I shifted to working on the tree instead. I still miss just writing docs, though.

Anyway, I’ve been kinda half-heartedly wanting to write a quick doc for IVTV for a while now. For me though, it seems pretty simple: pick the right branch, load everything as modules, and emerge the ebuild and yer done. I figure some Gentoo-specific docs can’t hurt, though, so I went ahead and started on some tonight. I haven’t gotten really far just yet, because I’m still in the “gosh, this is so easy” stage that I can’t really come up with some content.

So, if anyone has any suggestions or ideas of what should go in this thing, lemme know. Here’s my half-written draft so far.

And for the record, if there’s any Gentoo multimedia docs you think we need, lemme know that as well.

ivtv modules

Just a quick note — if you are using media-tv/ivtv, be sure to load your I2C and Video4Linux drivers as modules in the kernel, or they will most likely not work. I’ve known about that for a long time, so I assumed it was common knowledge, but I see reports of people not doing that and running into problems. Sorry about that. I added a warning in the 1.0.x ebuilds of IVTV. :)

Also, ivtv-1.0.2 is in the tree now, for kernels >= Here’s the tiny Changelog.

one htpc, coming right up

So, how long does it take to build an HTPC with Gentoo, from scratch? How about, Gentoo + LVM2 + vesafb + bootsplash + nvidia + LIRC + mplayer + XvMC + IVTV + MythTV? All in all, about eight hours. I think that’s gotta be some sorta record.

Actually, just setting up vesafb plus splashutils took me about three hours. I haven’t played with that stuff in a very long time, and since I’m on amd64, I can’t use vesafb-tng. I did try uvesafb, but didn’t feel like experimenting to see if I could get bootsplash working as well, so just went with plain old vesafb at 800×600 instead. The end result is still really nice. From boot to MythTV’s main screen, the user never sees any text (BIOS is setup to display a VGA image on POST as well).

I mostly set it up again to see if I could do it again. I’ve already got my (original) mythbox in my bedroom, which is just a small Pentium4 with a small 250 GB IDE drive. This new one, though, this is my dual-core Athlon64 with 5 SATA harddrives, totalling 880 GB just for media files. I hadn’t played with LVM2 in a good long while either, and I was cautious since last time I didn’t have much luck. This time, reading the docs, it just clicked and made sense. The thing that always confused me was how the partitioning worked. Once you wrap your brain around the concepts, it starts to work.

I’m also running the latest MythTV that is 0.20, which needs to go real stable here anyway. I’m using 2.6.22 kernel and the 1.0.1 of IVTV which is supposed to have a lotta nice fixes. I’m just glad to see Hans finally got it into the kernel. Good work, man. :) I love the new new MythTV themes in mythtv-themes-extra, too. I’m using a nice widescreen one and it’s gorgeous.

Anyway, I’ve been thinking about it for a while on and off, but I think that this time I’m going to actually write up a good Gentoo doc on how to actually do all the stuff in detail. I still can’t believe I set it all up so fast. I’ll have to post some pictures. :)


The 2.6.22 linux kernel was released today, and the exciting part is that IVTV is now included in the mainstream code. :)

The option is listed as “Conexant cx23416/cx23415 MPEG encoder/decoder support” under the normal Video for Linux menu.

What does this mean for the IVTV ebuilds? I have no idea. The only thing I do know is that you are still going to need the firmware, but that’s about it.

multimedia bumpage

I don’t usually like talking about writing about stuff that I’m just bumping in the tree, but since there’s been a lot of it lately, I figure if I roll it all into one post it might be somewhat interesting.

I’ve been focusing mostly on just multimedia applications lately, since other Gentoo stuff has been annoying me, and this is the most fun to work on. Last week I went through the sound bugs and cleaned up some crufty old bugs that were simple fixes to ebuilds. I think that’s actually the first time I’ve fixed almost anything in the sound herd since I joined oh so long ago. There’s still a lot of stuff to be done there, but from a quick glance most of it seems pretty trivial. There’s a lot of requests for version bumps in there, which I’ll get around to sooner or later, usually depending on how tricky the ebuild is.

Here’s a helpful note to users filing bugs, btw. If you can attach a working ebuild, that helps a lot. I usually have to go in and tweak them anyway and fix errors, but most of the time they are just cosmetic in nature, or are missing a DEPEND flag or something. Even a little effort helps, though. And if you don’t know how to write ebuilds, learn! It’s not that hard for most of the packages that use a simple configure, make and make install. I recommend checking out the excellent devmanual for guidance on getting started.

Or, if you’re already good at writing ebuilds, try to find a proxy maintainer to put the ebuilds in the tree for you, while you do all the hard work (I really need to write more about that when I get some time). Or maybe get them into one of the Sunrise overlays. I’ve already dragged one user into the fray and put some of his multimedia applications in the tree. Proxy maintenance seems to work really well for me. I’m already doing it for a few applications. All I have to do is look over the ebuilds, fix them up, test the program and I’m done. The maintainer gets to do all the hard work like write the original ebuild and bug me when the version gets bumped.

Now that the wordpress security saga is finally over (it’s hard masked), I’ve been able to get back to my own ebuilds as well, too. Here’s some of the stuff that is new and I’m hoping people will check out and test.

IVTV released a new version, 0.10.1 which works across three different kernels this time (2.6.18 through 2.6.20). I upgraded my mythbox last weekend to the new kernel and version, and while it may be my imagination, I’ll swear that the picture is a little cleaner than before. The ebuilds just barely got unmasked because there was a bug in pre- kernels that would bork loading the firmware for certain devices. So if you are going to use a 2.6.20 kernel with IVTV, be sure to use either gentoo-sources-2.6.20-r1 (or higher) or vanilla-sources- Those are patched, so you should be good to go.

I’m thinking about masking the other, older IVTV ebuilds in a bit here, since technically they are all deprecated now by upstream because of this new release. I probably won’t remove them from the tree, though, because I’m all too familiar of the symptom of some funky version being the only one working on your hardware for some ungodly reason. Please do migrate and move onto the newer versions, though, since if any bugs come in on the older ones, I’m just going to start ignoring them.

In other IVTV news, the drivers are going to be in the mainline kernel starting with 2.6.22. I’m pretty excited about that too, since that means I’ll just have to maintain a set of userland tools after that. Speaking of which, 0.10.x have a few more than before, so be sure to check them out if you’re looking for some help. And please, for the love, read the README if you have any questions about the package. It contains lots of useful information.

Something else I bumped the other day was dvd::rip. It seems to have stabled up pretty good (I haven’t heard any complaints). I was a bit worried at first about removing the 0.5.x series from the tree (the old GTK+ v1 releases), but things seem to be okay. I don’t even remember what’s new in this version of dvd::rip. I remember glancing at the changelog, but nothing exciting is coming to mind, so who knows.

I also did a CVS snapshot of transcode, which is in the tree now. Their last point release was November of 2005 (eek!) and their website recommends running the CVS version instead. A lot of multimedia applications tend to do that it seems like (mythtv, mplayer being some other examples), and while it usually works just fine (except for myth of course, where upgrading is like russian roullette … sorry, I just can’t resist ripping on Myth ;) ) it makes it difficult for users that don’t want to or don’t know how to get CVS snapshots.

Transcode actually has two CVS branches as well, one for stable bugfixes, which would be the 1.0.3 release, and one for the next development release of 1.1.0. I put a snapshot of 1.0.3 in the tree, and I’ll get around to doing one for 1.1.0 later on. In the meantime, I’ve created a forum post if you find any issues with the snapshot, I’ll see what I can do.

I should mention that I have a secret love affair with transcode. I know I fawn over MPlayer and MEncoder constantly, but I love using transcode, especially for DVD encoding. The controls are a bit different, and may seem somewhat unorganized at first glance, but once you read through the entire man page, it’s not bad at all. It’s a great little encoding app, and I’ll put a cap on my fanboyism and just suggest giving it a try in your free time. I tested it with the latest dvd::rip and it seemed just fine, so go ahead and be daring and do the same.

One thing I did notice that was new in this release was that if you started transcode and canceled the process (ctl-c), it would kill the pipes as well. That’s actually very nice, since it was somewhat annoying before having to stop up to four processes just to kill transcode completely.

Other stuff that’s new, there’s a new version of OGMRip in the tree. I really like this slim frontend to MEncoder. The things I like the most is that it handles subtitles for me (I’m still really unclear on how those work, I need to do some manual encoding some time), wraps the output straight into Matroska, and of course is GTK+. :) I would say it’s been pretty stable for a good while now, so if you’re looking for a good ripper, I would recommend that one as well. So there you go, two recommendations for two rippers that use different backends (transcode and mencoder). There are more of course, but if you want the simplification of a GUI, you’ve got a few good options.

Speaking of subtitles, I somehow got roped into maintaining all the subtitle programs in the portage tree some time ago. I bumped gnome-subtitles again this week (thanks again to proxy maintenance), and there’s another ebuild in bugzilla for a new one that I’ll be looking at sometime soon. And I must in good conscience mention gaupol, your third option for subtitlely goodness.

I also got roped into helping out on ALSA now that Diego has left us. I’m still not sure how I got suckered into that one. I’m not making any claims to fixing things up nice and pretty, though. At the very least I hope to keep us on track to staying current with upstream and fixing some minor bugs. I’m still not convinced that I can be of any help on the team, but I’ll see what happens. Just don’t expect me to fix any major borkage. :)

Last but not least is mplayer. I finally got a new version of mplayer-bin in the tree, though that’s already old news. Thankfully the biggest complaint I’ve gotten so far is that I’ve ripped out AAC support. I’m actually glad for that, because it was a royal pain in the pooty pants getting that thing even working in the first place. As far as missing media libraries go, though, that is not not really my area of expertise. I’ll see what I can do about it sometime, but to be honest I’m not really in a huge hurry. I figure if you can play either the audio or video stream in the native mplayer / mencoder, then just separate the two and use mencoder-bin to do the other half. That’s poor reasoning, I know, but that’s why it’s not high on my list to fix right away. I should also mention that there’s a RealVideo stream I watch on a regular basis, half of which will only work in each player. So, I can sympathize. And yes, I do download it and then re-encode it with mplayer-bin just so I can watch it in mplayer.

I’ve also been working with Luca (lu_zero) on a new mplayer SVN snapshot. It’s coming along quite nicely, I’d say, and hopefully should be ready and in the tree real soon now.

That’s it for now, I guess there was more stuff to write about than I imagined. Sheesh. I hope the multimedia experience on Gentoo is working well for everyone. As I’ve said before, it was one of the main things that made me pick and stick with this distribution years ago, and I’m glad that I can finally get the chance to help out and give back at least a little bit.

As a final note, there really are a lot of bugs for sound, video and cdr stuff in the tree (well, not so much media-optical). They almost all register pretty much the same as far as importance goes to me, so if there’s something that’s been just nagging you for a while now, feel free to ping me on IRC (beandog on Freenode), or e-mail me (beandog at gentoo dot org) and I’ll see if there’s something I can’t help move along a bit. No promises, though. :)

mplayer pvr support

I just barely got pvr support working on my mplayer installation at home working … on my lunch break. :) Man, it is cool.

That’s a piccie of me having two mplayer windows open playing TV on both tuners on the Hauppauge PVR-500 with different channels. It’s kind of hard to see, I know.

To get it working, you have to do a few crazy things, to which even the most extreme of ricers might give a second thought. You’ve got to be running the 2.6.18 kernel headers along with a recent MPlayer dev snapshot, and the 0.8.0 branch of IVTV. All of them are in portage (and keyworded) except the first one, so I’ll leave it to the reader to guess how much they want to put their system in possible jeopardy just to watch television.

I haven’t had much time to play with it, but from reading the man page it comes with a few cool options, like setting the audio bitrate and the MPEG stream format. For instance, you can record straight to the DVD MPEG2 standard. Muwahahahahaha. >-D

I’ll post some more details once I get time. Right now, I’m just supah-stoked. Just think — one more mythtv-only option ripped out of the way. It feels glorious.