Sebastian Dröge
fdd21b9a2a
video/timecode: Fix compilation of tests with target API < 1.16
2021-02-13 13:35:55 +02:00
Sebastian Dröge
50cffb0f7a
video/timecode: Use mem::ManuallyDrop to prevent a double unref of the daily jam
...
As ffi::GstVideoTimeCode implements Copy, assignments don't move it out
of the passed in value but just copy it. This doesn't increase the
reference count of the daily jam, still runs the Drop impl of the passed
in value to decrease the daily jam and then causes a second unref of it
later when the returned value is dropped.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/310
2021-02-13 13:35:55 +02:00
Marijn Suijten
ae51a2f49c
video/time_code_interval: Correct set_frames parameter name
...
Aesthetics.
2020-12-20 19:56:06 +02:00
Marijn Suijten
26bfd5b98c
video/time_code_interval: Ord cmp minutes to other.minutes, not hours
...
Same mistake as the previous commit. Clipppy didn't find this one though
:)
2020-12-20 19:55:59 +02:00
Marijn Suijten
4157bb6c16
video/time_code_interval: Do not compare minutes to hours in PartialEq
...
Clippy nightly is becoming surprisingly smart these days:
warning: This sequence of operators looks suspiciously like a bug.
--> gstreamer-video/src/video_time_code_interval.rs:66:16
|
66 | && self.0.minutes == other.0.hours
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: I think you meant: `self.0.minutes == other.0.minutes`
|
= note: `#[warn(clippy::suspicious_operation_groupings)]` on by default
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_operation_groupings
2020-12-20 19:55:44 +02:00
Guillaume Desmottes
409608a7fb
video: implement Eq and PartialEq on VideoAlignment
2020-12-20 19:53:53 +02:00
Guillaume Desmottes
18af63beac
video: add alignment API to VideoMeta
2020-12-20 19:53:53 +02:00
Guillaume Desmottes
87dc92ff4a
video: add VideoInfo::align_full()
2020-12-20 19:51:43 +02:00
Guillaume Desmottes
b7bfcb2094
video: add VideoMeta::get_plane_{height,size}
...
Fix #299
2020-12-20 19:49:42 +02:00
Sebastian Dröge
7d8f95971c
video/timecode: Use stringify!($name) instead of "$name" in Debug impl
...
Otherwise it would output a literal "$name" string.
2020-11-23 12:22:01 +02:00
Sebastian Dröge
8c4ebdec1e
Use repr(transparent) where it is more correct and get rid of some unneeded repr(C)
2020-11-23 12:22:01 +02:00
Sebastian Dröge
5f63ee9912
Remove unneeded PhantomData markers
...
And as a side-effect also get rid of the lifetime parameter of
gst::TypeFind that was completely unused anyway.
2020-11-23 12:22:01 +02:00
Sebastian Dröge
b32fc568da
gstreamer/audio/video: Correctly implement ExactSizeIterator
...
len() is optional but size_hint() must return the correct values. Also
this shouldn't return the overall length but the remaining length.
2020-10-09 12:03:21 +03:00
Sebastian Dröge
68c2b19680
video: Rename VideoTransferFunction functions
2020-09-08 17:14:37 +03:00
Sebastian Dröge
6b6fae51cd
Regenerate everything
2020-09-08 17:14:37 +03:00
Sebastian Dröge
a6253a1f77
video/video_frame: Allow getting an owned buffer from readable video frames
...
In all other variations this is not possible as it would allow to
circumvent the mini object writability rules.
2020-08-11 13:36:54 +03:00
Sebastian Dröge
a0887f197f
Add various new 1.18 APIs
2020-08-11 12:43:57 +03:00
Sebastian Dröge
2624e2a6d1
Regenerate everything
2020-08-11 12:43:57 +03:00
Sebastian Dröge
448c1e10a0
Regenerate
2020-07-06 13:01:57 +03:00
Sebastian Dröge
e3667fd8d2
video/video_info: Add field_height() function
2020-07-03 13:10:28 +03:00
Sebastian Dröge
5845038a63
video: Use correct version for interlaced caps feature
2020-07-03 13:00:07 +03:00
Sebastian Dröge
2db7b8ebcc
video: Use correct versions of primaries/transfer function enums
2020-07-03 12:23:32 +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
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
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
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
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