-----Original Message----- From: Boaz Harrosh [mailto:boaz@hishome.net] Sent: 02 December 2003 19:20 To: Robert Shearman Cc: twickline@skybest.com; wine-devel@winehq.org Subject: Re: Status : Multimedia section
Dear Robert I meant to drop you a note, ask what is the status. But you bit me to it.
I have 7 years experience in writing DS filters.
Nice! Hopefully I will be able to call on that experience in the future?
I am currently working on enhancing C++ on wine. I have ATL/WTL/MFC compiling and working under winelib. I have compiled COM controls generated by ATL VC++ wizards. I have some problems with the typelibs and so. But this is beside the subject. I would be happy to help in any way I can. I have lots of code that is not MS's. Also I have MS Direct Show Classes compiling and linking under Winelib (again some problems with the typelibs.)
I have my own copyrighted DirectShow video render that is implemented on top of DirectDraw. It uses the Overlay Surfaces YUV or RGB what ever is available/requested. It will also fall back to HW (HardWare) memory surfaces that are not overlay. I did not yet implement the Memory surfaces support. (didn't need to but it should be easy to add them).
Just for future reference, what are the pros/cons to using overlays rather than a plain off-screen surface?
I could release that code under wine I guess. If so I would also release the windows version of it. But before I do that, there are some issues to resolve (in order of importance):
- C++ code must be accepted - This is not an area that C is good
enough, and in any way I don't know C I am only good in C++
I'm afraid there is little chance of getting C++ code into Wine.
- What is the status of the DDraw lib. Will it support HW and Overlay
2D surfaces? (does it support HW BOB)
I don't think DDraw distinguishes between HW and software surfaces, but I may be wrong. YUV and overlays aren't supported.
- I am some what dependent on MS DirectShow Classes. (Derivation) I
have a lot, self implemented, but some of the basic stuff I used. I guess I could reimplement them but it will take time. Do you know what is the license issues with this code. I know that I have delivered them to many paying clients, and it was checked by the legal department. I all ways thought that, that code is: Do what you like no liability what so ever.
I haven't checked the license, but I'm pretty sure that it wouldn't be free enough to include in Wine. I have created base classes for the IPin, IMediaSeeking and IMemAllocator interfaces, but they are probably in no way compatible with the MS provided ones. From the docs it seems that MS used C++ virtual functions for the functions that you need to extend. I have done this using function pointers passed to the pin init function. It would probably be possible to convert some code over to C and the Wine system, but perhaps it would be easier if I just ask you questions if I have a problem. Would that be possible?
About the Graph manager: I'll think about it. I can certainly do it. But It is a big project. Do you know of a Company that would like to finance such a thing to some extent.
I don't know of any company, I'm afraid.
( condition 1 above applies C++ only).
Could you not just close your eyes and pretend? :)
I'll think about it any way. Maybe it is not as big as I think. (Usually projects are much bigger then I think they are)
You can take each function at a time and try to implement each function in terms of other functions (the documentation from the DirectX SDK is a big help here). If you think of it like that then it isn't a big task, just a number of small tasks :)
Rob