We are building a Visual Basic 5 application that requires text-over-video, for the purpose of presenting song lyrics and announcements with looped video backgrounds.
**The code we seek shall:**
* Utilize Visual Basic 5 Service Pack 3
* Utilize DirectX8, NOT DirectX9
* Must support Win98 as well as WinXP
* Display MPG and AVI files in a window
* Show videos both scaled to full-screen and in a borderless window, as selected by user
* May display any other suitable video files such as are supported by DirectX8
* Provide looping of video files, as selected by user
* Overlay anti-aliased text onto the moving video without any fringing
* Accept a standard picture box (PictureBox) image (StdPicture type) to overlay onto the moving video; the picturebox may contain rendered text or images, such as are drawn using common VB5 PictureBox methods
* The PictureBox should use a pre-defined color value as its transparent value ??" such as the VB5 “UseMaskColor?? property on various controls; the effect is to be similar to the “green screen?? effect used to define transparent regions through which the video stream will show
* Alpha-blending is not required, but may be used for purposes of antialiasing or handling the PictureBox transparency
* Must NOT require any third-party (i.e., non-Microsoft) plug-ins, DLLs, OCX, etc. - all code shall be native VB5 and utilize DirectX methods and/or API calls, such as [url removed, login to view]
* Dual monitor support is required, with selectable location of video window
* Video must be no slower than 30 frames per second on a 2Ghz Pentium 4 platform, when running full-screen 1024x768 with a corresponding 1024x768 picturebox overlay
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done, including liberal use of comments to explain the operation of the code.
2) Deliverables must be in ready-to-run condition.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
4) Sample program shall contain a frmMain form object with the controls described below (in whatever order is suitable). Actual form layout is not significant; the form is only intended to demonstrate the operation of the code.
* One "Choose File" button which opens a CommonDialog FileOpen dialog to select a video file
* One text label, which will display the filename of the selected video file
* One "Loop Video" checkbox which, when checked, will cause the video to loop indefinitely
* One "Full screen" checkbox which, when checked, will cause the video to be displayed full-screen on the selected monitor
* One Text field to enter up to 64 characters of basic text which will be displayed over the video file
* One "Select Monitor" dropdown list which, when selected, will cause the video window to appear on the selected monitor. Support is only required for two monitors, the Primary (1) and Secondary (2) monitors.
* One "Select Font" button which opens a CommonDialog Font dialog to select the font face/size/style/color used to render the text
* One "Make a Picture" button, which will randomly populate a PictureBox object with at least two suitable JPG or BMP images (at least 200x200 pixels) and at least two text strings
* One PictureBox object, on which the "Make A Picture" button code shall place various text and/or images
* One “Rearrange?? button, which will randomly reposition the text object and the PictureBox object over a different location on the video playback window, to demonstrate that the overlay is happening smoothly and dynamically
* One "Play" button to launch the video file with the overlay to the selected location
* One "Quit" button to close the sample program.
5) The following functionality is required:
When the "Play" button is clicked, the selected video file shall be loaded, and displayed either windowed or full-screen on the selected monitor, with the PictureBox overlay and text overlay included.
The code may utilize a second Form object as the target for the video. The video shall NOT be displayed on the primary frmMain object.
The code shall allow the user to click the "Make A Picture" button and have the new PictureBox contents appear on the current video stream without any interruption to the video playback.
The code shall allow the user to enter new text and have the updated information appear on the current video stream without any interruption to the video playback. This does not need to be done character-by-character ??" the coder may choose to include an “OK?? button next to the text entry field.
The code is NOT required to dynamically change the video loop setting or the monitor selection setting. These settings are only required to be made before the Play button is clicked.
If the video window is clicked or the key is pressed, or the frmMain Quit button is clicked, the application shall clean up all memory used, close down all DirectX objects, and exit.
6) It is understood that a significant quantity of this project's code may be derived directly or indirectly from other sources, including but not limited to the Microsoft DirectX8 SDK and other available sources. The only stipulation regarding code reuse is that the code be copyright-free and license-free, as described in (3) above.
Must run on both WinXP and Win98SE platforms
Win2K and WinME also desired
Visual Basic 5 Service Pack 3