Commit graph

9748 commits

Author SHA1 Message Date
Wim Taymans fd276b4820 add continuation packet
Add continuation type packet that would make it possible to send
commands using a piece of shared memory.
2015-08-31 17:10:44 +02:00
Wim Taymans 8d1ad2ea63 More work on wire protocol
Make separate payload for the header.
Make release-fd payloads
capture_buffer -> peek_buffer to avoid a copy
remove release-buffer, we really need to release each fd in the buffer
separately.
provide_buffer -> send_buffer so that we can also use this to send the
release-fd messages.
in pinossrc, send back release-fd messages when the fd is no longer in
use.
2015-08-31 16:47:32 +02:00
Wim Taymans c2cf359076 Rework pay/depay elements
Rename the payloader and depayloader to pinospay/pinosdepay because they
now store data in a pinos specific format.
Subclass GstElement because they are not real transform elements.
Rework/remove some buffer functions that are not used by some more
performant ones.
2015-08-27 16:41:25 +02:00
Wim Taymans eada50916a fix some more leaks 2015-08-26 17:11:10 +02:00
Wim Taymans 78a7a1ea72 Fix some memory leaks 2015-08-26 15:44:29 +02:00
Wim Taymans 0e03080002 Rework buffer API a little
Use BufferIter and BufferBuilder instead of Packet*
Make separate method to set the header so you can set it later and not
only at builder init time.
Add method to clear the builder if you want to abort.
Add method to add fd to builder instead of in _add_fd_payload. This
would make it easier to add multiple fd-payloads using data from the
same fd.
Pass PinosPacketFDPayload to add_fd_payload to make it symetric with the
parsing code. We should be able to get the size from the VERSION passed
when the builder was made.
Add ideas about releasing the fds back to the server.
2015-08-26 12:46:28 +02:00
Marc-Antoine Perennou 4e92d32540 add m4 macros from autoconf archive
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2015-08-26 09:53:16 +02:00
Marc-Antoine Perennou 6422cda2c5 Revert "m4: add m4 macros"
This reverts commit 104632ea7a.

No need to add libtool m4 macros, they're isntalled by libtoolize anyway
2015-08-26 09:53:12 +02:00
Wim Taymans f2c9b6badd stream: handle renegotiation
Don't allow multiple connects on a stream, you need to first disconnect.
Make sure we disconnect before reconnecting again in the source.
2015-08-25 16:36:01 +02:00
Wim Taymans e098dde0a3 improve application name 2015-08-25 13:06:05 +02:00
Wim Taymans ec5b9b26df small cleanups and some leak fixing 2015-08-24 16:55:29 +02:00
Wim Taymans c47fcd8105 Rework the wire protocol
Send a command stream over the socket.
Implement a new buffer object that holds the data and commands.
Make iterator and builders to parse and construct buffers.
Rework gstreamer elements to use new API for creating and parsing
buffers.
Add _release_buffer to notify a stream when we are done processing the
buffer. This will eventually go all the way to the server and will allow
us to do more complicated buffer management.
2015-08-24 16:41:04 +02:00
Wim Taymans d0f3f3125b doc: add simple design doc 2015-08-21 11:46:29 +02:00
Wim Taymans e9c72a6102 output: send output properties in start
Also send the output properties in start, along with the format.
2015-08-21 11:45:38 +02:00
Wim Taymans 104632ea7a m4: add m4 macros 2015-08-20 11:01:26 +02:00
Wim Taymans 6611061683 Improve state management
Split setup of pipeline and state change to inspect the pipeline formats
and properties. Pass the device monitor caps to the gstreamer source so
that we don't have to query that again.

Work on adding time provider to the sender pipeline. Send the port and
address to the client in the source-output object properties.

