Commit graph

3664 commits

Author SHA1 Message Date
Wim Taymans
c658574c01 alsa: improve drain 2020-04-06 17:53:46 +02:00
Wim Taymans
7927a66fdd tools: improve error reporting 2020-04-04 20:23:42 +02:00
Wim Taymans
95906ca52e audioconvert: fix compilation 2020-04-04 20:03:11 +02:00
Wim Taymans
a5b0553328 Fix some -Wenum-conversion errors
Make pw_direction and spa_direction the same
Explicitly cast some enums or use the right enums
2020-04-04 20:03:08 +02:00
Wim Taymans
6937ec5e63 audioconvert: compile c version with right flags 2020-04-03 18:12:04 +02:00
Wim Taymans
28b0da626e Add missing file 2020-04-03 18:05:29 +02:00
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
bf3ebb67aa neon: add alignment hints 2020-04-03 14:26:02 +02:00
Wim Taymans
167460a9bc fmt-ops: add arm32 optimizations 2020-04-03 14:09:46 +02:00
Wim Taymans
a81e269a7e neon: fix neon detection and compilation 2020-04-03 13:30:08 +02:00
Wim Taymans
ab3a6d3441 Fix some compiler warnings on arm 2020-04-03 13:18:02 +02:00
Wim Taymans
df5721ff47 neon: fix taps arguments 2020-04-03 10:31:55 +02:00
Wim Taymans
a87337cae8 neon: fix fallback 2020-04-03 10:22:58 +02:00
Wim Taymans
22e590c7cc stream: somewhat implement drain better
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-02 17:46:50 +02:00
Wim Taymans
ce39c6200d node: add comment 2020-04-02 17:44:03 +02:00
Wim Taymans
1b3aaba206 fmt-ops: set the right flags on optimized functions
Or else we could select an avx2 version on a non-capable CPU.

Fixes #227
2020-04-02 17:34:47 +02:00
Wim Taymans
02dc407752 node: improve debug of activation area 2020-04-02 15:43:36 +02:00
Wim Taymans
c5be7642a3 context: don't recalculate graph for exported nodes
Exported nodes are managed by the remote end so we don't have to.
2020-04-02 15:42:21 +02:00
Wim Taymans
d1091462ab transport: init io_buffers with SPA_IO_BUFFERS_INIT 2020-04-02 15:36:56 +02:00
Wim Taymans
74ab04af26 client-node: use BUFFER_INIT to reset io_buffers 2020-04-02 15:31:58 +02:00
Wim Taymans
c8f435ec41 pulse: also disconnect when we unlink the context 2020-04-02 15:31:20 +02:00
Wim Taymans
f51ba55dae pulse: avoid emiting the NEW event too soon
Let the NEW event be emited when all params are updated.
2020-04-02 15:30:15 +02:00
Wim Taymans
4346cad322 pulse: improve debug of events 2020-04-02 15:28:24 +02:00
Wim Taymans
c20100eabb media-session: Add method to destroy a global
Destroy the stream when it is disconnected and it was marked as
DONT_RECONNECT.
2020-04-02 15:27:23 +02:00
Wim Taymans
a86f70c13d protocol-native: avoid destroying NULL source
The source might have been destroyed before.
2020-04-02 15:25:13 +02:00
Wim Taymans
b87c0a9270 clean up options
make sure we can use -v for verbose mode
2020-04-02 14:34:02 +02:00
Wim Taymans
1fd5be7101 neon: fix resample interpolation 2020-04-01 13:07:52 +02:00
Wim Taymans
558a1f0bb2 filter: ENOSPC is the error when we can't deref 2020-04-01 12:56:17 +02:00
Wim Taymans
7a29c15628 enable more warnings
Fix some warnings
2020-04-01 12:51:42 +02:00
Wim Taymans
edd019d539 defs: add SPA_UNUSED 2020-04-01 12:45:11 +02:00
Wim Taymans
de22ca68da filter: return the newly filtered object
Always take the state of the builder to get the newly filtered
object, even in the case there is no filter.

