mirror of https://github.com/mpv-player/mpv
audio/format: reformat
This commit is contained in:
parent
6c4b504eca
commit
aa48eeac97
|
@ -31,13 +31,12 @@ int af_fmt2bits(int format)
|
||||||
if (AF_FORMAT_IS_AC3(format)) return 16;
|
if (AF_FORMAT_IS_AC3(format)) return 16;
|
||||||
if (format == AF_FORMAT_UNKNOWN)
|
if (format == AF_FORMAT_UNKNOWN)
|
||||||
return 0;
|
return 0;
|
||||||
switch(format & AF_FORMAT_BITS_MASK)
|
switch (format & AF_FORMAT_BITS_MASK) {
|
||||||
{
|
case AF_FORMAT_8BIT: return 8;
|
||||||
case AF_FORMAT_8BIT: return 8;
|
case AF_FORMAT_16BIT: return 16;
|
||||||
case AF_FORMAT_16BIT: return 16;
|
case AF_FORMAT_24BIT: return 24;
|
||||||
case AF_FORMAT_24BIT: return 24;
|
case AF_FORMAT_32BIT: return 32;
|
||||||
case AF_FORMAT_32BIT: return 32;
|
case AF_FORMAT_64BIT: return 64;
|
||||||
case AF_FORMAT_64BIT: return 64;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -45,11 +44,11 @@ int af_fmt2bits(int format)
|
||||||
static int bits_to_mask(int bits)
|
static int bits_to_mask(int bits)
|
||||||
{
|
{
|
||||||
switch (bits) {
|
switch (bits) {
|
||||||
case 8: return AF_FORMAT_8BIT;
|
case 8: return AF_FORMAT_8BIT;
|
||||||
case 16: return AF_FORMAT_16BIT;
|
case 16: return AF_FORMAT_16BIT;
|
||||||
case 24: return AF_FORMAT_24BIT;
|
case 24: return AF_FORMAT_24BIT;
|
||||||
case 32: return AF_FORMAT_32BIT;
|
case 32: return AF_FORMAT_32BIT;
|
||||||
case 64: return AF_FORMAT_64BIT;
|
case 64: return AF_FORMAT_64BIT;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -65,7 +64,7 @@ int af_fmt_change_bits(int format, int bits)
|
||||||
|
|
||||||
/* Convert format to str input str is a buffer for the
|
/* Convert format to str input str is a buffer for the
|
||||||
converted string, size is the size of the buffer */
|
converted string, size is the size of the buffer */
|
||||||
char* af_fmt2str(int format, char* str, int size)
|
char *af_fmt2str(int format, char* str, int size)
|
||||||
{
|
{
|
||||||
const char *name = af_fmt2str_short(format);
|
const char *name = af_fmt2str_short(format);
|
||||||
snprintf(str, size, "%s", name);
|
snprintf(str, size, "%s", name);
|
||||||
|
@ -122,11 +121,10 @@ bool af_fmt_is_valid(int format)
|
||||||
|
|
||||||
const char *af_fmt2str_short(int format)
|
const char *af_fmt2str_short(int format)
|
||||||
{
|
{
|
||||||
int i;
|
for (int i = 0; af_fmtstr_table[i].name; i++) {
|
||||||
|
if (af_fmtstr_table[i].format == format)
|
||||||
for (i = 0; af_fmtstr_table[i].name; i++)
|
return af_fmtstr_table[i].name;
|
||||||
if (af_fmtstr_table[i].format == format)
|
}
|
||||||
return af_fmtstr_table[i].name;
|
|
||||||
|
|
||||||
return "??";
|
return "??";
|
||||||
}
|
}
|
||||||
|
@ -143,9 +141,9 @@ int af_fmt_seconds_to_bytes(int format, float seconds, int channels, int sampler
|
||||||
|
|
||||||
int af_str2fmt_short(bstr str)
|
int af_str2fmt_short(bstr str)
|
||||||
{
|
{
|
||||||
for (int i = 0; af_fmtstr_table[i].name; i++)
|
for (int i = 0; af_fmtstr_table[i].name; i++) {
|
||||||
if (!bstrcasecmp0(str, af_fmtstr_table[i].name))
|
if (!bstrcasecmp0(str, af_fmtstr_table[i].name))
|
||||||
return af_fmtstr_table[i].format;
|
return af_fmtstr_table[i].format;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,34 +28,34 @@
|
||||||
#include "mpvcore/bstr.h"
|
#include "mpvcore/bstr.h"
|
||||||
|
|
||||||
// Endianness
|
// Endianness
|
||||||
#define AF_FORMAT_BE (0<<0) // Big Endian
|
#define AF_FORMAT_BE (0<<0) // Big Endian
|
||||||
#define AF_FORMAT_LE (1<<0) // Little Endian
|
#define AF_FORMAT_LE (1<<0) // Little Endian
|
||||||
#define AF_FORMAT_END_MASK (1<<0)
|
#define AF_FORMAT_END_MASK (1<<0)
|
||||||
|
|
||||||
#if BYTE_ORDER == BIG_ENDIAN
|
#if BYTE_ORDER == BIG_ENDIAN
|
||||||
#define AF_FORMAT_NE AF_FORMAT_BE
|
#define AF_FORMAT_NE AF_FORMAT_BE
|
||||||
#else
|
#else
|
||||||
#define AF_FORMAT_NE AF_FORMAT_LE
|
#define AF_FORMAT_NE AF_FORMAT_LE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Signed/unsigned
|
// Signed/unsigned
|
||||||
#define AF_FORMAT_SI (0<<1) // Signed
|
#define AF_FORMAT_SI (0<<1) // Signed
|
||||||
#define AF_FORMAT_US (1<<1) // Unsigned
|
#define AF_FORMAT_US (1<<1) // Unsigned
|
||||||
#define AF_FORMAT_SIGN_MASK (1<<1)
|
#define AF_FORMAT_SIGN_MASK (1<<1)
|
||||||
|
|
||||||
// Bits used
|
// Bits used
|
||||||
#define AF_FORMAT_8BIT (0<<3)
|
#define AF_FORMAT_8BIT (0<<3)
|
||||||
#define AF_FORMAT_16BIT (1<<3)
|
#define AF_FORMAT_16BIT (1<<3)
|
||||||
#define AF_FORMAT_24BIT (2<<3)
|
#define AF_FORMAT_24BIT (2<<3)
|
||||||
#define AF_FORMAT_32BIT (3<<3)
|
#define AF_FORMAT_32BIT (3<<3)
|
||||||
#define AF_FORMAT_64BIT (4<<3)
|
#define AF_FORMAT_64BIT (4<<3)
|
||||||
#define AF_FORMAT_BITS_MASK (7<<3)
|
#define AF_FORMAT_BITS_MASK (7<<3)
|
||||||
|
|
||||||
// Special flags refering to non pcm data (note: 1<<6, 2<<6, 5<<6 unused)
|
// Special flags refering to non pcm data (note: 1<<6, 2<<6, 5<<6 unused)
|
||||||
#define AF_FORMAT_MPEG2 (3<<6) // MPEG(2) audio
|
#define AF_FORMAT_MPEG2 (3<<6) // MPEG(2) audio
|
||||||
#define AF_FORMAT_AC3 (4<<6) // Dolby Digital AC3
|
#define AF_FORMAT_AC3 (4<<6) // Dolby Digital AC3
|
||||||
#define AF_FORMAT_IEC61937 (6<<6)
|
#define AF_FORMAT_IEC61937 (6<<6)
|
||||||
#define AF_FORMAT_SPECIAL_MASK (7<<6)
|
#define AF_FORMAT_SPECIAL_MASK (7<<6)
|
||||||
|
|
||||||
// Fixed or floating point
|
// Fixed or floating point
|
||||||
#define AF_FORMAT_I (1<<9) // Int
|
#define AF_FORMAT_I (1<<9) // Int
|
||||||
|
@ -66,29 +66,29 @@
|
||||||
|
|
||||||
// PREDEFINED formats
|
// PREDEFINED formats
|
||||||
|
|
||||||
#define AF_FORMAT_U8 (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_8BIT|AF_FORMAT_NE)
|
#define AF_FORMAT_U8 (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_8BIT|AF_FORMAT_NE)
|
||||||
#define AF_FORMAT_S8 (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_8BIT|AF_FORMAT_NE)
|
#define AF_FORMAT_S8 (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_8BIT|AF_FORMAT_NE)
|
||||||
#define AF_FORMAT_U16_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_U16_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_U16_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_U16_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
||||||
#define AF_FORMAT_S16_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_S16_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_S16_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_S16_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
||||||
#define AF_FORMAT_U24_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_U24_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_U24_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_U24_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_24BIT|AF_FORMAT_BE)
|
||||||
#define AF_FORMAT_S24_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_S24_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_S24_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_S24_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_24BIT|AF_FORMAT_BE)
|
||||||
#define AF_FORMAT_U32_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_U32_LE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_U32_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_U32_BE (AF_FORMAT_I|AF_FORMAT_US|AF_FORMAT_32BIT|AF_FORMAT_BE)
|
||||||
#define AF_FORMAT_S32_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_S32_LE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_S32_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_S32_BE (AF_FORMAT_I|AF_FORMAT_SI|AF_FORMAT_32BIT|AF_FORMAT_BE)
|
||||||
|
|
||||||
#define AF_FORMAT_FLOAT_LE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_FLOAT_LE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_FLOAT_BE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_FLOAT_BE (AF_FORMAT_F|AF_FORMAT_32BIT|AF_FORMAT_BE)
|
||||||
|
|
||||||
#define AF_FORMAT_DOUBLE_LE (AF_FORMAT_F|AF_FORMAT_64BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_DOUBLE_LE (AF_FORMAT_F|AF_FORMAT_64BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_DOUBLE_BE (AF_FORMAT_F|AF_FORMAT_64BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_DOUBLE_BE (AF_FORMAT_F|AF_FORMAT_64BIT|AF_FORMAT_BE)
|
||||||
|
|
||||||
#define AF_FORMAT_AC3_LE (AF_FORMAT_AC3|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_AC3_LE (AF_FORMAT_AC3|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_AC3_BE (AF_FORMAT_AC3|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_AC3_BE (AF_FORMAT_AC3|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
||||||
|
|
||||||
#define AF_FORMAT_IEC61937_LE (AF_FORMAT_IEC61937|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
#define AF_FORMAT_IEC61937_LE (AF_FORMAT_IEC61937|AF_FORMAT_16BIT|AF_FORMAT_LE)
|
||||||
#define AF_FORMAT_IEC61937_BE (AF_FORMAT_IEC61937|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
#define AF_FORMAT_IEC61937_BE (AF_FORMAT_IEC61937|AF_FORMAT_16BIT|AF_FORMAT_BE)
|
||||||
|
@ -136,8 +136,8 @@ int af_fmt_change_bits(int format, int bits);
|
||||||
// Amount of bytes that contain audio of the given duration, aligned to frames.
|
// Amount of bytes that contain audio of the given duration, aligned to frames.
|
||||||
int af_fmt_seconds_to_bytes(int format, float seconds, int channels, int samplerate);
|
int af_fmt_seconds_to_bytes(int format, float seconds, int channels, int samplerate);
|
||||||
|
|
||||||
char* af_fmt2str(int format, char* str, int size);
|
char *af_fmt2str(int format, char* str, int size);
|
||||||
const char* af_fmt2str_short(int format);
|
const char *af_fmt2str_short(int format);
|
||||||
|
|
||||||
bool af_fmt_is_valid(int format);
|
bool af_fmt_is_valid(int format);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue