Commit graph

2687 commits

Author SHA1 Message Date
Wim Taymans
bcddac6e2b stream: schedule process from main thread when asked
Use 2 lockfree queues so that we can queue and dequeue from different
threads.
Call the process function from the main thread when requested
Rework the data push and pull logic to go through the queues
Update the examples for this new feature, video-play does not need
to schedule the process in the main thread anymore and block for it
to complete, this avoid a deadlock between the data and mainloop when
shutting down.
2018-07-11 17:56:36 +02:00
Wim Taymans
fdc3d5c0f7 export-sink: be less verbose
Only report region once and only accept 1 region
2018-07-09 12:14:01 +02:00
Wim Taymans
f49ab32874 meta: add video damage region metadata
Add damage region meta
Implement damage region in video-src and export-sink
2018-07-09 12:07:30 +02:00
Wim Taymans
c98fbfe0a9 meta: make safer find_meta_data function 2018-07-09 12:04:23 +02:00
Wim Taymans
33427b4cd3 small cleanups 2018-07-08 15:23:56 +02:00
Wim Taymans
3f45ccd6a5 gst: update to current API 2018-07-08 15:23:28 +02:00
Wim Taymans
67e567b9c7 stream: API break
Add pw_buffer
Add queue/dequeue methods, remove old methods
Add get and set for properties
Update gst elements and examples

Update the API to work branch which is more future proof
2018-07-08 14:57:11 +02:00
Wim Taymans
e0676fcef8 array: update size on delete 2018-07-07 11:29:45 +02:00
Wim Taymans
2ac2822d4f link: always activate the link
Always activate the link, don't rely on the node to activate us.
2018-07-07 10:46:49 +02:00
Wim Taymans
1cdb7e0214 thread-loop: add some debug 2018-07-04 15:31:44 +02:00
Wim Taymans
ef307d37bc node: add node session property 2018-07-04 15:30:41 +02:00
Wim Taymans
bc2b965591 audio-dsp: use the quantum to fill underrun with silence 2018-07-04 10:34:11 +02:00
Wim Taymans
055518b40d stream: add parameter support
Rework parameter handling
Hook up volume parameters
Small cleanups
2018-07-03 21:59:34 +02:00
Wim Taymans
70b04da723 media-session: express quantum relative to rate 2018-07-03 21:55:08 +02:00
Wim Taymans
9417cdd9e6 client-stream: Also link controls
Improve registration of the node, set the media.class
2018-07-03 21:47:53 +02:00
Wim Taymans
1b4a0e8d5d client-node: also implement io on the node itself 2018-07-03 21:45:07 +02:00
Wim Taymans
79a3b594f9 client-node: set parent id and owner
Make sure we set the right parent id and owner for the client node
and client-stream
Move the remote id in the proxy object and use it in the stream to
get the node id.
2018-07-03 21:43:21 +02:00
Wim Taymans
fe03ec8bde array: add some more helpers 2018-07-03 21:35:47 +02:00
Wim Taymans
8f97e0dd31 audioconvert: add volume control 2018-07-03 21:34:22 +02:00
Wim Taymans
e5c2896fca pod: add padding to float pod 2018-07-03 21:28:48 +02:00
Wim Taymans
6494a5aac0 link: improve state change
Don't assume running state when we already have a format
2018-07-02 13:14:01 +02:00
Wim Taymans
c315c95e55 link: improve negotiation
Separate negotiation and activation steps of the link.
Keep track of the pending amount of links to negotiate before activating
a node.
2018-07-02 12:14:50 +02:00
Wim Taymans
0122e15611 node: improve scheduling 2018-07-02 12:14:23 +02:00
Wim Taymans
6b10b0784f node: improve states
Only change state when different
2018-07-02 12:11:05 +02:00
Wim Taymans
f5cf90ccd1 media-session: improve debug 2018-07-02 12:08:03 +02:00
Wim Taymans
e68624fe7b client-stream: improve scheduling 2018-07-02 12:07:46 +02:00
Wim Taymans
710f0f59cf limit buffers to 16 until we can send more fds in one message 2018-07-02 12:04:38 +02:00
Wim Taymans
a7ec4e4688 stream: add MIN_QUEUED constant 2018-06-27 15:38:41 +02:00
Wim Taymans
6e92dbbe23 media-session: always check if session is busy
Also check if the session is busy if we explicitly provided the
target session id to join.
2018-06-27 11:11:35 +02:00
Wim Taymans
2fe392dd30 alsa: limit silence to threshold and available size 2018-06-27 11:11:00 +02:00
Wim Taymans
d9e3eb49cc audio-dsp: cleanups to format conversion 2018-06-26 16:55:19 +02:00
Wim Taymans
b46a0bc047 client-stream: prefer client buffer params 2018-06-26 16:54:48 +02:00
Wim Taymans
a13b5cfdc3 increase number of buffers 2018-06-26 16:54:18 +02:00
Wim Taymans
414378283c media-session: allow enabled sessions
Only enable sessions when they can be configured fully
2018-06-26 12:25:50 +02:00
Wim Taymans
2d75d96d67 meson: fix pulseaudio check 2018-06-26 12:22:03 +02:00
Wim Taymans
a738b73567 port: we can accept a new input after mixing it 2018-06-25 17:11:07 +02:00
Wim Taymans
1a786e04f9 resample: improve output buffer size
If we don't have an output size configued, produce output as soon as we
can.
2018-06-25 17:09:45 +02:00
Wim Taymans
9773e2245f fmtconvert: implement merge and convert 2018-06-25 17:09:11 +02:00
Wim Taymans
e9885a8ebb fmt-ops: fix f32 to u8 conversion 2018-06-25 17:08:34 +02:00
Wim Taymans
8f41031933 alsa: clamp threshold to configured max 2018-06-25 17:07:59 +02:00
Wim Taymans
75a18d5c7f audioconvert: fix s24 samples
Various cleanups
2018-06-25 14:34:36 +02:00
Wim Taymans
35e0399d97 media-session: use session sample_rate and buffer_size as defaults 2018-06-25 14:33:27 +02:00
Wim Taymans
bb7be076bb client-stream: swap local and remote io area 2018-06-25 14:33:00 +02:00
Wim Taymans
c01112d6c2 node: move position calculation to the node 2018-06-22 17:38:36 +02:00
Wim Taymans
757e2ccc79 client-stream: trigger client-node manually
Don't let the graph scheduler trigger the client-node, instead do it
ourselves when the need a buffer for the next quantum.
2018-06-22 17:37:21 +02:00
Wim Taymans
ce2e605255 client-stream: fix format and buffers for capture 2018-06-22 17:36:26 +02:00
Wim Taymans
1eae3f1a2c media-session: round buffer-size down to power of 2
use rate of the session to calculate the buffer size and round down
to power of 2
2018-06-22 17:31:54 +02:00
Wim Taymans
73602ad98a media-session: improve category 2018-06-22 17:31:36 +02:00
Wim Taymans
ecc287edcf link: improve debug 2018-06-22 17:31:01 +02:00
Wim Taymans
6025b30a46 audio-src: add volume 2018-06-22 17:30:19 +02:00