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)