Commit graph

409 commits

Author SHA1 Message Date
Wim Taymans
e918f9f77c fix sign confusion 2019-01-07 15:52:42 +01:00
Wim Taymans
0984096089 free() can handle NULL just fine so skip the check
Fixes #117
2018-12-19 17:47:25 +01:00
Wim Taymans
4be368c957 media-session: handle dont-reconnect
If dont-reconnect is given and a target node, kill the stream when
the target node can't be found.
2018-12-14 16:35:57 +01:00
Wim Taymans
8e969c9d44 media-session: set media (sub)type on dsp nodes 2018-12-13 17:26:35 +01:00
Wim Taymans
3ab95f66f3 media-session: don't set audio profile on non-audio nodes 2018-12-13 17:18:37 +01:00
Wim Taymans
491dd785ad media-session: only try to link to nodes 2018-12-12 18:32:28 +01:00
Wim Taymans
2bd7f5c934 media-session: skip non-dsp ports on dsp nodes
Detect DSP nodes sooner, flag pads that have the dsp property, skip
ports on DSP nodes without the dsp flag.
2018-12-11 16:32:19 +01:00
Wim Taymans
5fcbbb4d6b media-session: keep track of profile format
Also keep track of the profile format of a node, this is the profile we
choose for it and what we should use as a profile for the peer node.
2018-12-05 15:59:45 +01:00
Wim Taymans
7091ad340d video-play: check valid metadata 2018-11-30 15:53:31 +01:00
Wim Taymans
537399bbe5 video-play: handle arbitrary cursor sizes
video-play: only allocate the texture when we know the size and
format of the cursor bitmap.
video-src: make cursor size defined with constants.
2018-11-30 15:31:55 +01:00
Wim Taymans
ac5f0b851d meta: add cursor metadata and examples
Add a moving and flashing circle cursor to video-src
Render the cursor in video-play
Alsa add VideoCrop metadata
2018-11-30 15:12:46 +01:00
Wim Taymans
bf344a86e5 alsa: add on and off profiles 2018-11-29 15:24:13 +01:00
Wim Taymans
4810d91c58 media-session: use direction to derive CATEGORY
Try to use the stream direction to figure out the CATEGORY when missing.
Add some more debug
2018-11-28 17:32:35 +01:00
Wim Taymans
7c54b4b89c audio-dsp: improve properties 2018-11-28 13:24:33 +01:00
Wim Taymans
cff8ce8e99 media-session: set device name 2018-11-28 12:21:19 +01:00
Wim Taymans
25c81e8c34 media-session: only add DSP for raw audio nodes 2018-11-21 12:19:47 +01:00
Wim Taymans
c9f7439b52 media-session: debug profile 2018-11-16 16:41:13 +01:00
Wim Taymans
e03289b4ac video-src: print node id 2018-11-12 09:52:59 +01:00
Wim Taymans
7925aed863 video-src: use FLAG_MAP_BUFFERS 2018-11-08 11:43:35 +01:00
Wim Taymans
aade499aae fix TIMESPEC_TO_NSEC 2018-11-07 10:07:48 +01:00
Wim Taymans
088ee9f09e Improve TIMESPEC_TO_TIME
Add explicit TO_NSEC and TO_USEC versions to make it clearer and to
allow for some optimizations.
2018-11-07 09:56:24 +01:00
Wim Taymans
bf6843743a export-sink: implement set_io 2018-11-06 15:21:53 +01:00
Wim Taymans
85f2e93c54 Relicense as MIT/X11
Remove some obsolete files
2018-11-05 17:48:52 +01:00
Wim Taymans
eb0a561f8c permissions: pass pw_permission struct around
Use a pw_permission struct to express permissions of object.
Improve client permissions, add/remove globals when permissions
are changed.
2018-11-05 15:02:08 +01:00
Wim Taymans
b905b70a76 stream: pass target id as uint32_t 2018-11-02 11:52:39 +01:00
Wim Taymans
32afd8d228 video-src: the size is a range 2018-10-31 10:57:26 +00:00
Wim Taymans
ee72023629 media-session: try to connect to the node directly
If we can't find a session for the target node, try to connect to the
node directly if it exists.
2018-10-30 16:30:16 +00:00
Wim Taymans
e1583146ff video-src: Add alternative style format pod example 2018-10-30 15:34:54 +00:00
Wim Taymans
83517e22ac media-session: set permissions on restricted access clients 2018-10-29 08:47:45 +00:00
Wim Taymans
5088bcce60 module-access: make new access module
Rename the flatpak module to access module. The access module should
either let the client connect or mask the client busy while the
permissions are being configured. It is then up to the session manager
to collect the right permissions of the objects and configure those
in the client.

