summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-12-21 18:29:42 +0100
committerwm4 <wm4@nowhere>2013-12-21 20:50:12 +0100
commit60c06fec1e45e1ddb285fe54f1106e1fc8838edd (patch)
treeaad2b74d464e0d0862605c806e60e1169b8ed49d
parent1974c9b49d7bf09469362ef6ba1214f625ecb40a (diff)
downloadmpv-60c06fec1e45e1ddb285fe54f1106e1fc8838edd.tar.bz2
mpv-60c06fec1e45e1ddb285fe54f1106e1fc8838edd.tar.xz
audio/fmt-conversion.c: remove unknown audio format messages
Same deal as with video/fmt-conversion.c.
-rw-r--r--audio/decode/ad_lavc.c5
-rw-r--r--audio/filter/af_lavfi.c3
-rw-r--r--audio/fmt-conversion.c21
-rw-r--r--audio/out/ao_lavc.c5
4 files changed, 19 insertions, 15 deletions
diff --git a/audio/decode/ad_lavc.c b/audio/decode/ad_lavc.c
index 5f73002d14..b2f29505c2 100644
--- a/audio/decode/ad_lavc.c
+++ b/audio/decode/ad_lavc.c
@@ -137,7 +137,10 @@ static int setup_format(struct dec_audio *da)
// Note: invalid parameters are rejected by dec_audio.c
- mp_audio_set_format(&da->decoded, af_from_avformat(lavc_context->sample_fmt));
+ int fmt = lavc_context->sample_fmt;
+ mp_audio_set_format(&da->decoded, af_from_avformat(fmt));
+ if (!da->decoded.format)
+ MP_FATAL(da, "unsupported lavc format %s", av_get_sample_fmt_name(fmt));
da->decoded.rate = lavc_context->sample_rate;
if (!da->decoded.rate && sh_audio->wf) {
diff --git a/audio/filter/af_lavfi.c b/audio/filter/af_lavfi.c
index 30097ee34d..eaec556dc7 100644
--- a/audio/filter/af_lavfi.c
+++ b/audio/filter/af_lavfi.c
@@ -195,6 +195,9 @@ static int control(struct af_instance *af, int cmd, void *arg)
mp_chmap_from_channels(&out_cm, l_out->channels);
mp_audio_set_channels(out, &out_cm);
+ if (!mp_audio_config_valid(out))
+ return AF_ERROR;
+
p->timebase_out = l_out->time_base;
// Blatantly incorrect; we don't know what the filters do.
diff --git a/audio/fmt-conversion.c b/audio/fmt-conversion.c
index 65f84945c1..6072305424 100644
--- a/audio/fmt-conversion.c
+++ b/audio/fmt-conversion.c
@@ -16,7 +16,6 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "common/msg.h"
#include <libavutil/avutil.h>
#include <libavutil/samplefmt.h>
#include "format.h"
@@ -43,24 +42,18 @@ static const struct {
enum AVSampleFormat af_to_avformat(int fmt)
{
- int i;
- for (i = 0; audio_conversion_map[i].fmt; i++)
+ for (int i = 0; audio_conversion_map[i].fmt; i++) {
if (audio_conversion_map[i].fmt == fmt)
- break;
- return audio_conversion_map[i].sample_fmt;
+ return audio_conversion_map[i].sample_fmt;
+ }
+ return 0;
}
int af_from_avformat(enum AVSampleFormat sample_fmt)
{
- int i;
- for (i = 0; audio_conversion_map[i].fmt; i++)
+ for (int i = 0; audio_conversion_map[i].fmt; i++) {
if (audio_conversion_map[i].sample_fmt == sample_fmt)
- break;
- int fmt = audio_conversion_map[i].fmt;
- if (!fmt) {
- const char *fmtname = av_get_sample_fmt_name(sample_fmt);
- mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported AVSampleFormat %s (%d)\n",
- fmtname ? fmtname : "INVALID", sample_fmt);
+ return audio_conversion_map[i].fmt;
}
- return fmt;
+ return 0;
}
diff --git a/audio/out/ao_lavc.c b/audio/out/ao_lavc.c
index 3e4ba01105..359fbae0fa 100644
--- a/audio/out/ao_lavc.c
+++ b/audio/out/ao_lavc.c
@@ -69,6 +69,11 @@ static void select_format(struct ao *ao, AVCodec *codec)
++sampleformat)
{
int fmt = af_from_avformat(*sampleformat);
+ if (!fmt) {
+ MP_WARN(ao, "unsupported lavc format %s",
+ av_get_sample_fmt_name(*sampleformat));
+ continue;
+ }
int score = af_format_conversion_score(fmt, ao->format);
if (score > best_score) {
best_score = score;