audio: make internal audio format 0 an invalid format

Having to use -1 for that is generally quite annoying.

Audio formats are created from bitmasks, and it can't be excluded that
0 is not a valid format. Fix this by adjusting AF_FORMAT_I so that it
is never 0. Along with AF_FORMAT_F and the special formats, all valid
formats are covered and guaranteed to be non-0.

It's possible that this commit will cause some regressions, as the
check for invalid audio formats changes a bit.
This commit is contained in:
wm4 committed 2013-08-26 10:09:41 +02:00
1 parent 58e826e6f2
commit 53b5227270
5 files changed
+11 -11

No files matched your search

+1 -1
View File
@@ -150,7 +150,7 @@ static int control(struct af_instance* af, int cmd, void* arg)
}
case AF_CONTROL_COMMAND_LINE:{
int format = af_str2fmt_short(bstr0(arg));
if (format == -1) {
if (!format) {
mp_msg(MSGT_AFILTER, MSGL_ERR, "[format] %s is not a valid format\n", (char *)arg);
return AF_ERROR;
}
+1 -1
View File
@@ -133,5 +133,5 @@ int af_str2fmt_short(bstr str)
if (!bstrcasecmp0(str, af_fmtstr_table[i].name))
return af_fmtstr_table[i].format;
return -1;
return 0;
}
+7 -7
View File
@@ -43,11 +43,6 @@
#define AF_FORMAT_US (1<<1) // Unsigned
#define AF_FORMAT_SIGN_MASK (1<<1)
// Fixed or floating point
#define AF_FORMAT_I (0<<2) // Int
#define AF_FORMAT_F (1<<2) // Foating point
#define AF_FORMAT_POINT_MASK (1<<2)
// Bits used
#define AF_FORMAT_8BIT (0<<3)
#define AF_FORMAT_16BIT (1<<3)
@@ -62,7 +57,12 @@
#define AF_FORMAT_IEC61937 (6<<6)
#define AF_FORMAT_SPECIAL_MASK (7<<6)
#define AF_FORMAT_MASK ((1<<9)-1)
// Fixed or floating point
#define AF_FORMAT_I (1<<9) // Int
#define AF_FORMAT_F (2<<9) // Foating point
#define AF_FORMAT_POINT_MASK (3<<9)
#define AF_FORMAT_MASK ((1<<11)-1)
// PREDEFINED formats
@@ -117,7 +117,7 @@
#define AF_FORMAT_IEC61937_NE AF_FORMAT_IEC61937_LE
#endif
#define AF_FORMAT_UNKNOWN (-1)
#define AF_FORMAT_UNKNOWN 0
#define AF_FORMAT_IS_AC3(fmt) (((fmt) & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_AC3)
#define AF_FORMAT_IS_IEC61937(fmt) (AF_FORMAT_IS_AC3(fmt) || ((fmt) & AF_FORMAT_SPECIAL_MASK) == AF_FORMAT_IEC61937)
+1 -1
View File
@@ -1601,7 +1601,7 @@ static int parse_afmt(const m_option_t *opt, struct bstr name,
}
int fmt = af_str2fmt_short(param);
if (fmt == -1) {
if (!fmt) {
mp_msg(MSGT_CFGPARSER, MSGL_ERR,
"Option %.*s: unknown format name: '%.*s'\n",
BSTR_P(name), BSTR_P(param));
+1 -1
View File
@@ -802,7 +802,7 @@ const struct MPOpts mp_default_opts = {
.sub_pos = 100,
.sub_speed = 1.0,
.audio_output_channels = MP_CHMAP_INIT_STEREO,
.audio_output_format = -1, // AF_FORMAT_UNKNOWN
.audio_output_format = 0, // AF_FORMAT_UNKNOWN
.playback_speed = 1.,
.movie_aspect = -1.,
.field_dominance = -1,