annotate libaf/af_bs2b.c @ 29130:33956c5f5005

Reemit the ID_AID_x_LANG for the track. This allows the identification of the audio track by language code (en or es) rather than by ID (128 or 129). patch by Kevin DeKorte, kdekorte gmail com
author diego
date Sat, 11 Apr 2009 13:51:02 +0000
parents 3afe8b737f43
children 239573db53a1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29093
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
1 /*
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
2 * The Bauer stereophonic-to-binaural DSP using bs2b library:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
3 * http://bs2b.sourceforge.net/
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
4 *
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
5 * Copyright (c) 2009 Andrew Savchenko
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
6 *
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
7 * This file is part of MPlayer.
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
8 *
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
9 * MPlayer is free software; you can redistribute it and/or modify
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
12 * (at your option) any later version.
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
13 *
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
14 * MPlayer is distributed in the hope that it will be useful,
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
17 * GNU General Public License for more details.
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
18 *
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License along
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
20 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
22 */
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
23
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
24 #include <bs2b.h>
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
25 #include <inttypes.h>
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
26 #include <stdlib.h>
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
27
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
28 #include "af.h"
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
29 #include "subopt-helper.h"
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
30
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
31 /// Internal specific data of the filter
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
32 struct af_bs2b {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
33 int level; ///< crossfeed level
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
34 int profile; ///< profile (easy or normal)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
35 t_bs2bdp filter; ///< instance of a library filter
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
36 };
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
37
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
38 #define PLAY(name,type) \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
39 static af_data_t *play_##name(struct af_instance_s *af, af_data_t *data) \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
40 { \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
41 /* filter is called for all pairs of samples available in the buffer */ \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
42 bs2b_cross_feed_##name(((struct af_bs2b*)(af->setup))->filter, \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
43 (type*)(data->audio), data->len/data->bps/2); \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
44 \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
45 return data; \
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
46 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
47
29095
3afe8b737f43 Use native endian float filter provided by libbs2b instead of
bircoph
parents: 29093
diff changeset
48 PLAY(f,float)
29093
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
49 PLAY(fbe,float)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
50 PLAY(fle,float)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
51 PLAY(s32be,int32_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
52 PLAY(s32le,int32_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
53 PLAY(s24be,bs2b_int24_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
54 PLAY(s24le,bs2b_int24_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
55 PLAY(s16be,int16_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
56 PLAY(s16le,int16_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
57 PLAY(s8,int8_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
58 PLAY(u8,uint8_t)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
59
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
60 /// Sanity check for level value
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
61 static int test_level(void *par)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
62 {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
63 const int val = *(int*)par;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
64 if (val >= 1 && val <= BS2B_CLEVELS)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
65 return 1;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
66
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
67 mp_msg(MSGT_AFILTER,MSGL_ERR, "[bs2b] Level must be in range 1..%i, but "
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
68 "current value is %i.\n", BS2B_CLEVELS, val);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
69 return 0;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
70 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
71
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
72 /// Sanity check for profile value
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
73 static int test_profile(void *par)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
74 {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
75 const int val = *(int*)par;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
76 if (val >= 0 && val <= 1)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
77 return 1;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
78
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
79 mp_msg(MSGT_AFILTER,MSGL_ERR, "[bs2b] Profile must be either 0 or 1, but "
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
80 "current value is %i.\n", val);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
81 return 0;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
82 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
83
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
84 /// Initialization and runtime control
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
85 static int control(struct af_instance_s *af, int cmd, void *arg)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
86 {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
87 struct af_bs2b *s = af->setup;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
88
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
89 switch (cmd) {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
90 case AF_CONTROL_REINIT: {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
91 int format;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
92 char buf[256];
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
93 // Sanity check
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
94 if (!arg) return AF_ERROR;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
95
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
96 format = ((af_data_t*)arg)->format;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
97 af->data->rate = ((af_data_t*)arg)->rate;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
98 af->data->nch = 2; // bs2b is useful only for 2ch audio
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
99 af->data->bps = ((af_data_t*)arg)->bps;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
100 af->data->format = format;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
101
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
102 /* check for formats supported by libbs2b
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
103 and assign corresponding handlers */
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
104 switch (format) {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
105 case AF_FORMAT_FLOAT_BE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
106 af->play = play_fbe;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
107 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
108 case AF_FORMAT_FLOAT_LE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
109 af->play = play_fle;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
110 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
111 case AF_FORMAT_S32_BE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
112 af->play = play_s32be;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
113 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
114 case AF_FORMAT_S32_LE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
115 af->play = play_s32le;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
116 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
117 case AF_FORMAT_S24_BE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
118 af->play = play_s24be;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
119 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
120 case AF_FORMAT_S24_LE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
121 af->play = play_s24le;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
122 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
123 case AF_FORMAT_S16_BE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
124 af->play = play_s16be;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
125 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
126 case AF_FORMAT_S16_LE:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
127 af->play = play_s16le;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
128 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
129 case AF_FORMAT_S8:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
130 af->play = play_s8;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
131 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
132 case AF_FORMAT_U8:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
133 af->play = play_u8;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
134 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
135 default:
29095
3afe8b737f43 Use native endian float filter provided by libbs2b instead of
bircoph
parents: 29093
diff changeset
136 af->play = play_f;
29093
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
137 af->data->format = AF_FORMAT_FLOAT_NE;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
138 af->data->bps=4;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
139 break;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
140 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
141
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
142 bs2b_set_srate(s->filter, (long)af->data->rate);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
143 mp_msg(MSGT_AFILTER,MSGL_V, "[bs2b] using format %s\n",
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
144 af_fmt2str(af->data->format,buf,256));
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
145
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
146 return af_test_output(af,(af_data_t*)arg);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
147 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
148 case AF_CONTROL_COMMAND_LINE: {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
149 const opt_t subopts[] = {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
150 {"level", OPT_ARG_INT, &s->level, test_level},
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
151 {"profile", OPT_ARG_INT, &s->profile, test_profile},
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
152 {NULL}
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
153 };
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
154 if (subopt_parse(arg, subopts) != 0) {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
155 mp_msg(MSGT_AFILTER,MSGL_ERR, "[bs2b] Invalid option specified.\n");
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
156 return AF_ERROR;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
157 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
158
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
159 bs2b_set_level(s->filter, s->level + s->profile ? BS2B_CLEVELS : 0);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
160 mp_msg(MSGT_AFILTER,MSGL_V, "[bs2b] using profile %i, level %i\n",
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
161 s->profile, s->level);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
162 return AF_OK;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
163 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
164 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
165 return AF_UNKNOWN;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
166 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
167
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
168 /// Deallocate memory and close library
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
169 static void uninit(struct af_instance_s *af)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
170 {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
171 struct af_bs2b *s = af->setup;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
172 free(af->data);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
173 if (s && s->filter)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
174 bs2b_close(s->filter);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
175 free(s);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
176 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
177
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
178 /// Allocate memory, set function pointers and init library
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
179 static int af_open(af_instance_t *af)
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
180 {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
181 struct af_bs2b *s;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
182 af->control = control;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
183 af->uninit = uninit;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
184 af->mul = 1;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
185 if (!(af->data = calloc(1,sizeof(af_data_t))))
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
186 return AF_ERROR;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
187 if (!(af->setup = s = calloc(1,sizeof(struct af_bs2b)))) {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
188 free(af->data);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
189 return AF_ERROR;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
190 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
191
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
192 // NULL means failed initialization
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
193 if (!(s->filter = bs2b_open())) {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
194 free(af->data);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
195 free(af->setup);
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
196 return AF_ERROR;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
197 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
198 // Set defaults the same as in the library:
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
199 s->level = 3;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
200 s->profile = 1;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
201 return AF_OK;
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
202 }
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
203
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
204 /// Description of this filter
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
205 af_info_t af_info_bs2b = {
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
206 "Bauer stereophonic-to-binaural audio filter",
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
207 "bs2b",
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
208 "Andrew Savchenko",
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
209 "",
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
210 AF_FLAGS_REENTRANT,
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
211 af_open
9d220a44caae Add libbs2b audio filter itself.
bircoph
parents:
diff changeset
212 };