Commit graph

1490 commits

Author SHA1 Message Date
Sebastian Dröge
f01b590a0c gstreamer/bufferlist: Add bindings for foreach() and foreach_mut()
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/273
2020-07-03 10:28:47 +03:00
François Laignel
275d93e3d2 memory: fix typo 2020-07-02 17:46:20 +02:00
Sebastian Dröge
0cc32a02cc gstreamer/element: Don't catch panics in post_message() vfunc
Otherwise we would post a message, which calls into this code again and
then does the whole thing recursively forever.
2020-07-01 01:36:16 +03:00
Sebastian Dröge
4fbbf48622 gstreamer/element: Change post_message() vfunc return type to bool
It regularly fails in normal situations, e.g. when the element is not
inside a bin and has no bus, and we don't really want to log errors for
that.
2020-07-01 01:15:57 +03:00
Sebastian Dröge
9cc99b27e0 gstreamer/element: Let post_message() and post_error_message() take ownership of the message
This is more in line with the C API and simplifies callers in Rust.
2020-06-30 23:55:02 +03:00
Sebastian Dröge
71b83b7c84 base/aggregator: Mark new 1.18 vfuncs as only available from the version onwards
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/272
2020-06-30 23:46:51 +03:00
Sebastian Dröge
5b3d6418f0 gstreamer/element: Add support for overriding post_message vfunc 2020-06-30 23:46:51 +03:00
Sebastian Dröge
9911de6591 base/baseparse: Add support for overriding stop vfunc 2020-06-30 23:46:51 +03:00
Sebastian Dröge
03893f895c audio/sink,src: Add support for overriding reset vfunc 2020-06-30 23:46:51 +03:00
Sebastian Dröge
cc866b53d0 Call the parent impl of various vfuncs if not overridden
This was forgotten for a few types and would require each subclass to
implement them, even if a parent class already provided an
implementation.
2020-06-30 23:46:51 +03:00
Sebastian Dröge
dbc76f1053 gstreamer/miniobject: Remove DerefMut and AsMut impls
They were side-stepping the miniobject writability mechanism.
2020-06-30 15:23:50 +03:00
Sebastian Dröge
911bb34dc2 Don't generate LAST/NONE variants of flags types
Those are automatically provided already.
2020-06-30 11:35:49 +03:00
Sebastian Dröge
45402b5e95 Add specific version configurations for various enum/flags values
gobject-introspection does not support this yet so we have to do that
manually.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/271
2020-06-30 11:23:37 +03:00
Sebastian Dröge
af01f1bc67 gstreamer: Simplify MiniObject bindings by removing one layer of abstraction
And instead directly implementing this via the macro on the target
types.
2020-06-30 11:06:02 +03:00
Sebastian Dröge
947ac8db5c Name functions returning a builder builder(), not new()
And also make the video event API more consistent with the normal event
API.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/269
2020-06-25 19:42:33 +03:00
François Laignel
ddd3bbbf84 query: remove unused Jitter & Rate
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/532#note_548884
2020-06-25 10:48:25 +02:00
François Laignel
c94baa4fe8 query: add constructor on target types
... and deprecate the `Query::new_*` forms.
2020-06-25 10:48:25 +02:00
François Laignel
884e5e4e4a event: add constructor on target types
... and deprecate the `Event::new_*` forms.
2020-06-25 10:48:25 +02:00
François Laignel
f421d878b6 message: add constructor on target types
... and deprecate the `Message::new_*` forms.
2020-06-25 10:48:20 +02:00
Guillaume Desmottes
2f1b3306de video: properly version VideoFormat members
The C API is not safe when called on unknown formats.

Need to do this manually until gir gives us the version info:
https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/348

Fix #267
2020-06-24 14:55:27 +02:00
Guillaume Desmottes
2afcdfe79f video: remove 1.18 formats from VIDEO_FORMATS_ALL
This array is a fallback when using gst < 1.18 so it makes no sense
to include formats which have been introduced in 1.18
2020-06-24 14:14:45 +02:00
Guillaume Desmottes
03a240cf3f video: format: check for Nv12 instead of P016Be
The latter has been introduced in 1.18 making the test fail with older
gst.
2020-06-24 10:01:31 +02:00
Guillaume Desmottes
ac47c7bc1d video format:: disable sorting test with gst < 1.18
This test relies on a 1.18 specific fix
( 8e3c4a5d5a )
and is meant to check that future updates won't break the ordering.
2020-06-24 10:01:20 +02:00
Sebastian Dröge
07e786b44f gstreamer/pad: Add support for setting proxy pad functions on a ghost pad during construction 2020-06-22 21:20:20 +00:00
Sebastian Dröge
a80471747c gstreamer/pad: Borrow the pad when taking the stream lock
Instead of taking a new reference to the pad.
2020-06-22 11:48:56 +03:00
Sebastian Dröge
79c457c8c4 gstreamer/pad: Rename Pad::builder_from_template() to builder_with_template()
Sounds more natural as it creates a build that is initialized *with* a
template.

