From 7279ba54f7226cc82f5a67d14a867e838f2eeac4 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Wed, 24 Dec 2014 00:06:26 -0800 Subject: [PATCH] Video: Fix uncompressed PCM audio recording --- CHANGES | 1 + src/platform/ffmpeg/ffmpeg-encoder.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index a37a98fce..645caaf77 100644 --- a/CHANGES +++ b/CHANGES @@ -14,6 +14,7 @@ Bugfixes: - GBA Audio: Make larger buffer sizes than 2048 actually work properly - GBA Video: Fix blend issues with obscured middle layers - Video: Ensure FFmpeg encoder has audio frames + - Video: Fix uncompressed PCM audio recording Misc: - Qt: Disable sync to video by default - GBA: Exit cleanly on FATAL if the port supports it diff --git a/src/platform/ffmpeg/ffmpeg-encoder.c b/src/platform/ffmpeg/ffmpeg-encoder.c index 52f8f6806..5f112dc88 100644 --- a/src/platform/ffmpeg/ffmpeg-encoder.c +++ b/src/platform/ffmpeg/ffmpeg-encoder.c @@ -226,7 +226,7 @@ bool FFmpegEncoderOpen(struct FFmpegEncoder* encoder, const char* outfile) { encoder->audioFrame = avcodec_alloc_frame(); #endif if (!encoder->audio->frame_size) { - encoder->audio->frame_size = 1024; + encoder->audio->frame_size = 1; } encoder->audioFrame->nb_samples = encoder->audio->frame_size; encoder->audioFrame->format = encoder->audio->sample_fmt; @@ -368,9 +368,9 @@ void _ffmpegPostAudioFrame(struct GBAAVStream* stream, int32_t left, int32_t rig int channelSize = 2 * av_get_bytes_per_sample(encoder->audio->sample_fmt); avresample_convert(encoder->resampleContext, - 0, 0, encoder->postaudioBufferSize / channelSize, + 0, 0, 0, (uint8_t**) &encoder->audioBuffer, 0, encoder->audioBufferSize / 4); - if ((ssize_t) avresample_available(encoder->resampleContext) < (ssize_t) encoder->postaudioBufferSize / channelSize) { + if (avresample_available(encoder->resampleContext) < encoder->audioFrame->nb_samples) { return; } #if LIBAVCODEC_VERSION_MAJOR >= 55