From: Marco <M.Z...@fr...> - 2003-06-03 16:15:08
|
Hi, for my try to reduce common code in the demuxer I had to read a loit of demuxer code and got familar with the way the demuxer work. So that resulted in the idea to have a class function "probe" which gets a structure xine_probe_t struct xine_probe_s { uint8_t *buffer; int buffer_size; /* <=MAX_PREVIEW_SIZE */ char *mrl; uint32_t input_cap; }; and the content_detection_method and then tries to deduce if the demuxer is able to handle this input-stream. At the moment each demuxer (we have 40!!) creates an instance, and reads from the input-plugin. With my change only the demuxer loading function has to fill the buffer and hands the structure to every demuxer. I think with the every growing number of fileformats/demuxer xine supports this should speed up the detection process quite a bit. Because no every demuxer can guess on the first 4k Bytes if it is able to handle that stream (and to ease the conversion) the probe function should be optional. So if no probe function is present for a demuxer an instace is created with open_plugin. If nobody objects I will go on with this change. In a first rush I will extend demux_class_t, bump the demuxer API version and change some "easy" demuxer". cu Marco |