But keep Pad::from_template() as it creates a new pad *from* a template.
2020-06-22 11:26:24 +03:00
Sebastian Dröge
0c0d671922 gstreamer/pad: Don't provide constructors anymore but instead a builder
This handles safely setting the pad functions during construction and
also has special support for ghost pads.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/247
2020-06-22 10:55:24 +03:00
Sebastian Dröge
750f8f5bb5 gstreamer/pad: Don't allow changing a pad's template after construction
That's generally not a good idea and not safe to do.
2020-06-21 20:02:52 +03:00
Sebastian Dröge
059dc5b2cb gstreamer/object: Don't provide bindings for functions to modify an object name
It's generally not safe to change the object name after construction and
not really a good idea.
2020-06-21 20:02:52 +03:00
Sebastian Dröge
210e7c8777 gstreamer/pad: Mark pad function setters as unsafe
This is not thread-safe and changing the function at a bad time will
cause crashes or worse. It's only really safe to set the functions right
after construction of the pad before any other code can know about it.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/247
2020-06-21 20:02:52 +03:00
Sebastian Dröge
c68df282e8 gstreamer/caps: Fix clippy warning
No need to provide the field name if it's initialized with a variable of
the same name.
2020-06-21 20:02:52 +03:00
Sebastian Dröge
66069bcfa5 deny: Allow LGPL-2.0 license for the optional gstreamer-rs-lgpl-docs crate dependency
This is only pulled in when documentation build is enabled and thus
doesn't cause problems by pulling in an LGPL dependency.
2020-06-21 18:13:19 +03:00
Sebastian Dröge
801998c717 Generate documentation from the docs crate directly 2020-06-19 13:16:19 +03:00
Sebastian Dröge
70ee13db53 Convert documentation into a proper crate
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/258
2020-06-19 13:09:39 +03:00
Sebastian Dröge
740f668658 Update documentation 2020-06-19 13:09:39 +03:00
Sebastian Dröge
8dfbc9e811 Regenerate 2020-06-19 13:09:11 +03:00
Sebastian Dröge
2fd12a5ec1 Update symbol versions in the configuration that are missing from the .gir 2020-06-19 13:09:11 +03:00
Sebastian Dröge
2bd82b67f7 Update gir 2020-06-19 12:31:24 +03:00
Sebastian Dröge
d22b1b5981 gstreamer: Update num-rational dependency to 0.3 2020-06-18 13:06:20 +03:00
Sebastian Dröge
bfde1fd9d5 Update for new_with_XXX/new_from_XXX function renaming 2020-06-16 11:45:12 +03:00
François Laignel
04875f3bff video: Add bindings for VideoSink 2020-06-15 11:47:15 +02:00
Guillaume Desmottes
4b553c3ae7 ci: check commit using ci-fairy
See https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#checking-commits

In this setup it will check for any leftover fixup!/squash! commits and
that messages don't have the 'Signed-off-by:' tag.
2020-06-11 13:57:23 +00:00
Guillaume Desmottes
a954c03bc0 functions: rename constructors in manual API
The idiomatic way for Rust constructors is to be named from_XXX()
instead of new_from_XXX() and with_XXX() instead of new_with_XXX().

Fix #460
2020-06-11 12:33:52 +02:00
Guillaume Desmottes
7b2fe31cc1 update gir generator and regenerate 2020-06-11 12:33:49 +02:00
Guillaume Desmottes
6cd711cfdf subclass: clean up subclassing prelude/re-exports
Use re-export pattern from glib.

Fix #255
2020-06-09 14:36:37 +02:00
Guillaume Desmottes
1d886727d9 video: sort VIDEO_FORMATS_ALL
Test also ensures that the formats list returned by
gst_video_formats_raw() is properly sorted when running with feature
1.18.
2020-06-09 09:26:32 +02:00
Guillaume Desmottes
ae57524502 video: manually order VideoFormat and VideoFormatInfo 2020-06-09 09:26:32 +02:00
Guillaume Desmottes
bb065be349 audio: sort AUDIO_FORMATS_ALL
Test also ensures that the formats list returned by
gst_audio_formats_raw() is properly sorted when running with feature
1.18.
2020-06-09 09:26:32 +02:00
Guillaume Desmottes
a6faa83908 audio: manually order AudioFormat and AudioFormatInfo 2020-06-09 09:26:31 +02:00
Guillaume Desmottes
59cfdc5e1a ci: rebuild to update GStreamer
Need the new audio and video formats APIs.
2020-06-09 09:26:31 +02:00