PDA

View Full Version : (not an) MPEG2DEC3 WindowlessVideo problem


Cyberia
11th September 2003, 02:45
I have discovered an apparent problem with seeking in WMP when loading scripts through MPEG2DEC3. It may be related to why WMP9 does not seek in this situation, but it is certainly happening when using an WMP ocx in VB.

This has been an issue for me for a while, but today I isolated it down to the WindowlessVideo property of a WMP ocx. If WindowlessVideo is set to TRUE, the WMP seek bar is not enabled. Now, before you assume that this is a VB issue, let me say that the issue does NOT occur when playing scripts that open via AviSource or DirectShowSource. ONLY scripts that load MPEG2DEC3 experience this issue.

I have coded a test program that clearly demonstrates the issue. Again, it ONLY occurs when using MPEG2DEC3. You can download it here: WindowlessVideo Test (http://home.insightbb.com/~cyberia-1/WLVTest/WLVTest.zip)

More information on WindowlessVideo can be found here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmplay/mmp_sdk/playerwindowlessvideo.asp

Basically, (I think) it displays the video in the current window rather than creating a new window for the video. By displaying into the current window, you can overlay objects over the video, which is exactly what I am using it for, so please don't suggest setting WindowlessVideo=FALSE.

Cyberia
12th September 2003, 03:21
Here is a short thread on this subject. It is worth reading:
http://neuron2.net/ipw-web/bulletin/bb/viewtopic.php?p=1709#1709

Cyberia
27th September 2003, 05:17
I have some new information on this subject that definately implicates AviSynth.

If the fddshow codec is installed and used for MPEG2 video, MediaPlayer can directly open the vob and seek around regardless of the status of WindowlessVideo.

That nails it. It's an AviSynth issue.

Second, you can recreate the WindowlessVideo seek problem by using KillAudio() with ANY source! Just add KillAudio() to the scripts used with my test program. (above) Apparently, if WindowlessVideo is used and AviSynth outputs only the video stream, then MediaPlayer cannot seek. This is why the problem only appeared with MPEG2DEC3, as it only outputs the video stream. But I can now recreate it with AviSource also.

Since MediaPlayer can directly open the same AVI or VOB (through fddshow) and seeking works, it must be a AviSynth issue.

Furthermore, if you add an AviSynth audio stream (with either WAVSource or DirectShowSource) and mux them with Audiodub(), then the MediaPlayer seek bar is ENABLED regardless of the status of WindowlessVideo. However, when you try to seek, ONLY the audio seeks.

So Neuron2 was right (as usual), someone will need to run AviSynth in debug mode to figure out whats going on specifically.