Wim Taymans
0d1cef6b3a
audioconvert: move some things around
...
To make it easier to add other implementations later.
Improve selection of resampler function
2020-04-03 18:03:42 +02:00
Wim Taymans
67a5dd35be
resample: add neon optimizations
2020-03-27 08:27:11 -04:00
Wim Taymans
8a2af908a7
small optimizations
...
Add some SPA_LIKELY
Enable FASTPATH by default
2020-03-18 15:43:29 +01:00
Wim Taymans
75e14ecadc
resample: tweak resample qualities a little
2020-02-14 20:23:15 +01:00
Wim Taymans
0023aac9b9
resample: add some more qualities
...
Clamp quality to available qualities.
0 is a valid quality
2020-02-14 18:00:49 +01:00
Wim Taymans
039f6751e1
resample: fix delay reporting
2020-02-14 09:50:35 +01:00
Wim Taymans
5df1c5ae40
resample-native: fix phase shift
2020-02-13 20:41:14 +01:00
Wim Taymans
761119f640
resample: fix start position of new samples
...
When we finished processing the history it might be possible that we
need to skip some samples from the input. Implement this by adding
a start offset for the samples in the buffer.
2020-02-13 16:43:06 +01:00
Wim Taymans
454e743d1a
resample: make quality configurable
2020-02-12 13:31:03 +01:00
Wim Taymans
e04d58ee3a
Improve some debug
2019-10-02 18:02:07 +02:00
Wim Taymans
6e0ffb0c47
flags: change flag macros
...
SPA_FLAG_CHECK -> SPA_FLAG_IS_SET
SPA_FLAG_UNSET -> SPA_FLAG_CLEAR
Add SPA_FLAG_UPDATE
2019-10-02 18:00:42 +02:00
Wim Taymans
a232e67dd8
resample: completely fill resampler
...
start with a completely filled resampler so that the first
input byte immediately gives an output sample. When then have
n_taps/2 leading (almost) 0 samples.
Also make the passthrough resampler act like the real resampler
by introducing an n_taps/2 delay.
2019-09-05 13:13:20 +02:00
Wim Taymans
b1bfc900d6
improve: debug
2019-09-05 13:09:01 +02:00
Wim Taymans
93006d6d90
resample-native: only do full resample when rate == 1.0
...
Otherwise choose the interpollating resampler.
2019-07-15 17:06:07 +02:00
Wim Taymans
595dc0ab5b
resample: fix phase calculation
2019-07-09 16:54:52 +02:00
Wim Taymans
a6a7b3ab54
resample: add functions to calculate in/out length
...
Add test for this as well
2019-07-08 18:26:08 +02:00
Wim Taymans
0154e6eaac
small cleanups
...
resample: remove unused index variable
2019-07-08 18:23:22 +02:00
Wim Taymans
2912d2506f
audioconvert: improve resampler
...
Also emit port info the the merger monitor ports.
Proxy params and buffers to the right monitor ports.
fmtconvert does not always have dsp ports
Increase resampler output buffer sizes so that we can up and downsample.
Fix little off by one in native resampler.
Fix passthrough in speex resampler.
2019-04-23 17:34:27 +02:00
Wim Taymans
dc01b294a2
resample: return the number of consumed samples
...
We need to return the number of consumed samples, even when we don't
start from the first sample in the buffer.
Add some more logging.
2019-04-02 23:06:46 +02:00
Wim Taymans
d260cb19be
audioconvert: compile c version separately
...
Also compile the c versions in a separate module with their own
flags.
2019-03-28 21:07:53 +01:00
Wim Taymans
e7ef13e310
audioconvert: add avx optimizations
2019-03-28 16:45:57 +01:00
Wim Taymans
7f041f4098
audioconvert: improve benchmark
...
Also include the simd versions in the benchmark
Fix some issues found by new test
2019-03-28 13:26:06 +01:00
Wim Taymans
c8d3d475bb
audioconvert: handle more optimizations
...
Compile an optimized library for the given CPU with the right flags,
then link it with the main library.
2019-03-27 17:58:48 +01:00
Wim Taymans
eaffb25cc2
resample-native: optimize equal input and output sample rates
2019-03-27 13:38:34 +01:00
Wim Taymans
4fafd10a89
resample-native: cleanups
...
Add some comments, reorganize for better readability
More alignment of filter and history
Add some more test
2019-03-27 11:23:52 +01:00
Wim Taymans
555fe2f9f5
resample-native: implement variable rate
2019-03-26 17:25:14 +01:00
Wim Taymans
9c8913437b
audioconvert: add simple and faster resampler
...
Add a sinc based resampler that, unlike speex, avoids memcpy and
works directly on the source data. It also allows for ssse3
optimizations and aligned loads. It will later switch to table
interpolation when doing variable rate.
2019-03-26 12:58:26 +01:00