Improve properties API and add some more docs.
2015-08-13 11:37:10 +02:00
Wim Taymans 1c2fbac587 deviceprovider: change debug message 2015-08-12 11:49:54 +02:00
Wim Taymans b0e4cb4288 Add object paths to introspection
Clean up headers, avoid exposing DBus api.
Remove notify should not have property changes
2015-08-12 11:34:29 +02:00
Wim Taymans e61cbb3931 monitor: move subscribe test to monitor tool 2015-08-12 09:54:10 +02:00
Wim Taymans 7cf87d902e source: add GError to get_formats
Add GError to get_formats to get more error information.
Update the source possible formats when source-output is active
2015-08-11 16:09:05 +02:00
Wim Taymans 0378dcd4b7 deviceprovider: update to new method name 2015-08-08 15:22:10 +02:00
Wim Taymans 4edda643e8 introspect: avoid NULL pointers 2015-08-05 12:04:09 +02:00
Wim Taymans b055748b1c introspect: add change_mask to introspect
Add a bitmask field to mark what fields have changed since the last
introspection call. We can then remove the properties from the subscribe
call.
2015-08-05 11:57:02 +02:00
Wim Taymans 8361f74646 introspect: improve instrospection
Pass changed properties around so that we can print them
2015-08-04 17:37:25 +02:00
Wim Taymans 51f18b540a introspect: add state and format for output source
Add state and negotiated format to output source properties.
2015-08-04 15:59:36 +02:00
Wim Taymans 95f479a760 deviceprovider: update for new API 2015-08-04 15:59:21 +02:00
Wim Taymans 13d846ec38 Improve introspection
Add instrospection of client and source-output.
Add properties to source-output and to CreateSourceOutput/Input
Add helper to fill properties of context.
Add client-name to pinossrc and pinossink
Improve test-subscribe to show all new introspection details.
2015-07-28 17:05:03 +02:00
Wim Taymans 85e09e7a5b source-output: fix wrongly marked property 2015-07-17 17:14:57 +02:00
Wim Taymans 1378a65fb7 devicemonitor: various improvements
Set the active device providers as a property on the daemon. In the
device monitor we can then obsolete the already monitored devices.
Copy all device properties to the source. Set the device class as
a property on the monitored devices.
2015-07-17 17:01:46 +02:00
Wim Taymans 191909cb05 introspect: add api get daemon info 2015-07-17 16:58:42 +02:00
Wim Taymans 31da833069 properties: pass PinosProperties around
Pass PinosProperties around instead of GVariant. This is much easier to
deal with.
2015-07-17 16:57:01 +02:00
Wim Taymans c77d7718a2 properties: add generic property bag
Add a structure to hold string key/value pairs. This is basically a thin
wrapper around GHashTable with some extra API.
2015-07-17 16:52:16 +02:00
Wim Taymans 81924afc39 gst-source: query the caps only once
Query the caps only once at startup and keep them around.
2015-07-16 17:19:32 +02:00
Wim Taymans 619c1f83d0 deamon: remove obsolete method 2015-07-16 17:19:05 +02:00
Wim Taymans 12301b6ef1 source: add method to mark a source idle or busy
Marking a source idle will start an idle timeout to suspend the source.
2015-07-16 17:18:01 +02:00
Wim Taymans 04eca27890 device-provider: small cleanup 2015-07-14 15:50:08 +02:00
Wim Taymans cc3f49e177 pinossrc: wait for streaming
Wait for the streaming state before completing the negotiation or else
we might start reading before we are ready and error out.
2015-07-14 15:47:18 +02:00
Wim Taymans 1b74396562 gst: fix the timestamping
We want to store the absolute time against some clock in the message
timestamp.
2015-07-14 15:46:25 +02:00
Wim Taymans 9425a2bd2f dbus-xml: remove introspection API
We use the ObjectManager and its signals for introspection.
2015-07-14 15:44:51 +02:00
Wim Taymans aa558bf105 client-source: fix state changes
Keep the client-source in the playing state for as long as the input is
streaming. Pausing the pipeline when there are no more readers causes
data to bunch up in the socket that gets bursted to new clients when
they connect.
2015-07-14 15:42:47 +02:00
Wim Taymans 1fec75d2a5 client-source: set format on client source
Set the format on the client source when it is created so that other
clients can inspect the format. It also makes client sources show up in
the device monitor.
2015-07-14 11:34:59 +02:00
Wim Taymans 81b7f15a0c pinossrc: also start streaming when caps don't change 2015-07-10 15:32:59 +02:00
Wim Taymans bd9fa1da65 pinossrc: fix debug 2015-07-10 15:32:12 +02:00
Wim Taymans 88ce3637bc deviceprovider: fix path argument 2015-07-10 15:31:51 +02:00
Wim Taymans f268cdfda6 Try to use source_path consistently 2015-07-09 17:58:54 +02:00
Wim Taymans 1e4e4ef185 client-source: handle NULL filter 2015-07-09 17:58:40 +02:00
Wim Taymans ba15f1f977 gst-source: handle NULL filters 2015-07-09 17:36:17 +02:00
Wim Taymans b85fd0ed25 source: set our possible-formats 2015-07-09 17:36:00 +02:00
Wim Taymans 9895395ab9 manager: disable our own provider
Disable our own provider or else we would react to our own sources.
2015-07-09 17:35:13 +02:00
Wim Taymans be762c326c deviceprovider: reorganize the code a little 2015-07-09 17:34:01 +02:00