The VAAPI for GPU accelered video decoding on Linux is really interesting. I don't know enough about video to understand how low-level it is from the MPEG2 exemple on their web site: does it have to be a codec already supported by your video card as I understand, or can you code new ones with existing building blocks?