Log in

View Full Version : Help neede : MCF parser and DirectShowFilter


ChristianHJW
12th May 2002, 07:40
Cheers,

as robux4 is currently on a very good way concerning the MCF muxer we are planning next stage for the parser.

Ingo's MediaXW libraries are probably a very good basis for such a parser, but he stated that the filesource reader in the basis library could be a good basis to build on. Its only for a single stream, but can be extended.

Here are the old MediaXW sources for MCF : http://forum.doom9.org/showthread.php?s=&threadid=25008 . Ingo was stating they are old and probably outdated, but could be a basis to build on. Perhaps i can motivate him to compile a new set of MCF specific code for us, because he is developing the MediaXW successor closed source now :( ...

For those hard core coders amongst you :
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mediaxw/Src/MediaXW/Base/FileSource.hpp
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mediaxw/Src/MediaXW/Base/FileSource.cpp
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mediaxw/Src/MediaXW/Base/FileReaderFilter.hpp
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mediaxw/Src/MediaXW/Base/FileReaderFilter.cpp

ingo's special reader filter code without M$ classes .... for better portability to other OSes !!

Edit :

Ingo setup a apache CVS reader on his server, so those interested can have a look at the newest version of his sources :

http://ingoralfblum.dyndns.org/cgi-bin/viewcvs/viewcvs.cgi/Source/MediaXW/Src/Base/ReaderFilter.cpp
http://ingoralfblum.dyndns.org/cgi-bin/viewcvs/viewcvs.cgi/Source/MediaXW/Src/Base/ReaderFilter.hpp

ChristianHJW
12th May 2002, 07:45
Copied and pasted from an IRC conversation with ingo and robux4 this morning ( on #mediaxw in this case ) :

<ChristianHJW> ingo ; i am here now : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/mediaxw/Src/MediaXW/Base/
<ChristianHJW> too much stuff in there
<ChristianHJW> i cant find the classes for parser
<Ingo> FileSource.hpp and FileSource.cpp
<ChristianHJW> thanks
<Ingo> They use the class SignalableThread for the dlivery thread.
<Ingo> This should become a reading thread and each output pin should have its own delivery thread.
<robUx4> did you have a look at the Reading API example from Tronic on dev-MCF ?
<robUx4> is the use of threads similar ?
<Ingo> The classes Pin, MemoryOutputPin and Filter are base classes. They replace the CPin, CMemOutputPin and CBaseFilter from the MS SDK.
<Ingo> Not yet.
<ChristianHJW> what is the 'FileReaderFilter' about ?
<Ingo> I saw something like plain C and my brain stopped working immediately.
<robUx4> I'll log all these info to a file for the person who will work on the DSF :)
<robUx4> Ingo: no that was pseudo code :)
<Ingo> The FileReaderFilter is a base class for filters implementing the IAsyncReader interface.
<Ingo> Such filters are for example
<Ingo> the "FileSource (Async.)" and "FileSource (URL)" from Microsoft.
<Ingo> For testing purposes I wrote a replacement for the first and this is the base class.
<robUx4> yours are "virtual" classes or they already parse something ?
<Ingo> It also serves as a base for my now obsolete RIFFCDXA reader filter. (Which is in the AVI package)
<Ingo> virtual
<Ingo> Just have a bunch of pure virtual methods.
<robUx4> nice
<ChristianHJW> http://forum.doom9.org/showthread.php?s=&threadid=25010
<ChristianHJW> let see if we get any reponse
<ChristianHJW> i am feeling soo stupid when i do post such things
<robUx4> unlike the other threads like that ;)
<ChristianHJW> because its pretty likely i am stating some rubbish
<Ingo> I think I'll set up viewcvs here.
<ChristianHJW> great idea
<robUx4> I hope to have the demuxing working today/night

robUx4
12th May 2002, 12:30
Yeah, i'm really close to have the demuxer working (audio for the moment, but adding video, subtitles, etc is very easy when this part is done).

We really need someone who knows C++ and Directshow now !

:confused:

robUx4
13th May 2002, 15:05
That's done, the audio muxing/demuxing are working correctly.
Subtitle work for muxing only.
The rest (video, control, etc) should follow very quickly.

I might also create a simple application before to convert many audio formats to/from MCF.

spyder
13th May 2002, 23:59
I have started working on a MCF "test implementation" in Java in my spare time. First of all let me say that I am in no way releasing this until the MCF spec is finished and I know the spec is not complete. With that said, I have almost completely finished the necessary classes to read the Headers and I will begin on reading blocks as soon as I am sure that the header stuff is stable.

@robUx4: Are there any MCF files that have been created with libmcf I could use for testing? Also what is the planned standard way to mux MP3 into an MCF stream(if there is one yet)?

robUx4
14th May 2002, 08:42
I could send you the test files I've generated (raw audio + face subtitle).

Also you can go ahead with the cluster/block reading/writing. This part is freezed for now (as we haven't found more needed information to add there).

Finally, for the MP3 part, we need to discuss the codec header very soon. We'll have a meeting on #mcf about that. Hopefully tonight (GMT+1 or +2). So it would be great if you could join too :)

ChristianHJW
29th June 2002, 10:33
ftp://ftp.isi.edu/in-notes/rfc2361.txt

robux4 was posting this link in the MCF dev mailing list, its about recognition of codecs and WAVs ... he suggests we should use this for MCF. Any comments ?