PDA

View Full Version : DirectShowSource no overlay surface (nVidia)


karl_lillevold
29th September 2004, 19:07
Two of my systems with nVidia cards (GF4 Ti 4200/4400) have developed a strange problem with recent video card driver updates (I think)..

In some cases I can not get an overlay surface when I play an Avisynth script. For example:

1)

DirectShowSource("hp.avi",fps=23.976) (YV12 uncompressed)

will give me overlay and nice full screen stretch, while

2)

DirectShowSource("hp.rmvb", fps=23.976) (RV10 encoded from above source)
or

DirectShowSource("hp.mp4", fps=23.976)

or

a = DirectShowSource("hp.rmvb", fps=23.976)
b = DirectShowSource("hp.avi",fps=23.976)
v = StackHorizontal(a,b)
return v


refuse to provide an optimized overlay in any DirectShow player, and full screen playback is very ugly and problematic. I know this used to work fine a while back, but I am afraid I am not sure what triggered the bad behavior. I do suspect video card driver updates though.

I do not have this problem on any other video card (ATI, Intel).

I am using the Helix YUV codecs (http://forum.doom9.org/showthread.php?s=&threadid=56972&highlight=helix+yuv+codecs) as VfW codecs for YV12, and I have stepped through a debug version of the YV12 codec to look for differences in behavior, but can find none. I could go into it more carefully though, which order color formats are checked, but an initial investigation shows that in both cases (no overlay or overlay), my YV12 codec is asked for, and provides YUY2 video data to the player.

Any advice on how to proceed? I have some older video card driver versions, but I am not sure how good downgrading a video card driver is for system stability...

esby
1st October 2004, 12:41
How are you sure it is avisynth fault...

If you are getting overlay with some format...
and not getting it with some other ones...

That would probably lead to these other ones... if they don't support overlay with your hardware (and ifiarw, Nvidia cards were known to lack of overlay support with non standard resolution...)

esby

IanB
1st October 2004, 13:58
karl_lillevold,

I take it all 3 cases have the same height and width.

Does forcing in memory realignment change the behavior.

i.e.DirectShowSource("hp.avi",fps=23.976)
AddBorder(2,0,0,0)
Crop(2,0,0,0,True) # or False)

Have you tried rendering the various .avs's with graphedt (from DX toolkit) to see how DirectShow is cobbling it's bits together.

This problem may be related to Audio-less scripts are unseekable (http://forum.doom9.org/showthread.php?s=&threadid=83076)

IanB

karl_lillevold
2nd October 2004, 00:45
yes, the sources are all the same size (352x288), and the graph looks the same in graphedit. I have also tried other standard sizes with the same problem.

The alignment had no effect.

However, what fixed the problem was to add audio=false to the DirectShowSource parameter:

DirectShowSource("hp.rmvb",fps=23.976)
or
DirectShowSource("hp.rmvb",fps=23.976,audio=true)
=no overlay

DirectShowSource("hp.rmvb",fps=23.976,audio=false)
=overlay!

Same for .mp4. Note that both my .mp4 and .rmvb are audio-less, as is my AVI. This parameter makes no difference for the AVI, since there is no problem for the AVI.

So I tried with an RM file with audio, and there is no problem at all.

Similarly, I can get StackVertical to work, if I make sure both to add audio=false to the DirectShowSource referencing any RMVB or MP4 that has no audio.

Strange problem, how is the overlay surface related to audio, and why only a problem on nVidia? At least the work-around is easy! Thanks!