ProtoLink was contracted to analyze and fix problems with the video broadcasting and video e-mail software components of an internet appliance set-top box.
This appliance contains custom video hardware capable of real-time capture and MPEG2 decoding.
In their original form, the broadcasting component (Video Cast) and the e-mail component (Video Mail) used the automation interface of the Microsoft Windows Media Encoder to capture and stream video either over the network in the case of Video Cast or to a file for Video Mail. Both components suffered from unacceptable delays in their respective video preview windows. The video showing in the preview window lagged the real-time video by approximately ten seconds, making it difficult to monitor what was being broadcast or recorded.
After analyzing the applications’ source code, ProtoLink determined the cause of the problem. The Video Cast and Video Mail applications each used a Windows Media Player control embedded on their respective forms to display the video encoded by Windows Media Encoder. The substantial delay between the live video and the displayed video was due to the fact that both Windows Media Encoder and Windows Media Player were buffering the streaming video.
After researching Microsoft’s available multimedia technologies, including Video for Windows and DirectShow, ProtoLink developed a custom DLL in C++. The DLL captures live video using the Video for Windows API and uses COM interfaces implemented in the Windows Media Format SDK to encode and stream video over the network or to a file.