summaryrefslogtreecommitdiffstats
path: root/libao2
diff options
context:
space:
mode:
authoriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-09 07:39:33 +0000
committeriive <iive@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-09 07:39:33 +0000
commit98f2828d5a758f11c21f300f5ffc28c3d860dd59 (patch)
tree44c941b3634468d885fcfe6a607ad7d8605be782 /libao2
parent7151c375c4a07b97d39ee55cf85f63325499063a (diff)
downloadmpv-98f2828d5a758f11c21f300f5ffc28c3d860dd59.tar.bz2
mpv-98f2828d5a758f11c21f300f5ffc28c3d860dd59.tar.xz
added audio_out_format_bits to calc len alignment
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6027 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2')
-rw-r--r--libao2/afmt.c37
-rw-r--r--libao2/audio_out.h1
2 files changed, 38 insertions, 0 deletions
diff --git a/libao2/afmt.c b/libao2/afmt.c
index 44eb522c19..85bbc30ff0 100644
--- a/libao2/afmt.c
+++ b/libao2/afmt.c
@@ -45,3 +45,40 @@ char *audio_out_format_name(int format)
}
return("Unknown");
}
+
+// return number of bits for 1 sample in one channel, or 8 bits for compressed
+int audio_out_format_bits(int format){
+ switch (format)
+ {
+/*
+ the following two formats are not available with old linux kernel
+ headers (e.g. in 2.2.16)
+*/
+#ifdef AFMT_S32_LE
+ case AFMT_S32_LE:
+ return 32;
+#endif
+#ifdef AFMT_S32_BE
+ case AFMT_S32_BE:
+ return 32;
+#endif
+
+ case AFMT_U16_LE:
+ case AFMT_U16_BE:
+ case AFMT_S16_LE:
+ case AFMT_S16_BE:
+ return 16;//16 bits
+
+ case AFMT_MU_LAW:
+ case AFMT_A_LAW:
+ case AFMT_IMA_ADPCM:
+ case AFMT_S8:
+ case AFMT_U8:
+ case AFMT_MPEG:
+ case AFMT_AC3:
+ default:
+ return 8;//default 1 byte
+
+ }
+ return 8;
+} \ No newline at end of file
diff --git a/libao2/audio_out.h b/libao2/audio_out.h
index 4ac4929155..353b5a4d71 100644
--- a/libao2/audio_out.h
+++ b/libao2/audio_out.h
@@ -42,6 +42,7 @@ extern ao_data_t ao_data;
// prototypes
extern char *audio_out_format_name(int format);
+extern int audio_out_format_bits(int format);
// NULL terminated array of all drivers
extern ao_functions_t* audio_out_drivers[];