Commit graph

1140 commits

Author SHA1 Message Date
Wim Taymans
c6f701588f link: improve debug 2018-08-15 13:15:54 +02:00
Wim Taymans
cc1062933b example: improve debug 2018-08-15 13:15:36 +02:00
Wim Taymans
d8525e3732 hooks: enforce version on hook emission
Pass the minimum required version to the hook emission and only call
events when the handler is recent enough.
Add some macros to make event emission easier to read.
2018-08-15 11:53:23 +02:00
Wim Taymans
150e30dfb9 map: make for_each use a return value
Make it possible to stop pw_map_for_each by adding a return value
to the callback.
2018-08-15 11:25:05 +02:00
Wim Taymans
2de7f9cc03 list: add iteration with a cursor
Iterating a list with a cursor is heavier but is safe against removal
of any element in the list. Move the hook cursor iterator to list.
2018-08-15 11:24:40 +02:00
Wim Taymans
813506a614 map: use invalid value for empty list 2018-08-14 17:03:17 +02:00
Wim Taymans
d93afe7f9b core: set version 2018-08-14 15:37:18 +02:00
Wim Taymans
4eae1f0c6f debug: add specific format debug 2018-08-14 13:05:10 +02:00
Wim Taymans
9d36b85dd6 remove spalib 2018-08-14 12:33:53 +02:00
Wim Taymans
d3b9a52ec4 don't link with spalib when we don't have to 2018-08-13 17:22:55 +02:00
Wim Taymans
872a1131fa pod: move compare and filter functions out of the library 2018-08-13 17:17:23 +02:00
Wim Taymans
d768a2d6da make spa-lib versioned
Fixes #60
2018-08-13 16:14:14 +02:00
Wim Taymans
336fd190b4 pipewire: debug version in init 2018-08-13 15:46:48 +02:00
Wim Taymans
6ba0ef7f2d stream: don't include stream.h twice
Fixes #67
2018-08-13 15:46:28 +02:00
Wim Taymans
d51fb8687b deviceprovider: fix memory leaks
Fix leaking of the node info and caps by tracking the proxy object
and freeing our stuff when it is destroyed.
2018-08-13 15:20:25 +02:00
Wim Taymans
a2cfb0882b gst: keep track of clock time
Invalidate the clock when the stream is destroyed and let the new
clock take the time of previous clock when no timing info is
available.
2018-08-13 15:19:20 +02:00
Wim Taymans
5a3883509b stream: return error when no timing info yet 2018-08-13 14:28:25 +02:00
Wim Taymans
e6b7dd1d0f pipewiresrc: fix refcounting of buffers 2018-08-13 12:07:05 +02:00
Wim Taymans
393917ac76 gstdeviceprovider: fix caps introspection
Enum the node port params to get the caps of the devices.
2018-08-09 11:10:00 +02:00
Wim Taymans
327ae5db6e add apiversion to pkgconfig as well 2018-07-31 15:05:17 +02:00
Wim Taymans
c5380162ac build: fix module install directory 2018-07-31 14:56:34 +02:00
Wim Taymans
887b9550ce Release 0.2.2 2018-07-31 14:39:42 +02:00
Wim Taymans
a223a35a5b Revert "Drop api version suffix from library name"
This reverts commit 76ab7eb9fb.
2018-07-27 11:26:29 +02:00
Jan Grulich
76ab7eb9fb Drop api version suffix from library name 2018-07-27 10:48:22 +02:00
Jan Grulich
07411e09cb Bump apiversion and soversion for PW 0.2.x 2018-07-23 18:52:08 +02:00
Wim Taymans
aa838eab94 Release 0.2.1 2018-07-20 12:44:54 +02:00
Wim Taymans
de766324b9 hook: add private data for future expansion 2018-07-20 10:35:31 +02:00
Wim Taymans
9e0bce4cb7 stream: update to latest API 2018-07-19 16:33:00 +02:00
Wim Taymans
061f2c82b5 bump version 2018-07-17 10:32:52 +02:00
Wim Taymans
36d883b8c8 version: add version file 2018-07-17 10:31:17 +02:00
Wim Taymans
8b919e89bd video-src: let stream map buffers 2018-07-12 11:10:59 +02:00
Wim Taymans
18bfa9ae6e stream: add empty new_simple 2018-07-12 11:08:07 +02:00
Wim Taymans
c362b1ccc5 stream: implement MAP_BUFFERS
video-play let the stream map our buffers
2018-07-12 11:05:53 +02:00
Wim Taymans
a2d2d75a25 remote: call disconnect to make sure we free all memory 2018-07-12 11:05:31 +02:00
Wim Taymans
d6f40cefa6 examples: improve examples 2018-07-12 10:02:42 +02:00
Wim Taymans
b9171b5e57 node: add Media/Category/Role properties 2018-07-12 09:46:30 +02:00
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
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
4574adcd2e clean up listeners 2018-06-15 13:12:10 +02:00
Wim Taymans
1e54d9e00b hook: make safer
Also protect against removal of the next hook by using a cursor.
2018-06-15 13:11:00 +02:00
Wim Taymans
85f81ab4e2 config: fail when something fails 2018-06-15 13:10:27 +02:00
Wim Taymans
70bdb72857 loop: add back the destroy loop
We need to keep the sources around until all sources are dispatched. If
not: source A and B are active after poll, A is dispatched first and
removes B, when B is then dispatched, the memory is gone. We don't
free the source but simply mark the fd invalid and move it do a
destroy list. After all sources are dispatched we destroy.
This is safe because removing a source is either done from the poll
context (with invoke) or when holding the right locks.
2018-06-15 13:06:59 +02:00
Wim Taymans
c42d495771 loop: blocking wait
Release the locks before waiting.
2018-06-15 13:06:13 +02:00
Wim Taymans
d619b77425 monitor: safely remove pending requests 2018-06-15 13:05:16 +02:00
Wim Taymans
c208511f53 proxy: reuse id when server removed it
When we destroy the proxy, just clear the id. We then remove the id
completely when the server sends a remove_id request. This avoid
reusing the proxy id before the server has finished with it.
2018-06-15 13:01:08 +02:00
Wim Taymans
d1e2f69324 connection: reset number of fds 2018-06-15 12:59:08 +02:00
Giovanni Campagna
07f12c9713 v4l2: fix enumerating frame interval for continuous/step-wise devices
A device that supports continuous/step-wise frame interval will
report the correct frame intervals for index 0 and EINVAL for
every other index.
(https://linuxtv.org/downloads/v4l-dvb-apis/uapi/v4l/vidioc-enum-frameintervals.html)

Previously, the code would exit from the loop after successfully
reading index 0, without marking that the iteration of frame
interval completed. Therefore, the next time the function was
called the same frame intervals would be read, instead of advancing
to the next frame size or format type.
Instead, mark that we need to try and read the next format size.

Fixes #56
2018-04-03 16:28:23 +02:00
Eike Rathke
871dd2743b __STDC_VERSION__ may be undefined
Clang++ (and g++) don't define __STDC_VERSION__ which results in

 include/spa/support/log.h:101:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
 #if __STDC_VERSION__ >= 199901L
 include/pipewire/log.h:64:5: error: '__STDC_VERSION__' is not defined, evaluates to 0 [-Werror,-Wundef]
 #if __STDC_VERSION__ >= 199901L

so check if __STDC_VERSION__ is defined before comparing.
Also, include/feature.h additionally defines __USE_ISOC99 (and
__USE_ISOC11 for C11 extension), so check these as well.
2018-04-03 16:27:58 +02:00
Philipp Zabel
e38cba4e13 v4l2: check device caps
If V4L2_CAP_DEVICE_CAPS is set, device_caps must be checked for the
V4L2_CAP_VIDEO_CAPTURE flag instead of capabilities.
2018-04-03 16:27:43 +02:00
Wim Taymans
187b6d4bf9 alsa: update the offset after each copy 2018-03-14 16:03:58 +01:00