Let the media session monitor the clients and configure the permissions.
2018-10-27 17:33:21 +01:00
Wim Taymans
e59a7c0848 media-session: set node volume 2018-10-18 15:16:59 +02:00
Wim Taymans
fd5e315a10 media-session: handle default media roles better
Use the media.class to derive a better role.
2018-10-18 12:53:30 +02:00
Wim Taymans
0fe0d5dd85 media-session: also enable session for video 2018-10-15 17:51:47 +02:00
Wim Taymans
2b096993ed media-session: only enable session when format is known 2018-10-15 12:46:50 +02:00
Wim Taymans
b3189bb5e7 media-session: handle port without node
Don't crash when the node proxy is destroyed before the port proxy.
2018-10-11 15:56:49 +02:00
Wim Taymans
805240258b Improve channel positions
Sort the channel positions as the suggested format
Use the session node channel positions as the target profile
2018-10-09 20:11:01 +02:00
Wim Taymans
e1ec1bad23 spa: add profile param
Make a profile param that can be used to configure a node with a
certain profile.
Use the profile to configure the ports on splitter and merger and
get rid of the dynamic ports.
Use the profile to configure the client-node and audio-dsp.
Don't try to link more ports than available between client-node and
dsp.
2018-10-08 11:45:52 +02:00
Wim Taymans
41d38e56df media-session: keep track of dsp proxy
Keep the dsp_proxy around because we need it to clean up the
session.
2018-10-05 10:28:20 +02:00
Wim Taymans
b2e84e85c6 media-session: query stream format
Query the stream format. We will use this later to decide what to link
to and how to convert.
2018-10-04 16:41:00 +02:00
Wim Taymans
32e4d676b4 media-session: clear manager after cleanup 2018-10-02 05:45:50 +02:00
Wim Taymans
b8fb7aeaad media-session: handle disconnect better 2018-09-26 13:22:21 +02:00
Wim Taymans
650f9eb9a7 media-session: make device links passive again 2018-09-26 10:52:33 +02:00
Wim Taymans
59f10ad453 Add proxy destroy
Make the current destroy method on the core for proxies to remove the
server side resource.
Make a new destroy method on the registry to destroy globals.
Remove the destroy method on the client-node
media-session: monitor the dsp and device node states to manage the
session state
2018-09-21 16:43:11 +02:00
Wim Taymans
3d1acf3032 media-session: also link source to DSP 2018-09-20 10:12:04 +02:00
Wim Taymans
27cacaaa2e video-play: free SDL data 2018-09-19 15:01:11 +02:00
Wim Taymans
3dc2254196 media-session: add suspend 2018-09-18 09:28:52 +02:00
Wim Taymans
96a84d09df media-session: remove session when the driver node is removed 2018-09-17 17:17:08 +02:00
Wim Taymans
fcd90b25d3 More work on multichannel
Reorder channels to a more common default order.
Only add channel layout when channels > 1
Don't try to link to a session that is still starting
Small sse fixes.
2018-09-14 15:23:12 +02:00
Wim Taymans
5196f7f053 audio: remove layout from audio
Make special format types for planar and interleaved instead of
having a field.
Add enum for audio channel positions
Add some default audio channel layouts
Place the channel layout in the audio format when possible
alsa: place audio channel positions in format
Add sse optimized channel mixing for some common cases
Remove name from port info, it's not mandatory and in the properties
Add direction to port info
2018-09-13 17:03:56 +02:00
Wim Taymans
fb3379e587 Pass channelmask around and use it to name ports
Use the channel name in the port names of the dsp
2018-09-11 18:09:45 +02:00