dressupgeekout / lunapurpura

Reimplementation of Purple Moon's games from the 1990s (WIP) - NOTE: ScummVM port in progress
https://dressupgeekout.github.io/lunapurpura/
BSD 2-Clause "Simplified" License
8 stars 1 forks source link

[Forest] Come up w/ a strategy re: playing the MOV files #36

Open dressupgeekout opened 4 years ago

dressupgeekout commented 4 years ago

The MOV files which ship with Secret Paths in the Forest (and perhaps Sea, too, but I don't have the game) come in several different formats. They all seem to be of super old Apple formats, ones that I used to see all the time when I was younger.

For example, here's how FFmpeg interprets GRDN.SHARE.MOV, Darnetta's intro story:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'GRDN.SHARE.MOV':
  Metadata:
    creation_time   : 1997-07-25T16:22:22.000000Z
  Duration: 00:00:33.47, start: 0.000000, bitrate: 514 kb/s
    Stream #0:0(eng): Video: smc (smc  / 0x20636D73), pal8, 640x480, 159 kb/s, 0.36 fps, 10 tbr, 600 tbn, 600 tbc (default)
    Metadata:
      creation_time   : 1997-07-25T16:22:22.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Graphics
    Stream #0:1(eng): Audio: pcm_s16be (twos / 0x736F7774), 22050 Hz, 1 channels, s16, 352 kb/s (default)
    Metadata:
      creation_time   : 1997-07-25T16:22:22.000000Z
      handler_name    : Apple Sound Media Handler

The goal of this issue is to identify the best way to get these movies playable within Luna Purpura, given the fact they're already decodeable. But that doesn't mean we necessarily want to link Luna Purpura against libavformat and libavcodec.

Tl;DR it's time to make a Big Decision™.

dressupgeekout commented 4 years ago

For what it's worth, libavformat/libavcodec can be configured to be fairly small. Configure away as much functionality as possible, except for what's needed in order to demux a QuickTime container and play these specific A/V formats. I'll need to go actually go through that exercise in order to determine how much complexity/bloat/etc. Luna Purpura would have to deal with, were we to finalize on a decision to use FFmpeg