Commit graph

3085 commits

Author SHA1 Message Date
Mathieu Duponchelle
1fbc5e7644 examples: add rtpfec example
Fixes https://github.com/sdroege/gstreamer-rs/pull/73
2018-02-22 07:45:22 +01:00
Mathieu Duponchelle
9b9a0fd149 all around: disable print_system_libs in calls to pkg-config
By default, pkg-config-rs sets the PKG_CONFIG_ALLOW_SYSTEM_LIBS
environment variable
(https://github.com/alexcrichton/pkg-config-rs/pull/35), which leads
to eg /usr/lib being present in the middle of the final command,
in turn leading to issues when working in an uninstalled environment,
where libraries that are also present system-wide do not get linked
against.
2018-02-21 20:26:02 +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
84e4546f72 Toc: implement Debug trait 2018-02-20 19:29:26 +01:00
Sebastian Dröge
f92f0a99e8 Update CHANGELOG.md for 0.10.2 2018-02-18 23:25:11 +01:00
Sebastian Dröge
6855a40588 Update CHANGELOG.md for 0.4.1 2018-02-18 23:12:52 +01:00
Sebastian Dröge
f1426c82ba Remove callback guards
Since Rust 1.24 it is safe to let panics go to the FFI boundary
2018-02-17 19:58:41 +02: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
Sebastian Dröge
b4d5c98834 Add bindings for GstRTSPContext
This enables most of the signals of GstRTSPClient
2018-02-15 17:04:32 +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
Sebastian Dröge
08dbde4c0e Add getters for the BaseSrc/Sink/Transform configured segment 2018-02-12 10:44:44 +02:00
Sebastian Dröge
67913348f5 Remove unused bitflags crate from gstreamer-sdp-sys 2018-02-09 11:32:33 +02:00
Sebastian Dröge
b46863b073 Fix gstreamer-net-sys native library name 2018-02-09 11:32:33 +02:00
Sebastian Dröge
6e7506894c Use external_libraries rename feature of GIR 2018-02-09 11:32:33 +02:00
Sebastian Dröge
fcee935e0d Minor cleanup of sdp/rtsp/rtsp-server crates
- Add myself to authors so I can upload the crate whenever doing releases
- Add missing features/versions to build.rs
- Simplify glib/gobject/gio-sys dependencies in Cargo.toml
2018-02-09 11:32:33 +02:00
Mathieu Duponchelle
2f22e8c325 Add bindings for GStreamer Sdp, Rtsp and RtspServer libraries
Fixes https://github.com/sdroege/gstreamer-sys/pull/8
2018-02-09 11:32:26 +02:00
Sebastian Dröge
2f179a832c Fix compilation after gstreamer-sys regeneration with unions 2018-02-07 18:53:12 +02:00
Sebastian Dröge
7a914c481b Regenerate everything with latest gir 2018-02-07 18:49:22 +02:00
Sebastian Dröge
ab27a1609e Work around gobject-introspection bug with void* arrays
See https://github.com/gtk-rs/gir/issues/534
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=30833f6242b0480fd78a52cd8cc1169fd9b75706
2018-02-07 18:44:09 +02:00
Sebastian Dröge
f3b1ae8b1c Update gir-files from gstreamer-rs 2018-02-07 18:42:45 +02:00
Sebastian Dröge
6d0d7a3df8 Regenerate everything with latest GIR 2018-02-06 16:42:34 +02:00
François Laignel
ac31688fbd Value: use new union for GValue_data 2018-02-05 05:28:09 +01:00
fengalin
ce28fed070 Tutorials: 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
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
fengalin
da924e5d4d Event & Message: factorize common attributes in generic builders
Concrete events and messages share common attributes which can be factorized in generic builder `struct`s. This reduces noise in the concrete implementations.
2018-01-29 17:33:49 +02:00
fengalin
2d1218e6d6 Event, Message & Query: allow dereferencing concrete types to access generic type methods
Implement `deref` for concrete derivatives of `Event`, `Message` and `Query`. This allows accessing generic methods such as `is_sticky` for events, `get_seqnum` for messages or `is_serialized` for queries and `get_structure` for all.
2018-01-29 17:33:49 +02:00
fengalin
86812c1a53 MessageBuilder: comment out other_fields related methods until GStreamer v1.14 is released
These methods are commented out in order to maintain consistency between messages with and without arguments. It will be restored and conditioned to feature "v1_14" when GStreamer v1.14 is released.
2018-01-29 10:07:42 +02:00
fengalin
3c65a50076 Fix building argument-less messages
Building an argument-less message such as eos yields an assertion failure due to the inner structure being null. The short term solution consists in checking that the inner `structure` is not `null` before attempting to insert `other_fields`. The consequence is that `others_fields` defined for argument-less messages will be ignored. A correction will be applied when GStreamer 1.14 is released thank to the introduction of `gst_message_writable_structure` (see https://bugzilla.gnome.org/show_bug.cgi?id=792928). Due to the dependency on GStreamer 1.14, the correction will be only available under the activation of a feature "v1_14".

Events are not affected as the build method the availability of `gst_event_writable_structure` and this function "will never return NULL". However, we can avoid a `structure` allocation for argument-less messages without `other_fields`.
2018-01-29 10:07:42 +02:00
Charlie Turner
b6979f248c Address review comments 2018-01-26 18:18:50 +02:00
Charlie Turner
fa1b0e6c4a Document dependency for libgstreamer-plugins-bad1.0-dev 2018-01-26 18:18:50 +02:00
Sebastian Dröge
ad219dd171 Remove PAD_PROBE_ID_INVALID and Default impls for PadProbeId and NotifyWatchId
These should never ever be 0, and passing 0 to any of the functions
using them will result in assertions.
2018-01-25 21:06:39 +02:00
Sebastian Dröge
fc4ad81777 Change VideoFrameRef::copy_to() and ::copy_plane() to take VideoFrameRefs instead of VideoFrames
VideoFrames can always be converted to a VideoFrameRef if needed.
2018-01-16 18:59:04 +02:00
Sebastian Dröge
4297f8f5c5 Don't implement Copy for VideoRectangle and pass by reference to center_video_rectangle() 2018-01-03 17:38:22 +02:00
Sebastian Dröge
98290bcc55 Update CHANGELOG.md for 0.10.1 2018-01-03 17:08:46 +02:00
Sebastian Dröge
899be5e2c3 Add VideoFrameRef API
This is like VideoFrame, but can work on gst::BufferRefs and borrows
from it. VideoFrames can be converted into this by borrowing.
2018-01-01 13:47:07 +02:00
Sebastian Dröge
a65016bea1 Add gst::Object as parent class of gst_player::Player 2017-12-30 15:34:41 +02:00
Sebastian Dröge
38bd880a74 Add GstVideoFilter bindings
Not very useful, but will be useful for gst-plugin-rs
2017-12-30 15:34:41 +02:00
Sebastian Dröge
6083fb63c2 Add unit test for gst_video::convert_sample_async() 2017-12-30 12:08:48 +02:00
Sebastian Dröge
c52da3639a Fix memory leak for gst_video::convert_sample_async()
Values are passed owned to the callback
2017-12-30 12:08:26 +02:00
Sebastian Dröge
65468c1fc8 Add Sample::get_info() and deprecate get_structure()
For consistency with the C API naming.
2017-12-30 12:03:03 +02:00
Sebastian Dröge
4a9cb50670 Add Sample::with_buffer_list() constructor 2017-12-30 12:02:48 +02:00
Sebastian Dröge
f47b30b8d1 Add Debug impl for Sample 2017-12-30 12:02:33 +02:00
Sebastian Dröge
d44869711a Run video_rectangle.rs through rustfmt 2017-12-26 18:18:13 +01:00
Philippe Normand
1722b047bd gstreamer-video: VideoRectangle bindings 2017-12-26 18:17:30 +01:00
Sebastian Dröge
755982bb38 Correctly mark Stream and StreamType as requiring version 1.10 at least
Should fix https://github.com/sdroege/gstreamer-rs/issues/68
2017-12-26 18:13:15 +01:00
Sebastian Dröge
f4da93aadb Add gst::TagSetter example 2017-12-24 14:49:56 +02:00
Sebastian Dröge
25a8ce4f8d Add bindings for gst_video::convert_sample() and ::convert_sample_async() 2017-12-24 14:30:38 +02:00
Sebastian Dröge
c56251d673 Don't require a mutable self for TagSetterExtManual::add()
Like all GObjects, mutation works through interior mutability.
2017-12-23 11:43:09 +02:00
Sebastian Dröge
91d0723c1b Fix documentation links for gstreamer-base/net 2017-12-22 15:35:11 +02:00
Sebastian Dröge
4a5987d03d Update versions to 0.11.0 2017-12-22 15:06:06 +02:00