From 72f5a6d0672ab02f19865966af28f027b839a222 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 18 Jul 2013 15:45:37 +0200 Subject: [PATCH] examples: demuxing: print ffplay command even if sample format is planar Adjust the code so that a working ffplay command is printed in the planar audio case. --- doc/examples/demuxing.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/examples/demuxing.c b/doc/examples/demuxing.c index acd2d413fa..e459cf003e 100644 --- a/doc/examples/demuxing.c +++ b/doc/examples/demuxing.c @@ -302,13 +302,25 @@ int main (int argc, char **argv) } if (audio_stream) { + enum AVSampleFormat sfmt = audio_dec_ctx->sample_fmt; + int n_channels = audio_dec_ctx->channels; const char *fmt; - if ((ret = get_format_from_sample_fmt(&fmt, audio_dec_ctx->sample_fmt)) < 0) + if (av_sample_fmt_is_planar(sfmt)) { + const char *packed = av_get_sample_fmt_name(sfmt); + printf("Warning: the sample format the decoder produced is planar " + "(%s). This example will output the first channel only.\n", + packed ? packed : "?"); + sfmt = av_get_packed_sample_fmt(sfmt); + n_channels = 1; + } + + if ((ret = get_format_from_sample_fmt(&fmt, sfmt)) < 0) goto end; + printf("Play the output audio file with the command:\n" "ffplay -f %s -ac %d -ar %d %s\n", - fmt, audio_dec_ctx->channels, audio_dec_ctx->sample_rate, + fmt, n_channels, audio_dec_ctx->sample_rate, audio_dst_filename); }