Commit graph

1210 commits

Author SHA1 Message Date
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
Jan Alexander Steffens (heftig)
061683af7b
gstreamer/pad: Assert post-probe data did not become None
GStreamer does not allow the probe to consume the reference here.
2019-05-16 16:55:02 +02:00
Jan Alexander Steffens (heftig)
706fb66f0b
gitignore: Ignore any target folder, not just in the root 2019-05-16 16:55:02 +02:00
Guillaume Desmottes
94d4c5b42d buffer: display metas in Debug
Fix #201
2019-05-16 14:45:55 +02:00
Sebastian Dröge
0c0c056770 ges: Update bindings to 1.16.0 2019-05-16 01:54:10 +03:00
Sebastian Dröge
6071c68ab6 video: Add support for VideoCaptionMeta 2019-05-16 00:35:19 +03:00
Sebastian Dröge
e9edb8ddca sdp: Add SDPMessage::get_media_mut() and ::medias_mut()
This allows getting mutable references to the medias so that they can be
modified, which is allowed by the C API and safe to do.
2019-05-15 17:15:41 +03:00
Artem
0bd22b2b05 Add missing license files
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/merge_requests/255
2019-05-13 10:10:51 +02:00
Vivia Nikolaidou
496fc61873 pipeline: Add to lib.rs 2019-05-12 16:41:18 +03:00
Sebastian Dröge
698120c620 Add tests for pad and element subclassing 2019-05-11 13:45:09 +00:00
Sebastian Dröge
c282f34c74 bus: Fix naming for filtered pop functions 2019-05-11 13:45:09 +00:00
Vivia Nikolaidou
1a65c674a9 Add unset_*_flags functions
Implemented for element, object, pad, and pipeline

https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/104
2019-05-11 15:51:33 +03:00
Vivia Nikolaidou
6403c06990 Add API for setting/getting object flags
Implemented for Object, Pipeline, Bin, Element, Plugin.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/104
2019-05-11 13:13:33 +03:00
Vivia Nikolaidou
9067b500c8 enums: Removed MessageType::Any 2019-05-11 11:45:12 +03:00
Vivia Nikolaidou
05d936fcee gstreamer: Add binding for GstMessageType and gst_bus_timed_pop_filtered
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/168
2019-05-10 19:35:13 +03:00
Guillaume Desmottes
05519219ef buffer_pool: use to_glib_none() to cast BufferPoolAcquireParams 2019-05-07 13:30:00 +05:30
Guillaume Desmottes
fca4441a72 buffer_pool: implement ToGlibPtr and ToGlibPtrMut for BufferPoolAcquireParams
I'll use them to bind
gst_video_decoder_allocate_output_frame_with_params()
2019-05-07 10:28:25 +05:30
Jordan Petridis
3bf853e42f CI: only build with all-features on nightly
glib has a futures feature that only works on nighty
and there is no easy to exclude a feature without specifying
every other feature.
2019-05-03 22:35:30 +03:00
Jordan Petridis
bc355ea3ee CI: refactor to use 'extends' instead of anchors 2019-05-03 22:35:30 +03:00
Sebastian Dröge
5f1a50026d Update futures code to futures 0.3
Also clean it up a bit.
2019-05-02 21:35:12 +03:00
Sebastian Dröge
2b122a20c5 examples/glupload: Fix segmentation fault by ensuring the glutin context stays alive longer than the GStreamer GL display
Otherwise the GL display might still use a Wayland display that is
already freed.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/196
2019-04-29 15:43:51 +03:00
François Laignel
bf96e264c9 gstreamer: Fix test for toc serialization
Ron changed the way it outputs empty arrays with version `0.5`.
2019-04-24 19:04:40 +03:00
Sebastian Dröge
4af06f0dd2 examples/glupload: Clean up considerably and port to glutin 0.21 2019-04-24 16:07:15 +03:00
Sebastian Dröge
d460310ed1 appsink: Properly mark appsink callbacks as Send-only
They can only be called from a single thread at a time, unlike some of
the appsrc callbacks.

This change was partially done in 062403bdac
but a part was missing.
2019-04-24 15:44:55 +03:00
Sebastian Dröge
044e3985a3 Update dependencies 2019-04-24 09:45:56 +03:00
Sebastian Dröge
b2b8bfab52 Add manual implementations for various new 1.16 functions 2019-04-23 20:45:39 +03:00