diff options
author | Anton Khirnov <anton@khirnov.net> | 2013-04-23 09:20:10 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2015-02-20 08:56:03 +0100 |
commit | 1b3144727158b18f080732ff35ef1f6a123a946d (patch) | |
tree | 3cff858317d498ffb02e27364d6a2afde53943c3 /src/output_thread.c | |
parent | e41776f458722d778b5a0db49816f775ef4f9eee (diff) |
music chunk: switch to AVFrame.
Diffstat (limited to 'src/output_thread.c')
-rw-r--r-- | src/output_thread.c | 10 |
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) { |