aboutsummaryrefslogtreecommitdiff
path: root/src/output_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/output_thread.c')
-rw-r--r--src/output_thread.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/output_thread.c b/src/output_thread.c
index 4eef2ccd..78592d6e 100644
--- a/src/output_thread.c
+++ b/src/output_thread.c
@@ -325,12 +325,10 @@ ao_chunk_data(struct audio_output *ao, const struct music_chunk *chunk,
assert(!music_chunk_is_empty(chunk));
assert(music_chunk_check_format(chunk, &ao->in_audio_format));
- const char *data = chunk->data;
- size_t length = chunk->length;
-
- (void)ao;
-
- assert(length % audio_format_frame_size(&ao->in_audio_format) == 0);
+ const char *data = chunk->frame ? chunk->frame->data[0] : NULL;
+ size_t length = data ? av_samples_get_buffer_size(NULL, ao->in_audio_format.channels,
+ chunk->frame->nb_samples,
+ chunk->frame->format, 1) : 0;
if (length > 0 && replay_gain_filter != NULL) {
if (chunk->replay_gain_serial != *replay_gain_serial_p) {