summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-04-20jack: implement more metadata APIWim Taymans3-171/+227
Rework the metadata implementation without pw_properties to make it easier to delete all subjects and implement the metadata API. Remove metadata from all objects when they are destroyed.
2020-04-20jack: implement get_propertyWim Taymans2-37/+180
2020-04-20metadata: trigger emission of propertiesWim Taymans2-34/+83
When the resource does add_listener, send a message to the proxy to trigger an emission of properties. Block the client until all properties have been notified, track this with a ping event to the implementation.
2020-04-19Add Cirrus CI config file for FreeBSD.Gleb Popov1-0/+20
2020-04-15stream: always request one blockWim Taymans1-14/+5
Don't request too many bytes in one go but one block at a time. This slowly fills up the queue.
2020-04-15pulse: count queued bytesWim Taymans2-2/+5
2020-04-15pulse: improve timingWim Taymans2-29/+45
Make writable size more accurate by using the clock. mplayer uses this to check if the clock is advancing. Remove requested_bytes, we can use ready_bytes for the ready bytes and use the queued bytes for playback. Reset after a flush, wait for a new timing update.
2020-04-14resample: use right define to compile sse functionsWim Taymans1-1/+1
See #220
2020-04-14midifile: make it possible to specify output fileWim Taymans3-29/+29
2020-04-14midifile: remove impossible case.Wim Taymans1-2/+1
2020-04-14loop: handle file fd with eventfdWim Taymans1-6/+32
epoll return EPERM for file fds like stdin/stdout because they are always ready for IO. use an idle source to handle these cases.
2020-04-14stream: improve timingWim Taymans2-88/+111
Dequeue the input buffers so that we can calculate the available bytes to read.
2020-04-14stream: remove useless size on input streamsWim Taymans2-13/+5
Setting the size on input stream buffers based on the elapsed ticks does not give a meaningfull value for the queue size so just leave it to the user to set the size field.
2020-04-14pulse: guard against invalid fdsWim Taymans1-2/+10
Some fds can't be added to epoll (stdin/stdout) and will cause an error. Make sure we don't try to free the NULL event. Add some more debug
2020-04-14stream: improve timingWim Taymans1-31/+43
Improve the delay, make sure we don't overflow Flush and free pending memory Keep track of requested_bytes
2020-04-13pulse: more work on timingsWim Taymans2-126/+156
The read_index should not include the delay to the device. Keep a separate lis of memory blocks filled by the app and give those to the stream when we can. This is because pulse can allocate an infinite amount of buffers but we must cycle between a fixed number. Use DYNAMIC_DATA to avoid memcpy. Use the right requested_bytes in the write_callback. This should be the tlength - the amount of bytes we already queued. _get_time() should include the sink latency.
2020-04-13gst: add properties for limits of negotiated buffersMichael Tretter2-1/+46
By default, the pipewiresrc tries to negotiate 16 buffers. This value is hard coded in the pipewiresrc. If the buffers are large, this could lead to an undesirably high memory usage. Applications that know about the buffer size and that fewer buffers are sufficient should be able to configure the limits for the number of buffers that are negotiated. Therefore, add the min-buffers and max-buffers properties to the pipewiresrc to enable applications to configure limits for the number of negotiated buffers.
2020-04-12pulse: improve timingWim Taymans2-37/+42
Keep track of written bytes and use this to calculate the latency.
2020-04-12resample: improve debugWim Taymans1-2/+2
2020-04-12stream: only call process when we have a dequeued bufferWim Taymans2-7/+4
2020-04-12audioadapter: stop when the follower needs dataWim Taymans1-1/+4
2020-04-12audioadapter: small cleanupWim Taymans1-12/+10
2020-04-07spa: improve drainingWim Taymans10-42/+46
Make a new DRAINED status. Place the DRAINED status on an input IO when a stream is out of buffers and draining. All nodes that don't have HAVE_DATA on the input io need to copy it to the output io and return the status. This makes sure the DRAINED is forwarded and nodes return DRAINED from _process() DRAINED on the resampler flushes out the last queued samples and then forwards the DRAINED in the next iteration. Emit a new drained signal from the context when a node returns DRAINED. Use this to trigger the drained signal in the stream.
2020-04-07alsa: implement drain functionWim Taymans1-7/+19
Implement a drain function that blocks and waits for the drain to complete.
2020-04-07alsa: report error from server when we canWim Taymans1-9/+9
2020-04-06resample: use a 0 sized buffer to drainWim Taymans2-1/+18
2020-04-06improve debugWim Taymans6-4/+16
2020-04-06alsa: improve drainWim Taymans1-35/+77
2020-04-04tools: improve error reportingWim Taymans4-10/+26
2020-04-04audioconvert: fix compilationWim Taymans1-8/+7
2020-04-04Fix some -Wenum-conversion errorsWim Taymans6-9/+8
Make pw_direction and spa_direction the same Explicitly cast some enums or use the right enums
2020-04-03audioconvert: compile c version with right flagsWim Taymans1-12/+13
2020-04-03Add missing fileWim Taymans1-0/+41
2020-04-03audioconvert: move some things aroundWim Taymans12-131/+172
To make it easier to add other implementations later. Improve selection of resampler function
2020-04-03neon: add alignment hintsWim Taymans1-10/+10
2020-04-03fmt-ops: add arm32 optimizationsWim Taymans1-29/+128
2020-04-03neon: fix neon detection and compilationWim Taymans3-14/+9
2020-04-03Fix some compiler warnings on armWim Taymans3-8/+8
2020-04-03neon: fix taps argumentsWim Taymans1-4/+4
2020-04-03neon: fix fallbackWim Taymans1-1/+1
2020-04-02stream: somewhat implement drain betterWim Taymans3-7/+25
Abuse the xrun callback in the adapter to emit the drained signal until almost all data left the resampler. This needs more work with a proper signal and a buffer flag to signal the drain.
2020-04-02node: add commentWim Taymans1-0/+2
2020-04-02fmt-ops: set the right flags on optimized functionsWim Taymans1-8/+8
Or else we could select an avx2 version on a non-capable CPU. Fixes #227
2020-04-02node: improve debug of activation areaWim Taymans3-44/+76
2020-04-02context: don't recalculate graph for exported nodesWim Taymans1-1/+7
Exported nodes are managed by the remote end so we don't have to.
2020-04-02transport: init io_buffers with SPA_IO_BUFFERS_INITWim Taymans1-4/+2
2020-04-02client-node: use BUFFER_INIT to reset io_buffersWim Taymans1-2/+1
2020-04-02pulse: also disconnect when we unlink the contextWim Taymans1-0/+4
2020-04-02pulse: avoid emiting the NEW event too soonWim Taymans1-1/+3
Let the NEW event be emited when all params are updated.
2020-04-02pulse: improve debug of eventsWim Taymans2-3/+49