[matroska-devel] Re: How UCI and Matroska could interact
Paul at msn.com
Thu Jan 23 09:34:04 CET 2003
While talking with Gldm, something has become very clear in my mind. For a
truly universal multimedia API that can handle all types of situations,
there is one thing that needs to be done.
For flexible multimedia, there are three things that you need. The
application, this includes players and editors. The codec. And the
container. So, respectively there are three API's. The application API, the
codec API, and the container API. These are the three corners to the API.
For a flexible universal API, all three API's need to have 2 way
communication. This means that they can all accept information, and all
request information. Preferably, they should all have access to the same
set of instructions, though they most certainly wouldn't use all of them.
Some examples: The codec wants to request a specific frame during playback
for its own buffering scheme. The container wants to request the "codec
config data" from the encoding app. The codec wants to obtain some frames
forwards/backwards during encoding for its encoding scheme. A menu codec
changes the tracks and moves to timecodes on the fly. The encoder requests
'private codec data' from the container, or writes its own to the container.
This is by no means a complete or likely list, but there are many scenarios
that I cannot think of at the moment.
More information about the Matroska-devel