History

avfilter/af_biquads: add tdi transform type

Paul B Mahol committed 4 years ago

Commit d1663171 parent 6c1b6852 files · +92 −0Browse files

Unified · Split

2 files
  1. doc/filters.texi +9 −0
  2. libavfilter/af_biquads.c +83 −0
doc/filters.texi+9−0
@@ -2050,6 +2050,7 @@ Set transform type of IIR filter. · 2049 unmodified lines
2050@table @option2050@table @option
2051@item di2051@item di
2052@item dii2052@item dii
2053@item tdi
2053@item tdii2054@item tdii
2054@item latt2055@item latt
2055@item svf2056@item svf
@@ -3479,6 +3480,7 @@ Set transform type of IIR filter. · 1423 unmodified lines
3479@table @option3480@table @option
3480@item di3481@item di
3481@item dii3482@item dii
3483@item tdi
3482@item tdii3484@item tdii
3483@item latt3485@item latt
3484@item svf3486@item svf
@@ -3567,6 +3569,7 @@ Set transform type of IIR filter. · 82 unmodified lines
3567@table @option3569@table @option
3568@item di3570@item di
3569@item dii3571@item dii
3572@item tdi
3570@item tdii3573@item tdii
3571@item latt3574@item latt
3572@item svf3575@item svf
@@ -3665,6 +3668,7 @@ Set transform type of IIR filter. · 92 unmodified lines
3665@table @option3668@table @option
3666@item di3669@item di
3667@item dii3670@item dii
3671@item tdi
3668@item tdii3672@item tdii
3669@item latt3673@item latt
3670@item svf3674@item svf
@@ -3748,6 +3752,7 @@ Set transform type of IIR filter. · 77 unmodified lines
3748@table @option3752@table @option
3749@item di3753@item di
3750@item dii3754@item dii
3755@item tdi
3751@item tdii3756@item tdii
3752@item latt3757@item latt
3753@item svf3758@item svf
@@ -4541,6 +4546,7 @@ Set transform type of IIR filter. · 787 unmodified lines
4541@table @option4546@table @option
4542@item di4547@item di
4543@item dii4548@item dii
4549@item tdi
4544@item tdii4550@item tdii
4545@item latt4551@item latt
4546@item svf4552@item svf
@@ -5043,6 +5049,7 @@ Set transform type of IIR filter. · 496 unmodified lines
5043@table @option5049@table @option
5044@item di5050@item di
5045@item dii5051@item dii
5052@item tdi
5046@item tdii5053@item tdii
5047@item latt5054@item latt
5048@item svf5055@item svf
@@ -5394,6 +5401,7 @@ Set transform type of IIR filter. · 345 unmodified lines
5394@table @option5401@table @option
5395@item di5402@item di
5396@item dii5403@item dii
5404@item tdi
5397@item tdii5405@item tdii
5398@item latt5406@item latt
5399@item svf5407@item svf
@@ -6631,6 +6639,7 @@ Set transform type of IIR filter. · 1231 unmodified lines
6631@table @option6639@table @option
6632@item di6640@item di
6633@item dii6641@item dii
6642@item tdi
6634@item tdii6643@item tdii
6635@item latt6644@item latt
6636@item svf6645@item svf
libavfilter/af_biquads.c+83−0
@@ -99,6 +99,7 @@ enum WidthType { · 98 unmodified lines
99enum TransformType {99enum TransformType {
100 DI,100 DI,
101 DII,101 DII,
102 TDI,
102 TDII,103 TDII,
103 LATT,104 LATT,
104 SVF,105 SVF,
@@ -321,6 +322,62 @@ BIQUAD_DII_FILTER(s32, int32_t, INT32_MIN, INT32_MAX, 1) · 216 unmodified lines
321BIQUAD_DII_FILTER(flt, float, -1., 1., 0)322BIQUAD_DII_FILTER(flt, float, -1., 1., 0)
322BIQUAD_DII_FILTER(dbl, double, -1., 1., 0)323BIQUAD_DII_FILTER(dbl, double, -1., 1., 0)
323 324
325#define BIQUAD_TDI_FILTER(name, type, min, max, need_clipping) \
326static void biquad_tdi_## name (BiquadsContext *s, \
327 const void *input, void *output, int len, \
328 double *z1, double *z2, \
329 double *z3, double *z4, \
330 double b0, double b1, double b2, \
331 double a1, double a2, int *clippings, \
332 int disabled) \
333{ \
334 const type *ibuf = input; \
335 type *obuf = output; \
336 double s1 = *z1; \
337 double s2 = *z2; \
338 double s3 = *z3; \
339 double s4 = *z4; \
340 double wet = s->mix; \
341 double dry = 1. - wet; \
342 double in, out; \
343 \
344 a1 = -a1; \
345 a2 = -a2; \
346 \
347 for (int i = 0; i < len; i++) { \
348 double t1, t2, t3, t4; \
349 in = ibuf[i] + s1; \
350 t1 = in * a1 + s2; \
351 t2 = in * a2; \
352 t3 = in * b1 + s4; \
353 t4 = in * b2; \
354 out = b0 * in + s3; \
355 out = out * wet + in * dry; \
356 s1 = t1; s2 = t2; s3 = t3; s4 = t4; \
357 if (disabled) { \
358 obuf[i] = in; \
359 } else if (need_clipping && out < min) { \
360 (*clippings)++; \
361 obuf[i] = min; \
362 } else if (need_clipping && out > max) { \
363 (*clippings)++; \
364 obuf[i] = max; \
365 } else { \
366 obuf[i] = out; \
367 } \
368 } \
369 \
370 *z1 = s1; \
371 *z2 = s2; \
372 *z3 = s3; \
373 *z4 = s4; \
374}
375
376BIQUAD_TDI_FILTER(s16, int16_t, INT16_MIN, INT16_MAX, 1)
377BIQUAD_TDI_FILTER(s32, int32_t, INT32_MIN, INT32_MAX, 1)
378BIQUAD_TDI_FILTER(flt, float, -1., 1., 0)
379BIQUAD_TDI_FILTER(dbl, double, -1., 1., 0)
380
324#define BIQUAD_TDII_FILTER(name, type, min, max, need_clipping) \381#define BIQUAD_TDII_FILTER(name, type, min, max, need_clipping) \
325static void biquad_tdii_## name (BiquadsContext *s, \382static void biquad_tdii_## name (BiquadsContext *s, \
326 const void *input, void *output, int len, \383 const void *input, void *output, int len, \
@@ -760,6 +817,23 @@ static int config_filter(AVFilterLink *outlink, int reset) · 433 unmodified lines
760 default: av_assert0(0);817 default: av_assert0(0);
761 }818 }
762 break;819 break;
820 case TDI:
821 switch (inlink->format) {
822 case AV_SAMPLE_FMT_S16P:
823 s->filter = biquad_tdi_s16;
824 break;
825 case AV_SAMPLE_FMT_S32P:
826 s->filter = biquad_tdi_s32;
827 break;
828 case AV_SAMPLE_FMT_FLTP:
829 s->filter = biquad_tdi_flt;
830 break;
831 case AV_SAMPLE_FMT_DBLP:
832 s->filter = biquad_tdi_dbl;
833 break;
834 default: av_assert0(0);
835 }
836 break;
763 case TDII:837 case TDII:
764 switch (inlink->format) {838 switch (inlink->format) {
765 case AV_SAMPLE_FMT_S16P:839 case AV_SAMPLE_FMT_S16P:
@@ -1006,6 +1080,7 @@ static const AVOption equalizer_options[] = { · 240 unmodified lines
1006 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1080 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1007 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1081 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1008 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1082 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1083 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1009 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1084 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1010 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1085 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1011 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1086 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1048,6 +1123,7 @@ static const AVOption bass_lowshelf_options[] = { · 36 unmodified lines
1048 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1123 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1049 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1124 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1050 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1125 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1126 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1051 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1127 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1052 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1128 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1053 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1129 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1097,6 +1173,7 @@ static const AVOption treble_highshelf_options[] = { · 43 unmodified lines
1097 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1173 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1098 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1174 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1099 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1175 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1176 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1100 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1177 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1101 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1178 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1102 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1179 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1145,6 +1222,7 @@ static const AVOption bandpass_options[] = { · 42 unmodified lines
1145 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1222 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1146 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1223 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1147 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1224 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1225 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1148 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1226 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1149 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1227 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1150 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1228 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1183,6 +1261,7 @@ static const AVOption bandreject_options[] = { · 32 unmodified lines
1183 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1261 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1184 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1262 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1185 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1263 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1264 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1186 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1265 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1187 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1266 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1188 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1267 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1223,6 +1302,7 @@ static const AVOption lowpass_options[] = { · 34 unmodified lines
1223 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1302 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1224 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1303 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1225 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1304 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1305 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1226 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1306 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1227 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1307 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1228 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1308 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1263,6 +1343,7 @@ static const AVOption highpass_options[] = { · 34 unmodified lines
1263 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1343 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1264 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1344 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1265 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1345 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1346 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1266 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1347 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1267 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1348 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1268 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1349 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1303,6 +1384,7 @@ static const AVOption allpass_options[] = { · 34 unmodified lines
1303 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1384 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1304 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1385 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1305 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1386 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1387 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1306 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1388 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1307 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1389 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1308 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1390 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},
@@ -1336,6 +1418,7 @@ static const AVOption biquad_options[] = { · 27 unmodified lines
1336 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},1418 {"a", "set transform type", OFFSET(transform_type), AV_OPT_TYPE_INT, {.i64=0}, 0, NB_TTYPE-1, AF, "transform_type"},
1337 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},1419 {"di", "direct form I", 0, AV_OPT_TYPE_CONST, {.i64=DI}, 0, 0, AF, "transform_type"},
1338 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},1420 {"dii", "direct form II", 0, AV_OPT_TYPE_CONST, {.i64=DII}, 0, 0, AF, "transform_type"},
1421 {"tdi", "transposed direct form I", 0, AV_OPT_TYPE_CONST, {.i64=TDI}, 0, 0, AF, "transform_type"},
1339 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},1422 {"tdii", "transposed direct form II", 0, AV_OPT_TYPE_CONST, {.i64=TDII}, 0, 0, AF, "transform_type"},
1340 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},1423 {"latt", "lattice-ladder form", 0, AV_OPT_TYPE_CONST, {.i64=LATT}, 0, 0, AF, "transform_type"},
1341 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},1424 {"svf", "state variable filter form", 0, AV_OPT_TYPE_CONST, {.i64=SVF}, 0, 0, AF, "transform_type"},

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t