Handle the case where we can't copy the pod in the case of
a NULL filter by reverting the state of the builder.

Rework the function a bit to make it possible to pass a NULL
result (to calculate the required size, for example)

Fixes #226
2020-04-01 12:44:31 +02:00
Wim Taymans
74665de68e alsa-seq: keep track of last port
Keep track of the last port and only iterate until that port.
2020-03-31 17:52:22 +02:00
Wim Taymans
b3bddb853f context: improve debug of quantum 2020-03-31 13:54:11 +02:00
Gleb Popov
b552863ec9 Don't include alloca.h on FreeBSD. 2020-03-31 12:16:45 +02:00
Wim Taymans
e6675ff2a8 alsa-seq: unsubscribe when paused/suspended
When we are suspended or paused, unsubscribe from the ports so that
we don't block the hardware devices.

See #225
2020-03-31 12:14:52 +02:00
Wim Taymans
9b24a84ce6 fmt-ops: fix copy/paste error 2020-03-30 11:02:13 -04:00
Wim Taymans
527dc89365 fmt-ops: add neon optimizations for format conversion 2020-03-30 10:59:21 -04:00
Wim Taymans
afb93eb6ea conf: add comment 2020-03-30 15:27:54 +02:00
Wim Taymans
2b7f01f5af media-session: add getopt support
Add options to media-session
Add an option to enable or disable modules
Add an option to set properties for later use
2020-03-30 14:09:44 +02:00
George Kiagiadakis
e00c0ffd2d tests: add endpoint unit test
This tests exporting a PW_TYPE_INTERFACE_Endpoint and binding
a proxy for it through the registry, verifying that info and params
are propagated properly from one to the other
2020-03-27 14:56:07 +00:00
George Kiagiadakis
e918d60959 session-manager: implement factories for session, endpoint-stream & endpoint-link
Heavily based on the endpoint factory
2020-03-27 14:56:07 +00:00
George Kiagiadakis
444d180218 session-manager: endpoint: implement caching info & params
The info structure needs to be cached because there is no way to
request it from the implementation, unless we hack the add_listener
API to be used for making info requests or add a new method that
will be used just in the implementation (both are bad ideas).

The params are cached because
1) a client doing enum_params + sync will not work correctly, since
 the sync call syncs with the server and not the implementation...
 we could block the client to solve that, but then there is also #2
2) the implementation is not aware of the clients and therefore
 it cannot keep track of who is subscribed and who is not, this
 needs to happen in the server. Then if we only keep track of the
 subscriptions in the server and keep requesting params from the
 impl, there is no way to know if a param event coming from the
 impl matches a call to enum_params or to subscribe or if it's
 just an update that needs to be forwarded to subscribers.
2020-03-27 14:56:07 +00:00
George Kiagiadakis
74718d6def session-manager: add update/free functions for the info structures 2020-03-27 14:56:07 +00:00
George Kiagiadakis
df66edd9ab session-manager: implement 'endpoint' factory
This is modeled after the 'metadata' factory and provides
a way to use the pw_endpoint interface directly to implement
an endpoint object in a client.
2020-03-27 14:56:07 +00:00
George Kiagiadakis
0a8ec0380b session-manager: check error code when registering the marshallers 2020-03-27 14:56:07 +00:00
George Kiagiadakis
e971a79fce session-manager: implement export functions for session-manager objects 2020-03-27 14:56:07 +00:00
George Kiagiadakis
234c642746 session-manager: move files into client-endpoint / client-session subdirs
To clean up space for the new implementation.
The existing code is exclusively for use with the client-endpoint
and client-session factories.
2020-03-27 14:56:07 +00:00
George Kiagiadakis
bc3a92e950 session-manager: add impl marshallers for endpoint, -stream, -link and session 2020-03-27 14:56:07 +00:00
Wim Taymans
67a5dd35be resample: add neon optimizations 2020-03-27 08:27:11 -04:00
Wim Taymans
397787ec3e spa-resample: getopt_long returns an int 2020-03-26 18:10:11 +01:00