[matroska-devel] Re: more questions about libmatroska & CVS
steve.lhomme at free.fr
Sat Jan 25 17:12:14 CET 2003
Moritz Bunkus wrote:
> What I call stream handling is reading from files, downloading from
> URLs, supporting protocols like HTTP, RTSP and many more, reading from
> a MODE2 CD etc. So far I've only found two functions in the C api
> (src/api/libmatroska.h) that seem to 'open' something:
> matroska_open_stream_file and matroska_open_url. Unfortunately I won't
> be able to use that with e.g. mplayer at all - mplayer itself does all
> I/O handling (including reading from files/devices/network), and the
> demultiplexers only handle the data given to them by the stream layer.
Well, the C API is the one from the old libmcf. It is currently not
"connected" to the matroska elements. But that API shouldn't need much
change (if any).
At the C++ level there definitely is classes to override for each IO
system needed (HD caching, network, etc). I'm not sure that at the C
level there is something similar. It would probably be through a FILE
pointer, maybe it can be done another way. If you have any idea on
improving the C API (hopefully mapping the necessary structures to a C++
class that use IOCallback), feel free to submit that code.
> Please note that I don't have much insight into all the matroska code
> yet as I'm rather new to it. What I have to do is use the C api (as
> mplayer won't accept C++ code inside its source, but I can link against
> the libmatroska) and a method similar to libogg - it just receives the
> data from the application but does not handle files itself.
In what form would that be ? If that's general enough it should be easy
to use it in the C API and map it to an internal C++ class (all elements
read/write is done through an IOCallback class).
More information about the Matroska-devel