PS: I'll like to hear from you any ideas to be implemented in BASS_DSHOW
You got it....
1. Most importantly make it a true bass plugin so that videos can be opened and played with the same bass routines as all other audio files. We're currently using BassVideo, and for every single call (open, play, pause, setposition, getposition, etc..) we have to compensate for video by making separate routines for every single function. Basically concentrate on the making the audio work, and then simply add automatic routines to keep the video in synch (such as when tempo is changed). Once you truly integrate the audio into Bass, you won't ever have to worry about making any additional audio functions as they're all included with bass and its long list of plugins. The only bass effect that would affect the video would be changing the tempo because obviously you'd need to keep the video in synch).
2. Once it acts like a bass plugin, add other properties to enable 2 separate windows for video as most DJ/KJ apps need one on the main console and one on the secondary display for all to see
3. For each video (1 and 2), we'd need these properties
- VideoParentHandle (can be the handle of a form or a control on a form)
- DisplaySize (or have it autosize to its parent control)
- Stretch (when true stretch to fill parent and when false have it keep the original proportions but still fill the parent rectangle and blackout the sides or top and bottom depending on the videos original aspect ratio)
- VideoSynch (set to zero uses original synch. setting to negative numbers places video behind audio and positive values set video to be ahead of the audio). This is needed as some videos don't have the audio and video in perfect synch and allowing the end user to adjust this would be great. If the value could be in seconds that would be perfect (use single or double values allowing fractions of a second). No sense in making this property separate for each video as you'd want to do the same to both. If you truly separate the video from the audio this should be pretty easy at that point.
Planning ahead, you should first map out all the properties and methods you're going to have in the final product and even if you haven't got them all working, and at least send them to radio42 so he can get routines for Bass.Net written. That way, those of us in the .Net world can at least start playing with it as you're getting the bugs out of it. Its important not to change the calling methods because everytime you do, he needs to rewrite the Bass.Net to work with it and it creates quite a headache for us who have to then wait for his update as well. Once you get it working as a true bass plugin and add the properties I mentioned, it really shouldn't be an issue.
I'm sure people could list a hundred little nifty functions but these are the truly needed functions. If you can get these few basic functions to work perfectly, you could start charging for licensing this plugin and we'd be more than happy to pay it! AND all of us who were extremely let down by the BassVideo plugin would speak your praises for a long time to come
Make some money AND be our hero! ....no pressure