Commit graph

1446 commits

Author SHA1 Message Date
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
Sebastian Dröge
5eb1dbd93e video/videoinfo: Use a proper error type in the TryFrom<VideoMultiviewMode> impl for VideoMultiviewFramePacking 2020-05-26 19:26:35 +03:00
Sebastian Dröge
d417656707 Use thiserror more widely for deriving Error/Display impls of error types 2020-05-26 19:26:35 +03:00