[MPlayer-dev-eng] quicktime dlls - another aproach

Arpi arpi at thot.banki.hu
Sun Nov 17 01:12:24 CET 2002


Hi,

Ok, let's see the main problem: quicktime.qts is actually a MacOS (classic)
emulation layer over win32, thus it requires a lot of win32 to initialize at
all. Maybe we can go faster if we just drop quicktime.qts, and emulate it:
if we can emulate win32 syscalls, we should be able to emulate macos syscalls
too :)

By some tracing of quicktime syscalls i've found that only a few core
functions of quicktime.qts are used by the codecs, and they are mostly memory
allocation/locking funcs.

But, besides the syscalls, we should either emulate teh component manager,
or ignore teh component layer at all.
The former may be tricky, and needs some rev.eng. work, but when done, all
codecs should work.
The later is also tricky, requires rev.eng. of the internal data struct
passed from component layer (comp. calls 0x0??) to the real codecs layer
(comp. calls 0x2??). In case of svq3 it looks easy:

hexdump of 0x43dca2e4 (108 bytes):
 40 50 C4 44 C0 03 00 00 60 BB 0B 08 00 00 00 00
 <--plane--> <-stride--> <--data--->
 00 00 00 00 00 00 00 00 00 00 00 00 3C A3 DC 43 ?
                                     ^^^^^^^^^^^ points to 20 bytes mem area
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 C6 04 00 00 00 02 00 00
                         <---len---> ^^^^???^^^^
 01 00 00 00 01 00 00 00 55 55 55 55
 ^^flag?^^^^ ^^flag?^^^^ 

i recall some structs being 108 bytes long, maybe it's a standard
component/codec structure.


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu



More information about the MPlayer-dev-eng mailing list