Commit graph

124 commits

Author SHA1 Message Date
Thibault Saunier
8639aed456 Generate bindings for the GStreamer Editing Services 2018-11-04 11:35:54 -03:00
Sebastian Dröge
8a6bcbcedb Run through rustfmt once again 2018-10-28 13:47:02 +00:00
Sebastian Dröge
eb0a804a50 Run everything through latest rustfmt 2018-10-08 15:02:23 +03:00
Sebastian Dröge
2c7dff3b45 Run everything through rustfmt again 2018-10-08 09:32:08 +03:00
Sebastian Dröge
2d45d3840f Clean up imports a bit 2018-10-08 09:31:39 +03:00
Thiago Santos
382138b75a More encoding_profile binding improvements
- enable is_equal function again (unsure why it was disabled)
- remove restriction-caps property, encoding-profile objects are
immutable
- remove cast need by using IsA<EncodingProfile> in parameters and
returning the correct type of encodingprofile subclass from the build()
functions. It used a internal hack for storing those IsA objects in
order to keep the API clean and ready to be used, this should be sorted
out as soon as we figure out how to store them in the buidlers.
- encodebin example: remove Result error propagation when it is caused
by programming mistakes. A panic will happen in those cases.
- run rustfmt
2018-10-08 09:06:46 +03:00
Thiago Santos
f3c8dfeb9b EncodingProfile: remove setters and constructors, use builders
Provide builders for the EncodingProfile so that the created objects are
imutable and can have the Send and Sync traits
2018-10-08 09:06:46 +03:00
Thiago Santos
861f052c3d encoding_profile: add builders for all types 2018-10-08 09:06:46 +03:00
Thiago Santos
67bdfee1f6 encodebin: add an example for encodebin usage 2018-10-08 09:06:46 +03:00
Sebastian Dröge
3119593292 Add pango-cairo example 2018-08-30 11:14:59 +03:00
Sebastian Dröge
06bd23f833 Fix compilation of iterator example 2018-08-13 23:46:22 +03:00
Sebastian Dröge
33a6aab6d7 Run everything through latest rustfmt 2018-07-27 13:36:40 +03:00
Sebastian Dröge
c0422acf66 Fix reference cycles and minor related problems in all examples and tutorials
These are now all leak-free.
2018-07-27 13:07:24 +03:00
Sebastian Dröge
694bcaa697 Fix all clippy warnings
Or silence the ones we don't care about.
2018-07-20 10:28:20 +03:00
Sebastian Dröge
8d0a0ee6b1 Directly use byte-slice-cast on the mapped buffer
No need to first get a byte slice from it anymore due to the buffer map
implementing AsRef/AsMut for byte slices
2018-06-01 11:55:13 +03:00
Sebastian Dröge
dc219af36e Add another comment to the appsrc example about the need-data callback not being mandatory 2018-05-18 11:42:24 +03:00
Sebastian Dröge
7734725da1 Change appsrc example to directly push data from the need-data callback
There's no need to start yet another thread just to push data in this
case, we can simply use the callback and store the frame counter in the
mutable environment of the closure.
2018-05-18 11:38:50 +03:00
Sebastian Dröge
5ef13a11b0 Fix compiler warning about too many parenthesis 2018-04-23 20:46:29 +03:00
Sebastian Dröge
a4c3c7cd76 Add futures example using the GLib futures executor 2018-04-23 20:31:27 +03:00
Sebastian Dröge
4b4f369200 Rename tokio example to futures
It has nothing to do with tokio anymore with the newer futures version,
tokio would only come in if actual tokio API (e.g. for sockets) is used.
2018-04-23 20:27:51 +03:00
Sebastian Dröge
492c3d656c Run everything through rustfmt again 2018-04-01 11:57:58 +03:00
Sebastian Dröge
cd95920436 Run everything through rustfmt 2018-03-02 21:06:45 +02:00
Thiago Santos
c81e177cfb pbutils: add discoverer APIs
Fixes https://github.com/sdroege/gstreamer-rs/pull/84
2018-03-02 21:02:24 +02:00
Mathieu Duponchelle
e6265341d5 Add rtsp-server-record example with authentication and TLS
Update the generated files to include TLS related functions,
override some auth and token functions.
2018-02-26 20:35:23 +02:00
Mathieu Duponchelle
ab0df6ddf0 examples: use Cargo.toml required-features
This lets us avoid #ifdef forests
2018-02-26 20:35:23 +02:00
Mathieu Duponchelle
45bb8fe3e0 rtpfecserver example: mux-seq property was removed from rtpulpfecenc 2018-02-26 19:19:59 +02:00
Sebastian Dröge
4117c01ff2 Run everything through latest rustfmt-nightly 2018-02-22 11:18:37 +01:00
Mathieu Duponchelle
1fbc5e7644 examples: add rtpfec example
Fixes https://github.com/sdroege/gstreamer-rs/pull/73
2018-02-22 07:45:22 +01:00
Sebastian Dröge
828f639cc7 Fix unused import compiler warning in tokio example 2018-02-21 13:26:07 +01:00
François Laignel
c971727193 Query: allow concrete query instantiation
Allow instantiating and dereferencing concrete queries. The motivation
for this proposal is to allow the following usability enhancements:

