On Thu, Nov 20, 2014 at 08:45:45AM +0100, Dmitrij D. Czarkoff wrote:
> Anthony J. Bentley said:
> > Not sure if this is related, but sound is very choppy for me, and:
> > 
> > AV: 00:05:23 / 01:40:58 (5%) A-V:  0.020
> > [ao/sndio] Blocking until remaining audio is played... (sndio design bug).
> > 
> > was added in this commit:
> > https://github.com/mpv-player/mpv/commit/387d5f55e639425bfb6ee1efec4e21202e5642ad
> > 
> >    "ao_sndio: print a warning when draining audio
> > 
> >    "libsndio has absolutely no mechanism to discard already written audio
> >     (other than SIGKILLing the sound server). sio_stop() will always block
> >     until all audio is played. This is a legitimate design bug.
> > 
> >    "In theory, we could just not stop it at all, so if the player is e.g.
> >     paused, the remaining audio would be played. When resuming, we would
> >     have to do something to ensure get_delay() returns the right value. But
> >     I couldn't get it to work in all cases."
> > 
> > I was previously using a crappy hand-rolled port of... 0.4.something?
> > which wasn't nearly as slow.
> 
> I rebuilt mpv with sdl audio backend, and I still have the same issue:
> playback periodically pauses for a fraction of second.  With sdl backend
> audio also pauses, while with sndio backend it "cracks".  The frequency
> of pauses seeming depends on video resolution: 1280x720 videos pause
> every several seconds, 480x360 video only a couple of times per minute,
> while 360x270 plays smoothly.  Switching of video backend changes
> nothing (with notable exception of "opengl-hq" backend with fails to
> start).
> 
> Still, with sdl backend audio files play smoothly, while sndio backend
> makes everything inaudible.


sorry, don't have the time to test & debug this right now, but a
quick look at the ao_sndio.c suggest that blocking mode is used,
while the device is opened in non-blocking mode:

p->hdl = sio_open(p->dev, SIO_PLAY, 1);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

could you replace 1 by 0, and see if it makes things better?

Reply via email to