We are writing a Video Editing Software in .NET and we require a component that can be called from VB.NET and C# in Visual Studio .NET 2003 development environment. The software is being developed using Visual Studio .NET 2003 and uses DirectX 9.0, VB.NET, C#.NET.
Your job is to create a multi-threaded, .NET DLL that has the specified properties, methods and events - mostly video playing related. Since there is not enough space here to enter all the specification, they will be provided to you via email if you have interest in doing this project. Please email us and we will send the detailed specifications to you. We will only award the bid to you if you read and agree to the specifications.
This DLL will be called from our software. The DLL must be security aware.
1) Complete and fully-functional working component in compiled form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition with NO bugs, as follows:
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.
Project Description & Deliverables
Your job is to create a multi-threaded, .NET DLL that has the following properties, methods and events:
CreatePlayer() - This function creates a multi-media video player using DirectX technologies. This function should NOT use embedded Microsoft Media Player ActiveX control. Instead, it should create the player using DirectX 9.0 routines to create the player to play both audio and video. The player should support all popular audio and video file formats such as wmv, mov, mpeg, wma, wav, mp3 etc. The player should also support playing a group of jpeg, bmp or png images in a sequence like a PowerPoint slide show. We should be able to create multiple players each in their own separate thread and play more than one movie at the same time without conflicts. Audio from the active window should be heard and the audio from the inactive player should be muted automatically. As movies are made active or inactive the sound should switch as well.
Play() ??" This plays the video or slideshow
Stop() - This stops the video or slideshow
Pause()-This pauses the video or slideshow
Forward(frames/tracks) - This forwards the video or slideshow by the number of frames or tracks specified
Rewind() - This rewinds the video or slideshow by the number of frames or tracks specified
GoToEnd() ??" Jumps to the end of the video or slide show
GoToBegining() ??" Jumps to the beginning of the video or slide show
Loop(times) ??" Repeats the movie or slide show by the number of times specified. Loops infinitely if 0 is specified as loop parameter or if no parameter is specified
Mute(Action) ??" Mute the sound or un-mute the sound based on the parm value (0 or 1)
MakeMark() ??" Places a marker at any video position so that we return to that marker at a later stage. Returns the Marker identifier.
DeleteMark(ID) - Deletes the specified marker at any video position.
Effect(Type, Parms) : Starts or stops the video using the specified effect such as Fade-In, Fade-Out, Swipe, Zoom, Dissolve, Peel, Slide (in or out from any of the four directions) etc. When a video effect is specified, the video starts with that effect and stops with the same effect. This is extremely important. The parms parameter should specify additional parameters for the effect type. For example, if Fade-in is specified as the effect, the Parm value for that would probably be how fast the fade effect occurs. Or Slide is specified as the effect, the parm value would be the direction and speed of sliding.
Playlist() : This is a playlist of all the movies that will be played in a sequence one after the other. A play list can simply be a text file that specifies what movie to play with what starting effect or an XML document or even a list obtained from a database. A playlist provides a way for playing a set of movies in a sequence with smooth transitions. For example, if Movie-1 and movie-2 start with a fade-in effect, movie-1 should nicely fade to movie-2. We should be able to start or stop movies at any point of video play back with transition effects. For example, we should be able to fade-out to another movie in the middle of another movie either based on a marker or some other value such as timecode or track or something else. We should be able to mix and match movies and slide shows. We should be able to fade to a slide show if we wish.
Log() ??" Logs the movies that are played along with time of play, sequence of play etc to a text file.
Enable ??" Enables/Disables the video player
Visible ??" Hides/Unhides the video player
1) The functions embedded in the component must be callable from any .NET compliant programming language such as Visual [url removed, login to view], C# or others.
2) The component must support multi-threading using .NET technologies.
3) The component should NOT be resource intensive - hog cpu cyles or memory
4) The component must confirm to all standard .NET component development specifications and standards
5) The component should be security aware.
6) The component should run under ALL versions of Windows 2000, Windows 2003 and Windows XP.
7) If the component has creatable objects, they must be created in their own address space, yet marshall data appropriately between the caller and callee.