- Concrete queries mutability guaranteed by the borrow checker,
including for generic functions:
``` rust
    let mut p = Query::new_position(::Format::Time);
    p.get_mut_structure().set("check_mut", &true);
```

- Concrete queries functions available in place:
``` rust
    let mut q = gst::Query::new_duration(gst::Format::Time);
    let duration = if pipeline.query(&mut q) {
        Some(q.get_result())
    } else {
        None
    };
```
2018-02-16 10:33:40 +02:00
Mathieu Duponchelle
a00243d529 Add initial libgstsdp, libgstrtsp and libgstrtspserver bindings
Only automatic bindings for now, which is enough to allow
implementing a simple rtsp-server example.

Depends on https://github.com/sdroege/gstreamer-sys/pull/8

Uses a new gir feature proposed at
https://github.com/gtk-rs/gir/pull/539 to make doc regeneration
easier.

Fixes https://github.com/sdroege/gstreamer-rs/pull/80
2018-02-14 18:57:58 +02:00
fengalin
21c687f256 Examples: message handlers: invoke generic Message method from the concrete message
Generic methods for events, messages and queries can now be invoked from the concrete type.
2018-01-29 17:33:49 +02:00
Sebastian Dröge
f4da93aadb Add gst::TagSetter example 2017-12-24 14:49:56 +02:00
Sebastian Dröge
9b6efb2339 Fix various clippy warnings 2017-12-20 21:46:58 +02:00
Sebastian Dröge
e0dc84c10a Run everything through rustfmt again 2017-12-20 19:30:14 +02:00
Sebastian Dröge
396dae666f Make appsink/appsrc callbacks builder more consistent with other code
Move the constructor of the builder to the main type
2017-12-16 11:37:00 +02:00
Sebastian Dröge
49a6eb6a1f Replace AppSrcCallbacks/AppSinkCallbacks with a builder so that no empty closures have to be provided for unused callbacks 2017-12-10 15:19:44 +02:00
Sebastian Dröge
c99928d030 Change FormatValue related API to be more convenient to use
FormatValue is now renamed to GenericFormattedValue and the API slightly
changed. In addition there is now a FormattedValue trait, and a
SpecificFormattedValue trait plus types for Bytes, Buffers and the
existing ClockTime.

This allows to create functions like
  Pad::query_duration<F: SpecificFormattedValue>() -> Option<F>
and doesn't require the caller to unwrap the generic value anymore,
which is completely unneeded in these cases.

In addition, Segment became FormattedSegment<T> with API to
upcast/downcast between the specific formatted values and the generic
formatted value. This greatly simplifies usage of Segments.
2017-12-09 19:45:18 +02:00
Sebastian Dröge
b198ee21da Let Sample::new(), TagList::add(), Structure::set() and others take more values by reference instead of by value 2017-11-27 14:34:02 +02:00
Sebastian Dröge
b6d13272df Fix some clippy warnings in examples/tutorials 2017-11-27 14:03:33 +02:00
Sebastian Dröge
f895f484cc Fix up tutorials and examples for Message::get_src() returning an Option now 2017-11-16 13:58:56 +02:00
Sebastian Dröge
86b787ac81 Add failure-based error handling to the decodebin example
This also makes use of directly reporting errors from a callback, by
transferring it via the error message to the main thread.
2017-11-16 13:39:34 +02:00
Sebastian Dröge
4ab5893359 Allow to return something from the examples/tutorials main() wrapper 2017-11-12 20:11:25 +01:00
Sebastian Dröge
a01f1385ec examples: Set up a runloop on macOS 2017-11-12 19:07:02 +01:00
Sebastian Dröge
1c0e802bc8 Remove utils module from examples
It's unused now
2017-11-12 10:15:54 +01:00
Sebastian Dröge
c9027fb244 Switch appsrc example to failure based error handling 2017-11-12 10:15:37 +01:00
Sebastian Dröge
eb99694ed3 Minor cleanup of appsink example 2017-11-11 16:56:37 +01:00
Sebastian Dröge
90700aa9b2 Switch appsink example to failure based error handling 2017-11-11 16:43:29 +01:00
Sebastian Dröge
126159c762 Run everything through rustfmt once again 2017-11-11 13:31:01 +01:00
Zeeshan Ali
d18cbe5943 examples: More robust cli arg handling 2017-11-11 12:28:34 +01:00