[FFmpeg-user] avfoundation on osx 10.7.5: issues with audio input
John Robinson
jrobinsonmedia at gmail.com
Thu Mar 5 19:47:18 CET 2015
On Mar 4, 2015, at 4:44 PM, Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:
>
> Please add lines like the following:
> printf("float: %d, integer: %d, bps: %d, packed: %d \n",
> ctx->audio_float, ctx->audio_signed_integer,
> ctx->audio_bits_per_sample, ctx->audio_packed);
>
> Run again and post the output.
>
> Thank you!
>
> Carl Eugen
>
Carl -
Here's the output after adding the logging -
float: 0, integer: 4, bps: 24, packed: 8
I ended up modifying the code to make things work with both the mini's line-in, and soundflower. Sadly my machine is having a hard time keeping up. Here's the code though (in avfoundation.m):
//print some info, trying to figure out what soundflower/10.7.5 is giving us, and why it's exiting with unsupported audio
printf("float: %d, integer: %d, bps: %d, packed: %d , formatId: %d\n", ctx->audio_float, ctx->audio_signed_integer,ctx->audio_bits_per_sample, ctx->audio_packed, basic_desc->mFormatID);
if (basic_desc->mFormatID == kAudioFormatLinearPCM &&
ctx->audio_float &&
ctx->audio_bits_per_sample == 32 &&
ctx->audio_packed) {
stream->codec->codec_id = ctx->audio_be ? AV_CODEC_ID_PCM_F32BE : AV_CODEC_ID_PCM_F32LE;
} else if (basic_desc->mFormatID == kAudioFormatLinearPCM &&
ctx->audio_signed_integer &&
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) {
//mac mini, osx 10.7.5 built-in line input
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) {
//mac mini, osx 10.7.5 soundflower input
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;
}
JR
More information about the ffmpeg-user
mailing list