Commit graph

1435 commits

Author SHA1 Message Date
Guillaume Desmottes
af65497c39 video: fix VideoFormat Display implementation
We were calling the blanket implementation of ToString, which is using
Display, rather than our own, resulting in an infinite recursion.

Fix #208
2019-06-18 17:11:24 +05:30
Sebastian Dröge
856a5a25e8 pbutils: Fix build after EncodingContainerProfileExt stopped being generated
It's a final type and there can't be any subclasses, so there should not
be any extension trait.
2019-06-18 14:01:52 +03:00
Sebastian Dröge
b87ffa17bb Run rustfmt also over all the generated code 2019-06-18 13:12:00 +03:00
Sebastian Dröge
e5aa6f59f9 Regenerate everything 2019-06-18 13:10:46 +03:00
Sebastian Dröge
93dc69f3f3 Add generator.py from gstreamer-rs-sys 2019-06-18 13:10:24 +03:00
Sebastian Dröge
8f6196c629 Add gir submodule 2019-06-18 13:07:04 +03:00
Guillaume Desmottes
c3ccec67eb video: turn VIDEO_MAX_PLANES to an usize
More convenient to use.
2019-06-18 13:30:59 +05:30
Guillaume Desmottes
840d1847a1 video: add VIDEO_MAX_PLANES constant 2019-06-18 10:57:58 +05:30
Guillaume Desmottes
491eaf3a73 video: VideoInfo: implement align() 2019-06-18 09:38:43 +05:30
Sebastian Dröge
4f024af7d6 gstreamer/serde: Fix compilation with serde feature enabled 2019-06-06 09:25:19 +03:00
Sebastian Dröge
d1e562b9f6 Explicitly add dyn keyword to trait objects
Trait objects without are deprecated with the latest nightly and this
makes it more clear that we're doing dynamic dispatch anyway.
2019-06-06 09:09:34 +03:00
Guillaume Desmottes
7a69a1137c gstreamer: plugin_feature: use Rank enum 2019-06-04 12:56:18 +03:00
Guillaume Desmottes
1cd733fb0b gstreamer: allow to register using Rank enum directly
Prevent user to have to cast to a u32 manually.
2019-06-04 12:50:43 +03:00
Sebastian Dröge
2c31baaa0c gstreamer: Implement Add<u32> for gst::TypeFindProbability and fix comparison
While the enum is a signed integer, all operations inside GStreamer
(especially comparison) is based on unsigned integers.
2019-06-04 12:45:56 +03:00
Sebastian Dröge
620a9b2a95 gstreamer: Implement Add<u32> for gst::Rank and fix comparison
While the enum is a signed integer, all operations inside GStreamer
(especially comparison) is based on unsigned integers.
2019-06-04 12:45:56 +03:00
Sebastian Dröge
d44c293753 Use TryFrom/TryInto traits where it makes sense instead of our previous ad-hoc solutions 2019-06-03 18:42:34 +03:00
Sebastian Dröge
fdb95f0033 gstreamer/format: Implement formatted value arithmetic with overflow checks
We have a value to represent invalid/overflow anyway, so let's make sure
that all operations are actually not overflowing and if they do we
assigned that value to the result.
2019-06-03 08:25:43 +00:00
Sebastian Dröge
fbcdf90386 gstreamer/format: Add various other arithmetic operation impls for the different formatted values
This includes gst::ClockTime.
2019-06-03 08:25:43 +00:00
Sebastian Dröge
b2ffe98d59 gstreamer/fraction: Add impls for various other arithmetic operations on fractions
Any arithmetic operation on plain values or references in any order
should be possible now, and on fractions with i32.
2019-06-03 08:25:43 +00:00
Guillaume Desmottes
c774bd8114 base: add bindings for GstBaseParse
Fix #157
2019-06-01 13:04:12 +05:30
Guillaume Desmottes
e9fbbc2b40 ci: bump minimum Rust version to 1.34
Needed for TryFrom.
2019-06-01 11:57:15 +05:30
Sebastian Dröge
e5d0afee02 video: Add pack/unpack func bindings 2019-05-28 09:26:44 +02:00
Sebastian Dröge
0147f03344 audio: Cast fewer points to *mut pointers in pack/unpack func bindings 2019-05-28 04:59:27 +02:00
Sebastian Dröge
1c1533d076 check: Fix compilation with v1_16 feature enabled 2019-05-28 04:46:41 +02:00
Sebastian Dröge
37071c9d60 gstreamer: Fix build with serde feature enabled 2019-05-28 04:35:12 +02:00
Sebastian Dröge
004ce5d392 gstreamer: Re-export the paste crate for the gst_plugin_define! macro
And only depend on the paste crate if the subclass feature is requested.
2019-05-27 22:46:26 +02:00
Sebastian Dröge
faa6467d7a gstreamer: Export new 1.14+ plugin symbols if configured for 1.14+
This is also needed for static linking on Android to work correctly.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/154
2019-05-27 20:22:05 +00:00
Arun Raghavan
61b1822c95 gstreamer: Fix URIHander::set_uri annotation
We don't actually accept a NULL uri, so it doesn't need to be an Option,
and using &str instead of String is more efficient.
2019-05-25 19:12:42 +02:00
Sebastian Dröge
4798b4bcc9 video: Don't require the input buffers of the video codec frames to be writable 2019-05-25 14:13:06 +02:00
Sebastian Dröge
bc082ba56c video: Don't unref video codec state in set_format() 2019-05-25 13:02:41 +02:00
Sebastian Dröge
be9434e029 video: Add finish() virtual function for video encoder/decoder 2019-05-25 11:25:56 +02:00
Sebastian Dröge
7a0bc76668 video: Add VideoEncoder bindings
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/160
2019-05-25 10:11:06 +02:00
Sebastian Dröge
4096869075 Update byte-slice-cast to 0.3 2019-05-24 13:26:49 +02:00
Vivia Nikolaidou
4a8e860a9e gstreamer-video: Expose VideoBufferPool
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/12
2019-05-24 10:32:57 +00:00
Vivia Nikolaidou
6461a3abaa buffer_pool: Add {get,set}_allocator bindings 2019-05-24 10:32:57 +00:00
Vivia Nikolaidou
32e1d68d36 allocator: Expose GstAllocator 2019-05-24 10:32:57 +00:00
Vivia Nikolaidou
922af1d606 Add GstMemory bindings
Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/12
2019-05-24 10:32:57 +00:00
Vivia Nikolaidou
044d931d01 flags: Expose GstMemoryFlags 2019-05-24 10:32:57 +00:00
Sebastian Dröge
059860c744 Allow clippy job to fail in the CI for now 2019-05-24 10:04:16 +00:00
Sebastian Dröge
b5dcbe3897 gstreamer/proxypad: Move default functions to extension trait 2019-05-24 10:04:16 +00:00
Sebastian Dröge
86e969d964 Remove various Into<Option<_>> trait bounds from functions
In autogenerated code these were already replaced but some manual code
still kept them.
2019-05-24 10:04:16 +00:00
Sebastian Dröge
6cef32a4dd Change various mini object references to references to the refcounted object
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/204
2019-05-24 10:04:16 +00:00
Sebastian Dröge
e6f65a5032 gstreamer/miniobject: ToOwned::to_owned() on references has to create a copy
Otherwise it's possible to create a new owned reference from a mutable
reference, and then there is a mutable and immutable reference to the
same data at the same time, which is simply not allowed.

