[MPlayer-cygwin] ao_dsound

Florian Dietrich flodt8 at yahoo.de
Mon Mar 7 23:00:51 CET 2005


I saw the discussion about a patch to ao_dsound in -devel, but since
I'm not subscribed there and I have a few other remarks about
ao_dsound, I'll just post this here.
It also means that I don't know what's in the patch though, so maybe
I'm suggesting things that are already in it.

About the problem discussed in -devel:

I suggest we create three or four notification positions
(IDirectSound_SetNotificationPositions) in our ring buffer. With
those we can find out, when the play position is getting too close to
the write position.

Then, if we pass the last notification position BEFORE the write
counter, we should take emergency measues and zero out the space
between the write counter and the next notification position (this is
data we already played, so it can be deleted), so no garbage can be
heard.
Then, when we reach the notification position AFTER the write
counter, and still no new data got witten into the buffer, we should
stop playing and reset the buffer.

This way, nothing gets played twice and everything should sound
smooth to the user, even in unexpected situations. Performance impact
should be negligible.

Okay, now two other things:

If we use mplayer with the -wid option, we have a valid HWND, right?
So I think we should use that when setting the cooperative level.

The second thing might just be a hardware problem here, but when I
play audio only files with ao_dsound, playing skips after around 30
seconds. I never used mplayer for audio only files before, so I never
came across this behavior, as everything is just fine with video
files. Also, the same file plays fine with ao_win32. It might really
just be my hardware though, because I think other people would
already have reported this otherwise.

Florian


	

	
		
___________________________________________________________ 
Gesendet von Yahoo! Mail - Jetzt mit 250MB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de




More information about the MPlayer-cygwin mailing list