47 #define OFFSET(x) offsetof(Bs2bContext, x)
48 #define A AV_OPT_FLAG_AUDIO_PARAM
51 {
"profile",
"Apply a pre-defined crossfeed level",
53 {
"default",
"default profile", 0,
AV_OPT_TYPE_CONST, { .i64 = BS2B_DEFAULT_CLEVEL }, 0, 0,
A,
"profile" },
54 {
"cmoy",
"Chu Moy circuit", 0,
AV_OPT_TYPE_CONST, { .i64 = BS2B_CMOY_CLEVEL }, 0, 0,
A,
"profile" },
55 {
"jmeier",
"Jan Meier circuit", 0,
AV_OPT_TYPE_CONST, { .i64 = BS2B_JMEIER_CLEVEL }, 0, 0,
A,
"profile" },
56 {
"fcut",
"Set cut frequency (in Hz)",
58 {
"feed",
"Set feed level (in Hz)",
74 if (!(bs2b->
bs2bp = bs2b_open()))
80 bs2b_set_level_fcut(bs2b->
bs2bp, bs2b->
fcut);
83 bs2b_set_level_feed(bs2b->
bs2bp, bs2b->
feed);
93 bs2b_close(bs2b->
bs2bp);
152 if (frame != out_frame)
168 bs2b->
filter = bs2b_cross_feed_u8;
171 bs2b->
filter = (
void*)bs2b_cross_feed_s16;
174 bs2b->
filter = (
void*)bs2b_cross_feed_s32;
177 bs2b->
filter = (
void*)bs2b_cross_feed_f;
180 bs2b->
filter = (
void*)bs2b_cross_feed_d;
186 if ((srate < BS2B_MINSRATE) || (srate > BS2B_MAXSRATE))
189 bs2b_set_srate(bs2b->
bs2bp, srate);
217 .priv_class = &bs2b_class,