X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffplay.c;h=d5fcde8e489c44c69437b0d64adec29e76352b6f;hb=801dbf0269b1bb5bc70c550e971491e0aea9eb70;hp=804bcbc33f07e4a8141bb56360deeba492d374b1;hpb=014fb816d104fef876f7044c0f6876e890c93c0a;p=ffmpeg diff --git a/ffplay.c b/ffplay.c index 804bcbc33f0..d5fcde8e489 100644 --- a/ffplay.c +++ b/ffplay.c @@ -3781,6 +3781,7 @@ int main(int argc, char **argv) int flags; VideoState *is; char dummy_videodriver[] = "SDL_VIDEODRIVER=dummy"; + char alsa_bufsize[] = "SDL_AUDIO_ALSA_SET_BUFFER_SIZE=1"; av_log_set_flags(AV_LOG_SKIP_REPEATED); parse_loglevel(argc, argv, options); @@ -3818,6 +3819,12 @@ int main(int argc, char **argv) flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER; if (audio_disable) flags &= ~SDL_INIT_AUDIO; + else { + /* Try to work around an occasional ALSA buffer underflow issue when the + * period size is NPOT due to ALSA resampling by forcing the buffer size. */ + if (!SDL_getenv("SDL_AUDIO_ALSA_SET_BUFFER_SIZE")) + SDL_putenv(alsa_bufsize); + } if (display_disable) SDL_putenv(dummy_videodriver); /* For the event queue, we always need a video driver. */ #if !defined(_WIN32) && !defined(__APPLE__)