= Media Architecture notes = At some point down the road Moonlight|3D will have to be able to read and write audio and video files as part of its processing. Therefore, a basic media architecture needs to be established. == Design Notes == * Need Demultiplexer and Decoder classes, the latter being capable of being fed arbitrarily sized chunks of data * Need Encoders and Multiplexers, the latter getting fed arbitrarily sized chunks of data from the former * Require support for seeking in streams for which decoding is set up * If possible, make no assumptions on how much data a decoder or encoder needs to produce the next bit of output (avoid one frame in, one frame out and other design errors) == Existing Resources == (extend this list whenever something new is discovered) * Open Source decoders from fluendo * partial Java-implementation for Matroska based formats: http://svn.matroska.org/svn/matroska/trunk/JEBML/ * ffmpeg: C sourcecode for many container formats and codecs, would need porting