summaryrefslogtreecommitdiff
path: root/spa
AgeCommit message (Collapse)AuthorFilesLines
2019-05-15hook: separate spa_callbacks from the hookWim Taymans20-61/+66
Make a spa_callbacks with just the functions and data and use this in the hook and objects.
2019-05-15hooks: use hook to implement the callbacksWim Taymans21-89/+108
This way we get the version check implemented and save some code.
2019-05-15a2dp: cleanupsWim Taymans2-116/+211
2019-05-14a2dp: add events and implementationWim Taymans4-35/+142
Use hooks for the implementation of the transport Add events to the transport Handle the destroy event of the transport to release the reference in source and sink.
2019-05-14audioconvert: improve debugWim Taymans2-2/+4
2019-05-14hook: add option to call hook with return valueWim Taymans1-4/+13
2019-05-14bluez5: add a2dp-source pluginJulian Bouzas4-12/+1189
2019-05-10fmtconvert: fix format enumerationWim Taymans1-30/+45
Rework the format enumeration so that it also return the other rate/channels, even when using a canonical format.
2019-05-10Fix cleanupWim Taymans2-2/+3
2019-05-09fmtconvert: fix format enumerationWim Taymans1-25/+25
Even if the other pad is already negotiated, we can convert all formats to F32.
2019-05-09pod: remove type check, it causes errorsWim Taymans1-2/+2
2019-04-30v4l2: add camera media.roleWim Taymans2-1/+1
2019-04-30audioconvert: fix native variable rate resamplerWim Taymans3-13/+16
2019-04-29alsa: improve capture slave resyncWim Taymans2-31/+46
When we underrun, send out a buffer of 0 samples and catch up next time. Detect discont in the master and resync.
2019-04-26alsa: improve capture resyncWim Taymans1-19/+26
Make sure we capture enough data even when the ringbuffer wraps around. Use the clock nsec to get timing, we don't need to get the new time. Improve sync in capture.
2019-04-25alsa: handle quantum changesWim Taymans2-10/+19
2019-04-25splitter: disable passthrough in more casesWim Taymans1-3/+5
Also disable passthrough when we first negotiate output format/buffers and passthrough is not possible because the output buffer does not have the dynamic data flag set..
2019-04-25alsa: improve clock slaving for sourceWim Taymans3-21/+26
2019-04-24alsa: handle master/slave changesWim Taymans4-29/+65
2019-04-24a2dp: handle slavingWim Taymans1-41/+110
2019-04-24alsa: small cleanupWim Taymans1-2/+0
2019-04-23audioconvert: improve resamplerWim Taymans7-38/+93
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-23alsa: improve rate controlWim Taymans2-108/+82
Try to match the delay with the target delay. Use the rate to adjust the timeout period for master or the resampler rate for slaves.
2019-04-23ringbuffer: use spa_memcpy so we can debug it betterWim Taymans1-4/+4
2019-04-11alsa: rework source a little in the case of slaveWim Taymans4-95/+119
When we are slaved, read as much data as we have available and return this from process.
2019-04-10make bitfields unsignedWim Taymans11-20/+20
Remove driver property from client-node of client-stream.
2019-04-10v4l2: map all jpeg formats to video/mjpegWim Taymans3-5/+6
2019-04-10audioconvert: unroll some loopWim Taymans1-11/+23
2019-04-02spa: install pod/vararg.hGeorge Kiagiadakis1-0/+1
2019-04-02resample: return the number of consumed samplesWim Taymans4-10/+18
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-02alsa: write as much as we canWim Taymans1-1/+1
Always write as much data as we can and don't stop when we written up to the threshold.
2019-03-29channelmix: do passthrough if identityWim Taymans1-2/+5
2019-03-29audioconvert: pass state to functionsWim Taymans17-686/+953
Pass some state to convert and channelmix functions. This makes it possible to select per channel optimized convert functions but also makes it possible to implement noise shaping later. Pass the channelmix matrix and volume in the state. Handle specialized 2 channel s16 -> f32 conversion
2019-03-29resample-native: small tweaksWim Taymans2-33/+23
2019-03-28audioconvert: compile c version separatelyWim Taymans14-1257/+1473
Also compile the c versions in a separate module with their own flags.
2019-03-28bench: add avx resampler to benchmarkWim Taymans2-4/+19
2019-03-28audioconvert: add avx optimizationsWim Taymans9-45/+172
2019-03-28audioconvert: improve benchmarkWim Taymans8-101/+350
Also include the simd versions in the benchmark Fix some issues found by new test
2019-03-27audioconvert: handle more optimizationsWim Taymans11-141/+261
Compile an optimized library for the given CPU with the right flags, then link it with the main library.
2019-03-27resample-native: optimize equal input and output sample ratesWim Taymans3-9/+43
2019-03-27resample-native: cleanupsWim Taymans3-44/+74
Add some comments, reorganize for better readability More alignment of filter and history Add some more test
2019-03-26resample-native: implement variable rateWim Taymans2-40/+61
2019-03-26fmt-ops: use faster f32 -> s32 conversionWim Taymans4-42/+41
2019-03-26audioconvert: add simple and faster resamplerWim Taymans10-7/+720
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-22resample: Let the resampler object handle all channelsWim Taymans5-63/+96
Move the code to loop over all channels in the resampler itself. This is better because the resampler can reuse its state for each channel.
2019-03-21Add FASTPATH trace logWim Taymans10-43/+54
Add a trace_fp that can be optimized away when FASTPATH is defined.
2019-03-21audioconvert: mark ports and buffers as DYNAMICWim Taymans7-32/+67
Only passthrough buffer data when the buffer and ports are marked as DYNAMIC. Use extra buffer for nodes that keep a ref on buffers (resample).
2019-03-21buffer: add DYNAMIC data flagWim Taymans2-3/+9
Add a flag to mark when a buffer data pointer can change. Improve docs for port flags
2019-03-20audioconvert: implement passthroughWim Taymans9-167/+247
Add some const and SPA_RESTRICT to methods When the input and output is the same, work in passthrough mode where we simply copy place the input pointer onto the output buffer without doing a memcpy. Do memcpy when the resampler is not active.
2019-03-20utils: add debugable spa_memcpyWim Taymans5-14/+25