# HG changeset patch # User reimar # Date 1368473684 0 # Node ID 7bf03a97314222d140dd44ced0d50e8998c3e5e1 # Parent 94979f661d3862dea1f344b922be58cfa786261f Do not pass random unsupported data to encoder. diff -r 94979f661d38 -r 7bf03a973142 fmt-conversion.c --- a/fmt-conversion.c Mon May 13 19:34:43 2013 +0000 +++ b/fmt-conversion.c Mon May 13 19:34:44 2013 +0000 @@ -180,7 +180,7 @@ {AF_FORMAT_S16_NE, AV_SAMPLE_FMT_S16}, {AF_FORMAT_S32_NE, AV_SAMPLE_FMT_S32}, {AF_FORMAT_FLOAT_NE, AV_SAMPLE_FMT_FLT}, - {0, AV_SAMPLE_FMT_NONE} + {AF_FORMAT_UNKNOWN, AV_SAMPLE_FMT_NONE} }; enum AVSampleFormat affmt2samplefmt(int fmt) @@ -206,7 +206,7 @@ if (samplefmt_conversion_map[i].sample_fmt == sample_fmt) break; fmt = samplefmt_conversion_map[i].fmt; - if (!fmt) + if (fmt == AF_FORMAT_UNKNOWN) mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported AVSampleFormat %i\n", sample_fmt); return fmt; } diff -r 94979f661d38 -r 7bf03a973142 libmpcodecs/ae_lavc.c --- a/libmpcodecs/ae_lavc.c Mon May 13 19:34:43 2013 +0000 +++ b/libmpcodecs/ae_lavc.c Mon May 13 19:34:44 2013 +0000 @@ -199,6 +199,10 @@ } } encoder->input_format = samplefmt2affmt(lavc_actx->sample_fmt); + if (encoder->input_format == AF_FORMAT_UNKNOWN) { + mp_msg(MSGT_MENCODER,MSGL_ERR, "Audio encoder requires unknown or unsupported input format\n"); + return 0; + } lavc_actx->channels = encoder->params.channels; lavc_actx->sample_rate = encoder->params.sample_rate; lavc_actx->time_base.num = 1;