Commit graph

1448 commits

Author SHA1 Message Date
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
Sebastian Dröge a56b3cb5a0 Update CHANGELOG.md for 0.15.7 2020-06-08 13:29:06 +03:00
Sebastian Dröge 79b748feb0 audio: Add bindings for AudioBuffer
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/222
2020-06-07 18:58:54 +03:00
Sebastian Dröge 0b74671f54 audio: Add bindings for AudioMeta
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/222
2020-06-07 18:58:54 +03:00
Sebastian Dröge be00953ec6 audio: Add AudioInfo::is_valid() and guard against finfo being NULL when retrieving the audio format 2020-06-07 18:58:54 +03:00
Sebastian Dröge cf33e0acd0 audio: Add bindings for audio_buffer_truncate() 2020-06-07 18:58:54 +03:00
Sebastian Dröge 78c1fed92d audio: Move audio_buffer_clip() to functions module 2020-06-07 18:58:54 +03:00
Sebastian Dröge 30d51f0ca6 video: Don't panic when passing an invalid video info to VideoMeta::add()
Instead return an error that can be handled by the caller.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/259
2020-06-07 18:58:54 +03:00
Sebastian Dröge 926ed2f53d video: Don't unmap VideoFrameRef created from a VideoFrame
Otherwise we're going to unmap it twice. Also add a test for the
different interactions.
2020-06-07 15:22:33 +00:00
Sebastian Dröge 4f5aceaa5a video: Check that the passed in video info is valid when creating a VideoFrame 2020-06-07 15:22:33 +00:00
Sebastian Dröge 6ed505401f video: Add VideoInfo::is_valid() and guard against finfo being NULL when retrieving the video format 2020-06-07 15:22:33 +00:00
Thiago Sousa Santos 4a2cb80c06 rtp_buffer: wrap more methods
* extension data
* onebyte/twobytes extension
* ssrc
* csrc
* get_payload
2020-06-06 07:03:29 +00:00
Guillaume Desmottes cac9767167 ci: rebuild image to update to Rust 1.44.0 2020-06-05 10:07:01 +02:00
jneem e7cb758ee3 README.md: Add remark about pkg-config in MSYS2
Mention (and link to) the known issue about the MSYS2 version of pkg-config.
2020-06-05 10:03:16 +03:00
Sebastian Dröge 22113dc9cb gstreamer/iterator: Store filter types in a hash table
Static variables in generic functions only exist once and not once per
type parameter, so before we were only able to register exactly one
filter type.
2020-06-04 12:36:03 +03:00
Sebastian Dröge 9b4117ea71 examples: Add an example that registers a custom GstMeta and makes use of it
The meta contains a Rust String as a label for the buffer. It is added
on buffers passed into an appsrc and retrieved from the buffers provided
by an appsink.
2020-06-04 12:07:05 +03:00
Mathieu Duponchelle 9f422c25d9 audio / video: export new formats iterators in preludes 2020-06-03 21:38:16 +02:00
Guillaume Desmottes d5cab61c93 audio: implement Iterator on AudioFormat
Also add AUDIO_FORMATS_ALL as public API.
2020-06-03 21:11:00 +03:00
Guillaume Desmottes 3ceb870790 audio: add API to build raw audio caps 2020-06-03 21:11:00 +03:00
Guillaume Desmottes 972002ceb2 video: implement Iterator on VideoFormat
Also add VIDEO_FORMATS_ALL as public API.
2020-06-03 21:11:00 +03:00
Guillaume Desmottes 9754147a30 video: add API to build raw video caps 2020-06-03 21:11:00 +03:00
Guillaume Desmottes 1b0a20e52f regenerate 2020-06-03 20:04:18 +03:00
Sebastian Dröge c417ee8a56 Update gir 2020-06-03 20:04:18 +03:00
Sebastian Dröge 843fd923af ges: BaseEffect is available since 1.2 even if all its functions are only since 1.18
There's a heuristic in the code generator to base the version on the
functions' versions if the type itself has none, simply because too many
libraries get this wrong. Let's override that here.
2020-06-03 17:08:01 +03:00
Sebastian Dröge d216757c23 webrtc: Generate DataChannel bindings 2020-06-03 17:08:01 +03:00
Guillaume Desmottes 842959e1d8 update gir-files 2020-06-03 12:50:03 +02:00
Guillaume Desmottes 737d998a54 ci: rebuild images to update gst
Will be needed to bind the new webrtc APIs.
2020-06-03 11:45:57 +02:00
Sebastian Dröge 9236ace284 video: Add VideoAffineTransformationMeta, CropMeta and RegionOfInterestMeta
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/218
2020-06-02 16:05:01 +03:00
Sebastian Dröge ede4588e0c gstreamer: Add bindings for ProtectionMeta 2020-06-02 16:05:01 +03:00
Guillaume Desmottes 5775e531d9 ci: rebuild images to update gst
Will be needed to bind the new audio and video caps APIs.
2020-06-02 14:22:05 +02:00
Sebastian Dröge 9dbddc9fef gstreamer: Allow calling various global functions before gst::init()
Including most debugging related functions.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/211
2020-06-01 07:27:51 +00:00
Sebastian Dröge f8d0d4f373 Update gir 2020-06-01 07:27:51 +00:00
Sebastian Dröge 8988e0daa8 deny: Allow libloading twice in the dependency tree
An older version is pulled in by the OpenGL example via glutin, and it
would have to be updated to a newer version of glutin to fix this. See
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/409
2020-05-29 11:43:25 +03:00
Jan Schmidt 6c876a5681 examples: Add a VideoOverlayComposition example
Replicate the pango-cairo cairooverlay example, but
drawing into a gst::VideoOverlayComposition using the
overlaycomposition element.
2020-05-29 02:58:47 +10:00
Jan Schmidt dd226e80f8 Add an example of setting up the VideoConvert API
Configure some custom cropping / scaling of a video frame
input to compositor via the converter-config property
and gst_video::VideoConverterConfig API.
2020-05-29 02:58:47 +10:00
Jan Schmidt 637a1ca670 examples: Add a custom event example.
Add an example of constructing and parsing a custom event using
a rust helper struct, and sending them / catching them in
a pipeline.
2020-05-29 02:58:47 +10:00
Sebastian Dröge e9317d0a48 Update CHANGELOG.md for 0.15.6 2020-05-28 15:51:43 +03:00
Sebastian Dröge 40c14ccc03 gstreamer: Update ron dependency to 0.6 2020-05-28 13:18:02 +03:00
Sebastian Dröge dbf6d1fd1a gstreamer/promise: Return a borrowed StructureRef for the reply from the Future
Prevents an usually unneeded copy of the structure.
2020-05-27 14:48:48 +03:00
Sebastian Dröge 9d851bfc48 gstreamer/promise: Allow resolving the Promise with None and handle None explicitly in the change function
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1300
2020-05-27 13:55:51 +03:00
Sebastian Dröge 7086a754be Add various glib::Value trait impls for borrowed versions of types
For SDPMessageRef, StructureRef and CapsFeatureRef this involves the
conversion from and to a glib::Value. Specifically this means that e.g.
a StructureRef can be retrieved from a glib::Value via borrowing, i.e.
without creating a copy of the structure first.

For all mini objects only retrieval from a glib::Value is implemented as
the other direction would allow to get multiple immutable references
from a mutable reference without borrowing, which is not allowed and
would make it possible to observe a mini object changing while having an
immutable reference to it.
2020-05-27 13:17:54 +03:00
Sebastian Dröge 0b3bfa7ea2 gstreamer/promise: Convert None promise replies to an empty structure in the change_func
webrtcbin likes to put a NULL structure into the reply under some
circumstances when the promise successfully resolved.

See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1300
for details.
2020-05-27 12:24:11 +03:00
Sebastian Dröge dfdf01b868 gstreamer/datetime_serde: Use glib::BoolError instead of a &'static str as TryFrom error type 2020-05-26 19:26:35 +03:00