https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/204
2019-05-24 10:04:16 +00:00
Guillaume Desmottes
c766f16403 video: add GST_BUFFER_POOL_OPTION_VIDEO_*_META constants 2019-05-23 15:10:42 +02:00
Guillaume Desmottes
47121fe9d6 gstreamer-video: VideoDecoder bindings
The VideoCodecFrame and VideoCodecState is C API is unfortunatelly unsafe
by design. So we workarounded it by ensuring the decoder stream lock was
hold while user has a writable reference on those objects.

Based on previous work from Thibault Saunier and Philippe Normand.

Fixes #161
2019-05-22 20:40:57 +00:00
Sebastian Dröge
a986914bad Use Option<&T> instead of &Option<T> everywhere
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/203
2019-05-22 23:27:13 +03:00
Víctor Manuel Jáquez Leal
32d7f42d67 Remove unused extern crates
Latest versions of nightly rust compiler can detect unused extern
crates, and this commit removes those marked as unused.
2019-05-17 09:34:46 +00:00
Jan Alexander Steffens (heftig)
5398a80a73
gstreamer/pad: Add a probe test 2019-05-16 18:17:15 +02:00
Jan Alexander Steffens (heftig)
d470881ac2
gstreamer/pad: Handle PadProbeReturn::Handled more correctly
If the probe returns Handled and the data was a Buffer we need to ensure
it was consumed. Queries need to be returned. The behavior of Handled
for other probes is not clear.
2019-05-16 16:55:02 +02:00
Jan Alexander Steffens (heftig)
d5317cccdd
gstreamer/pad: Expose the flow_ret value in PadProbeInfo
This is present since GStreamer 1.5.90 so no feature flags needed.
2019-05-16 16:55:02 +02:00