Monthly Archives: July 2006

CinemaNow DVDs

Sometime last week, IMDb’s Studio Briefing notified me that there was an online service for paying for officially licensed DVD images that can be burned (just once, officially): New Movie Download Service Launches Today. The service is CinemaNow.

So, I actually decided to boot into Windows XP and try it out. First, I had to find a movie that I actually wanted. Last Wednesday night, they had 101 titles to choose from, not too many that might be termed “mainstream”. I settled on In Good Company that I saw in the theater and somewhat enjoyed. The price was $3 less than what Amazon charges, as a basic value comparison.

I thought it best to go with all the recommended software. I bit the proverbial bullet and upgraded to the beta of Windows Media Player 11, which is the first I have heard of it. I wonder what new multimedia support challenges it will cause for Linux multimedia? The experience also requires a piece of 3rd party, .NET-based software called FluxDVD.

The whole thing goes fairly seemlessly and takes about 4 hours as promised:


CinemaNow FluxDVD app

The DVD plays in a standalone player as promised. I wonder if the DVD itself features the standard CSS encryption? Probably does but I haven’t checked empirically yet. The source file remains on my hard drive after download. It has a .fluxdvd extension, as seen in the screenshot, and contains some DRM-looking stuff at the front. Double-clicking launches the WMP 11 beta which performs some network activity before playing the file.

The disc image is 1.9 GB. I was wondering if the file was a Windows Media file that got converted to MPEG-2 on the fly by the above program (the “Convert and Burn” was my first clue). Colin Hill points out for me that the actual In Good Company DVD is a dual layer affair.

In other DRM news, I finally got a TV show off of iTunes. It was free. I was sorely disappointed, both with the content and the presentation. Content, because the Blade movie (at least the first one) was so awesome; but the pilot of the spinoff TV series is so bad that they have to give it away for free. Presentation, because the best that iTunes can do is display the 320-width window doublesized to 640. This doesn’t look so great on a 1280-width display. Is it really that tough to do full screen? I think not, especially if iTunes renders the video directly as YUV. I suspect that iTunes probably holds back the full screen feature for a premium version of the program, just as Apple’s QuickTime Player does.

New Filesystem Ideas

I really like FUSE, the filesystem in userspace that facilitated the creation of gcfuse. I think the killer app for FUSE is sshfs. It’s a minor miracle that if you have an SSH server running on a machine you can use sshfs to mount a filesystem from another machine. Authentication, encryption, all taken care of. None of that NFS or Samba configuration hassle.

I started wondering what else I might be able to use FUSE for. There is the small issue of Sega Dreamcast disc images. These games contain a lot of multimedia encoded with Sofdec’s middleware tools. For the most part, these discs use an ISO-9660-like filesystem that’s just a little different and doesn’t operate with Linux’s ISO-9660 module. Perhaps a FUSE/ISO-9660 module that can also handle the modified Dreamcast variant? Actually, I see that the big FUSE app directory lists an app appropriately named fuseiso which can load an ISO-9660 filesystem. It might be worth a look.

Thinking bigger, what about a FUSE module that mounts a DVD and presents it in some interesting manner? For starters, it will transparently decrypt the data. Then, present the contents of the DVD as a series of chapters or tracks or menu options. Since a DVD is not necessarily a strict hierarchy, perhaps organize the different viewing options in different directories. Or a /proc-like special filesystem that allows tinkering with the audio and subtitle options. It’s late and I’m just tossing out ideas here. Feel free to jump in.

gcfuse

I’m taking useless academic exercises to new heights. I wrote a utility called gcfuse that allows you to mount filesystems replicated, one way or another, from Nintendo GameCube DVDs.


Nintendo GameCube

What on earth for? I’ve heard tales of strange and wonderful FMV formats on those petite GameCube DVDs and I just had to know for myself. One game I’m playing right now is Metroid Prime, which has visuals that certainly appear to be pre-rendered multimedia files. Let’s find out:

$ gcfs metroidprime.gcm gcm/

$ ls gcm/
Audio         Metroid4.pak  NESemu.rel    SlideShow.PAK   metroid5.pak
AudioGrp.pak  Metroid6.pak  NESemuD.rel   TestAnim.Pak    opening.bnr
GGuiSys.pak   Metroid7.pak  NESemuP.rel   Tweaks.Pak
Metroid1.pak  Metroid8.pak  NoARAM.pak    Video
Metroid2.pak  MidiData.pak  SamGunFx.pak  client_pad.bin
Metroid3.pak  MiscData.pak  SamusGun.pak  default.dol

$ ls gcm/Video/
00_first_start.thp            08_GBA_fileselect.thp  attract9.thp
01_startloop.thp              AfterCredits.thp       creditBG.thp
[...]

Right away, a new multimedia format– THP. The GC-Linux project already has documentation about this MJPEG-like format. Samples, of course, are available for your inspection.

Assembly Bizarro

In lieu of recent Pickover puzzles (I have an impressive backlog of those to work on), VAG sent in this curious x86 ASM nugget:

    xchg    bh, bl
    mov     di, bx
    shr     di, 1
    shr     di, 1
    add     di, bx
    xchg    bh, bl
    add     di, dx

The hint that VAG gives is that it has something to do with a common multimedia task. Try to figure it out.