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
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
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
801998c717
Generate documentation from the docs crate directly
2020-06-19 13:16:19 +03:00
Sebastian Dröge
8dfbc9e811
Regenerate
2020-06-19 13:09:11 +03:00
François Laignel
04875f3bff
video: Add bindings for VideoSink
2020-06-15 11:47:15 +02: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
Sebastian Dröge
a56b3cb5a0
Update CHANGELOG.md for 0.15.7
2020-06-08 13:29:06 +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
Mathieu Duponchelle
9f422c25d9
audio / video: export new formats iterators in preludes
2020-06-03 21:38:16 +02: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
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
e9317d0a48
Update CHANGELOG.md for 0.15.6
2020-05-28 15:51:43 +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
f0e12bbf24
video/videoconverter: Add TryFrom<Structure> and inverse From impl for VideoConverterConfig
...
Allows converting between both types interchangebly.
2020-05-26 19:26:35 +03:00
Mathieu Duponchelle
02a43819a7
gstreamer-video: expose caps features
2020-05-22 21:31:45 +02:00
Sebastian Dröge
31313fb5c8
video: Add bindings for guess_framerate()
2020-05-20 09:52:03 +03:00
Sebastian Dröge
8029d85232
video: Add bindings for calculate_display_ratio()
2020-05-20 09:52:03 +03:00
Sebastian Dröge
4097c15c96
Don't include LGPL docs in the docs if both embed-lgpl-docs and purge-lgpl-docs features are selected
...
This makes usage of RLS/rust-analyzer on the repository much faster and
less annoying as the docs don't have to be included and removed on every
change.
2020-05-14 10:44:58 +03:00
Sebastian Dröge
781c5785b1
Regenerate
2020-05-05 17:29:14 +00:00
Vivia Nikolaidou
ec4a43be89
Regenerate
2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
e986119df6
Update Cargo.toml to 1.18
2020-05-03 16:48:35 +03:00
Vivia Nikolaidou
4718f72fed
gstreamer-video/video_encoder: Manually implement finish_subframe
2020-05-03 16:48:35 +03:00
Sebastian Dröge
1be8ec691e
gstreamer-video: Add support for the AFD and Bar metas
2020-05-03 16:48:35 +03:00
Sebastian Dröge
3192d74389
Update CHANGELOG.md for 0.15.5
2020-05-03 10:17:18 +03:00
Vivia Nikolaidou
118c7d4ad9
Regenerate
2020-04-30 17:16:23 +03:00
Guillaume Desmottes
a6c20922ff
update documentation links
2020-04-28 11:17:24 +02:00
Sebastian Dröge
6e431ce060
Run everything through rustfmt again
...
It got some improvements for applying consistent formatting to code
blocks in macros.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/468 >
2020-04-24 12:46:16 +03:00
Sebastian Dröge
47cc80b1ef
video: Assert if caption data passed when adding caption metas is empty
...
It will cause a critical warning otherwise.
2020-04-22 21:42:39 +03:00
Sebastian Dröge
78a81e2c73
gstreamer-video: ValidVideoTimeCode::add_interval() is guaranteed to return a valid timecode again
...
So change the return type from VideoTimeCode to ValidVideoTimeCode.
2020-04-14 17:24:11 +03:00
Sebastian Dröge
5021994237
Regenerate everything
2020-04-13 19:11:33 +03:00
Sebastian Dröge
76a0410d41
Replace unneeded transmute calls with a safer alternative
2020-04-12 19:47:49 +03:00
Sebastian Dröge
d1665b8114
Regenerate with latest gir
2020-04-12 18:55:06 +03:00
Guillaume Gomez
c07fe14191
gstreamer*: Add missing init checks
2020-04-12 17:25:54 +03:00
Sebastian Dröge
62e9af58c6
Fix some clippy warnings
2020-04-11 21:18:18 +03:00
Sebastian Dröge
62c0f5ef42
Use mem::ManuallyDrop instead of mem::forget() everywhere
...
It makes the intentions clearer and potentially results in simpler
assembly, at least in debug builds.
2020-04-09 16:57:06 +03:00
Sebastian Dröge
019afd54f9
Update for new from_glib_borrow signature
...
See https://github.com/gtk-rs/glib/pull/605
2020-04-05 18:48:48 +03:00
Sebastian Dröge
0651bfb51b
gstreamer-audio/video: Make allocator optional in get_allocator() functions for encoder/decoder base classes
...
They can be and are often None.
2020-04-02 19:58:42 +03:00
Sebastian Dröge
755ef9da33
Update CHANGELOG.md for 0.15.4
2020-03-10 10:57:33 +02:00
Sebastian Dröge
e585b37923
Update CHANGELOG.md for 0.15.3
2020-02-15 15:23:12 +01:00
Sebastian Dröge
a2a1a87c46
video/video-info: Don't use bool return of gst_video_info_set_format()/align() when running with GStreamer < 1.11.1
...
The bool return value was added in 1.11.1 and using the return value
with older versions gives a random value that might be true or false,
and then causes spurious errors.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/236#note_399872
2020-02-14 13:12:41 +01:00
Sebastian Dröge
80c93dfddb
video: Add Future variant of convert_sample_async()
...
Requires to be spawned on the GLib main context futures executor as the
function itself requires a GLib main context to call the callback.
2020-02-09 19:08:41 +02:00
Sebastian Dröge
53dd841006
video: Add VideoConverter bindings
2020-01-30 23:17:06 +02:00
Sebastian Dröge
3c10986222
video: Autogenerate bindings for a few more enums
2020-01-30 23:12:07 +02:00
Sebastian Dröge
0b16556d9b
video/video-frame: Implement immutable frame functions more generically
2020-01-30 23:11:12 +02:00
Sebastian Dröge
5102bfd324
Update CHANGELOG.md for 0.15.2
2020-01-30 00:40:56 +02:00
Sebastian Dröge
0bd2903896
Update CHANGELOG.md for 0.15.1
2020-01-23 08:28:19 +02:00
Sebastian Dröge
7230aee069
Switch everything from lazy_static to once_cell::Lazy
...
Fewer macros, faster compile-time and the Lazy type will likely end up
in the standard library in a similar form to this.
2020-01-22 19:57:41 +02:00
Sebastian Dröge
196a9891cb
Regenerate with latest gir
...
This switches the RTP constant strings over to once_cell::Lazy
2020-01-22 19:57:41 +02:00
Sebastian Dröge
d3c77f400d
Don't derive Debug impls for generic types where the type parameters don't have to impl Debug themselves
...
This allows to use MappedBuffer and similar types to be properly
debug-printed.
Also change VideoFrame/VideoFrameRef/RTPBuffer from a tuple struct to a
struct with proper field names to make the code easier to understand.
2020-01-22 19:10:04 +02:00
Sebastian Dröge
a418dcbe05
video: Use static inner lifetime for VideoCodecState<Readable>
...
It does not borrow from anything else and can be safely stored away.
Only the VideoCodecState<InNegotiation> is actively borrowing from the
element to ensure that it is only modified during negotiation in a safe
way.
2019-12-23 13:07:05 +02:00
Sebastian Dröge
69be1ce2fc
Fix various new clippy warnings from 1.40
2019-12-22 12:10:27 +02:00
Sebastian Dröge
d26ffc2c21
Update version to 0.16.0
2019-12-19 00:48:08 +02:00
Sebastian Dröge
bb321f7fa8
Update CHANGELOG.md for 0.15.0
2019-12-18 19:15:21 +02:00
Sebastian Dröge
573055cb1e
gstreamer-video: Require &mut self for VideoCodecFrame functions that modify it
...
And add non-mutable getters for input/output buffer
2019-12-18 18:42:40 +02:00
Sebastian Dröge
2ba5105b80
Implement Sync/Send for more types and don't implement Send for TypeFind
...
They can actually be shared with multiple threads at the same time
safely as all functions requiring an immutable reference are
thread-safe.
OTOH TypeFind can't be shared safely between different threads as not
all implementations of the TypeFind struct are thread-safe.
2019-12-18 18:37:44 +02:00
Sebastian Dröge
be3c378f28
Use Results instead of Options where they signal an error instead of just a missing value
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/216
2019-12-17 22:21:28 +02:00
Tony Jinwoo Ahn
700332dd3e
gstreamer-video: Change functions from returning Option to Result
...
Partial work for:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/216
2019-12-17 08:41:51 +00:00
Tony Jinwoo Ahn
62c0b689a6
gstreamer-base/{adapter,functions}, gstreamer-video/video_info: Change functions from returning Option to Result
...
Partial work for:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/216
2019-12-16 11:29:51 +00:00
Sebastian Dröge
eaafbd14f7
Regenerate
2019-12-15 12:19:33 +02:00
Tony Jinwoo Ahn
3e3c5205db
gstreamer-video/video_info: Change functions from returning Option to Result
...
Partial work for:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/216
2019-12-15 08:36:56 +00:00
Sebastian Dröge
f417d68820
Remove usage of glib_floating_reference_guard!()
...
It's not needed anymore.
2019-12-07 23:05:14 +02:00
Sebastian Dröge
175863668d
Regenerate everything with latest gir
2019-11-21 09:52:51 +02:00
Philippe Normand
80e01dbe3c
video: Simplify VideoMeta::add_full()
...
The n_planes value can be infered from the offset and stride slices size, which
both need to match.
Fixes #224
2019-11-18 18:15:03 +00:00
Sebastian Dröge
8b687ab4a7
Remove header from the README.md about the move from github to gitlab
...
At this point everybody should've noticed.
2019-11-14 10:21:02 +00:00
Guillaume Gomez
9e30687d8e
Fix glib reexports
2019-11-11 11:34:09 +01:00
Guillaume Gomez
457ac9118b
Regenerate with latest gir
2019-11-11 11:34:09 +01:00
Sebastian Dröge
452ea45c1b
video: Actually export is_video_overlay_prepare_window_handle_message() function
2019-10-29 19:40:32 +02:00
Sebastian Dröge
8dcf3fec20
gstreamer: Change Sample constructor to the builder pattern
...
Simplifies construction of Samples considerably.
2019-10-23 09:55:56 +03:00
Sebastian Dröge
2d2459ed52
Export traits from the crate level and ensure that all traits are in the preludes
2019-10-17 13:30:35 +03:00
Sebastian Dröge
132eb891ed
Fix dox feature and docs.rs Cargo.toml metadata
2019-10-05 00:13:29 +03:00
Sebastian Dröge
991f2e1576
Update and regenerate everything with latest gir
2019-10-05 00:03:57 +03:00
Sebastian Dröge
06cfcd57fc
Move to_string() methods into the Display trait or rename to to_str(), move from_string() into the FromStr trait
...
Fixes clippy warnings, prevents confusing errors and is more consistent.
The Display trait provides a to_string() method by itself and FromStr
provides from_str().
2019-10-04 11:01:55 +03:00
Sebastian Dröge
fc0fc99d1c
audio/video: Fix some clippy warnings
...
warning: use of `unwrap_or` followed by a function call
--> gstreamer-audio/src/subclass/audio_encoder.rs:360:18
|
360 | .unwrap_or(element.proxy_getcaps(None, filter))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| help: try this: `unwrap_or_else(|| element.proxy_getcaps(None, filter))`
2019-09-24 15:03:45 +03:00
Sebastian Dröge
79d3888c3d
Update CHANGELOG.md for 0.14.5
2019-09-17 15:41:12 +03:00
Sebastian Dröge
c19c9b1d8a
audio/video: Add decoder base class error macros
2019-09-15 11:44:08 +03:00
Sebastian Dröge
1348127ca8
audio/video: proxy_getcaps() can't return None and get_caps() vfuncs must not return None
2019-09-14 11:05:55 +03:00
Sebastian Dröge
bddb49443d
audio/video: Use proxy_getcaps() function for default handling of getcaps() vfunc
2019-09-14 11:01:50 +03:00
Sebastian Dröge
ea95d1e479
video: Add support for VideoDecoder::drain() vfunc
2019-09-13 23:04:10 +03:00
Sebastian Dröge
8160521574
video: Add support for getcaps(), negotiate(), src/sink_query/event() vfuncs in VideoEncoder/Decoder
2019-09-13 22:59:31 +03:00
Sebastian Dröge
4c52996fc8
video: Return NotNegotiated if setting the output state fails
2019-09-13 22:59:31 +03:00
Sebastian Dröge
2d5b6de590
video: Add VideoEncoder/VideoDecoder::get_allocator()
2019-09-13 22:59:31 +03:00
Sebastian Dröge
52509b4b95
Remove subclassing feature and make it the default
2019-09-09 11:51:07 +03:00
Sebastian Dröge
ea367bac14
Fix or ignore various clippy warnings
...
And ignore some common warnings we don't care about in general, while
also making clippy errors fail the build.
2019-09-07 19:39:19 +03:00
Sebastian Dröge
f050750b5e
Update CHANGELOG.md for 0.14.4
2019-08-14 22:48:16 +03:00