Tiny C code bests seven-line DVD decoder
Smaller, way faster
Coder Charles M Hannum has created the smallest program capable of decoding a Content Scrambling System (CSS) DVD file, beating last week's seven-line Perl shell script 442 bytes to 472 (excluding newline bytes).
Hannum's C program, called efdtt, is no slouch, either. The programmer claims it can "descramble in excess of 21.5MBps" - faster than the DVD spec. allows for. The speed comes "without even particularly trying to optimise the I/O. This makes it pretty insignificant compared to the rest of the decoding process" = in other words, it's quick enough not to impede the MPEG 2 decode operation which turns the data into a moving image.
Apparently, the latter may be a problem with qrpff, the Perl CSS descrambler written by Keith Winstein and Marc Horowitz, and posted on Carnegie Mellon University professor David Touretzky's DSS Descrambler Gallery Web site. Winstein and Horowitz' code was capable of supporting realtime decode and playback, but we're told the output was occasionally jerky.
Hannum's code should allow smooth playback.
Both scripts do what the controversial DVD-on-Linux utility DeCSS does - and demonstrate how simple CSS, the DVD standard's copyright protection mechanism, is to decode. The Motion Picture Association of America has been pretty successful in repressing the distribution of DeCSS, viewing it as a threat to movie industry copyright - and movie industry profits.
"So what's the MPAA gonna do now?" Touretzky asks. "This code is small enough to put on a cocktail napkin. Commit to memory. Knit into a scarf. Whatever. It cannot be suppressed." ®