From 98d19ca8f18901b89aae66dc11c20f5a3a39d7b5 Mon Sep 17 00:00:00 2001 From: John Robinson Date: Fri, 6 Mar 2015 01:10:16 +0100 Subject: [PATCH] lavd/avfoundation: Add support for 24 and 32bit integer input. Tested on Mac Mini soundflower and built-in line input. Reviewed-by: Thilo Borgmann --- libavdevice/avfoundation.m | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index 8b7c5473a7..954c8d5c2b 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -508,6 +508,16 @@ static int get_audio_config(AVFormatContext *s) ctx->audio_bits_per_sample == 16 && ctx->audio_packed) { stream->codec->codec_id = ctx->audio_be ? AV_CODEC_ID_PCM_S16BE : AV_CODEC_ID_PCM_S16LE; + } else if (basic_desc->mFormatID == kAudioFormatLinearPCM && + ctx->audio_signed_integer && + ctx->audio_bits_per_sample == 24 && + ctx->audio_packed) { + stream->codec->codec_id = ctx->audio_be ? AV_CODEC_ID_PCM_S24BE : AV_CODEC_ID_PCM_S24LE; + } else if (basic_desc->mFormatID == kAudioFormatLinearPCM && + ctx->audio_signed_integer && + ctx->audio_bits_per_sample == 32 && + ctx->audio_packed) { + stream->codec->codec_id = ctx->audio_be ? AV_CODEC_ID_PCM_S32BE : AV_CODEC_ID_PCM_S32LE; } else { av_log(s, AV_LOG_ERROR, "audio format is not supported\n"); return 1;