mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
ffplay: silence buffer size must be a multiple of frame size
Otherwise the audio channels sometimes would be shifted on output. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
6f06545b26
commit
1348420b8a
3
ffplay.c
3
ffplay.c
@ -2163,6 +2163,7 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
|
||||
VideoState *is = opaque;
|
||||
int audio_size, len1;
|
||||
int bytes_per_sec;
|
||||
int frame_size = av_samples_get_buffer_size(NULL, is->audio_tgt_channels, 1, is->audio_tgt_fmt, 1);
|
||||
double pts;
|
||||
|
||||
audio_callback_time = av_gettime();
|
||||
@ -2173,7 +2174,7 @@ static void sdl_audio_callback(void *opaque, Uint8 *stream, int len)
|
||||
if (audio_size < 0) {
|
||||
/* if error, just output silence */
|
||||
is->audio_buf = is->silence_buf;
|
||||
is->audio_buf_size = sizeof(is->silence_buf);
|
||||
is->audio_buf_size = sizeof(is->silence_buf) / frame_size * frame_size;
|
||||
} else {
|
||||
if (is->show_mode != SHOW_MODE_VIDEO)
|
||||
update_sample_display(is, (int16_t *)is->audio_buf, audio_size);
|
||||
|
Loading…
x
Reference in New Issue
Block a user