Sebastian Dröge
280433ebc1
video/timecode: Comment out spurious #[cfg] attribute and remove its duplicate
2021-02-04 11:19:54 +02:00
Sebastian Dröge
e1a964fb00
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-04 10:55:43 +02:00
Marijn Suijten
fb55cdfeff
Remove allow(unused_imports)
from mod auto
...
gir has been fixed to omit all unnecessary imports from objects, enums
and flags which currently are the only offenders of this linter warning.
Hence disallow this warning from now on which is anyway not applied to
every crate - like gstreamer-gl - where such issues have been uncovered.
2021-01-30 15:49:49 +01:00
Marijn Suijten
1ffa02fc1f
Update gir to c85699a with import cleanups; regenerate
...
Apply import cleanups from https://github.com/gtk-rs/gir/pull/1043 ,
omitting `use` statements where unnecessary or guarding them with
versioning constraints to prevent `unused_imports` warnings.
Removes unnecessary `mut_override` with
https://github.com/gtk-rs/gir/pull/1044 as well.
2021-01-30 15:49:38 +01:00
Sebastian Dröge
927cca106d
Use async/await in a few places and reduce dependencies as a result
2021-01-14 15:25:03 +02:00
Sebastian Dröge
835273923e
Update itertools to 0.10
2021-01-09 12:49:32 +02:00
Sebastian Dröge
3428e5c0c7
Update CHANGELOG.md for 0.16.6
2020-12-20 20:50:51 +02:00
Sebastian Dröge
477b00cce8
Update CHANGELOG.md for 0.16.5
2020-12-20 20:50:48 +02:00
Sebastian Dröge
68839c0e79
Re-export all dependency crates and their preludes
...
This makes code in examples potentially simpler.
2020-12-20 19:40:34 +02:00
Sebastian Dröge
53aae7ddba
Remove gst_ prefix from all macros except for the logging macros
...
The latter stay e.g. gst_debug! to be more clear and not conflict with
e.g. the debug! macro from the log crate.
2020-12-20 19:40:34 +02:00
Marijn Suijten
62436aa8d3
video/time_code_interval: Correct set_frames parameter name
...
Aesthetics.
2020-12-19 12:54:37 +01:00
Marijn Suijten
6e119b7256
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-19 12:54:21 +01:00
Marijn Suijten
5740a70dd2
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-19 12:51:58 +01:00
Guillaume Gomez
2f0e386037
Regen with more doc alias for enums and consts
2020-12-18 15:23:05 +01:00
Sebastian Dröge
ce1148b474
Update everything for glib macro renamings
2020-12-18 00:56:47 +02:00
Sebastian Dröge
d0b0006d27
Regenerate
2020-12-18 00:34:53 +02:00
Sebastian Dröge
38b94abc59
Add COPYRIGHT file as links into all crates and change LICENSE files to links too
2020-12-16 12:49:49 +02:00
Guillaume Gomez
ff5a36561a
Fix license header situation
2020-12-15 11:53:31 +01:00
Marijn Suijten
85e46f39f3
video: Provide manual to_string and display for VideoChromaSite
...
This function was named wrong before 1.20, and its return transfer type
changed from none to full. To provide
Note that, when 1.20 Gir files are imported, this `version` override in
gstreamer-video/Gir.toml wil come into effect and create a Display trait
for us (without version constraint). At that point the manual Display
impl should be removed, but the manual to_string implementation remains.
2020-12-12 20:28:37 +01:00
Marijn Suijten
a215610167
audio/video: Update to v1.20 functions
2020-12-12 19:43:02 +01:00
Marijn Suijten
132477f51f
cargo.toml: Add v1_20 feature to all crates
2020-12-12 13:17:20 +01:00
Marijn Suijten
0ff16c589f
Regenerate sys Cargo.toml with 1.20 version
2020-12-12 13:17:03 +01:00
Marijn Suijten
1d726d6a1e
gir.toml: Add 1.20 to extra_versions
2020-12-12 13:15:11 +01:00
Guillaume Gomez
fb56af8d84
Update from_glib calls and put them in unsafe blocks
2020-12-08 15:50:15 +01:00
Guillaume Gomez
959568f124
regen
2020-12-08 14:00:17 +01:00
Marijn Suijten
bb8e7c3e8f
audio/video: Fix more unused imports
...
TODO: How about use glib::translate::*;?
2020-12-07 12:12:16 +01:00
Marijn Suijten
82b4726bb7
impl FromStr: Forward implementation to autogenerated from_string()
2020-12-07 12:12:16 +01:00
Marijn Suijten
a7348023a0
video: Add test cases for enum to_string
2020-12-07 12:12:16 +01:00
Marijn Suijten
040772ab61
audio,video: Manual enum to_string returns 'static; add NULL check
2020-12-07 12:12:16 +01:00
Marijn Suijten
9ff39bae6f
audio,video: Use autogenerated Display impl
2020-12-07 12:12:16 +01:00
Marijn Suijten
c215acb7f9
audio,video: Delete manual implementations for now-autogenerated enum funcs
2020-12-07 12:12:16 +01:00
Marijn Suijten
15d8774e6b
Update gir to 1c1a8d7 and regenerate with associated enum/flag functions
2020-12-07 12:11:27 +01:00
Marijn Suijten
1b1a99b320
audio,video: Use manual implementations for fns using *Endianness
...
{Audio,Video}Endianness is an enumeration to represent the two possible
values in Rust but this enumeration does not exist as such in C, where
it is merely an integer with some constants defining possible values.
2020-12-07 12:09:39 +01:00
Marijn Suijten
604902ed7c
audio,video: Ignore *Format::get_info
...
The result is not nullable, and this function call can be substituted by
*FormatInfo::from_format().
2020-12-07 12:09:39 +01:00
Marijn Suijten
c95bd4f47a
video: Implement get_kr_kb manually to fix capitalization
...
Capitalization is wrong in function and parameter/variable names:
warning: method `get_Kr_Kb` should have a snake case name
--> gstreamer-video/src/auto/enums.rs:515:12
|
515 | pub fn get_Kr_Kb(&self) -> Option<(f64, f64)> {
| ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `get_kr_kb`
|
= note: `#[warn(non_snake_case)]` on by default
warning: variable `Kr` should have a snake case name
--> gstreamer-video/src/auto/enums.rs:518:21
|
518 | let mut Kr = mem::MaybeUninit::uninit();
| ^^ help: convert the identifier to snake case (notice the capitalization): `kr`
warning: variable `Kb` should have a snake case name
--> gstreamer-video/src/auto/enums.rs:519:21
|
519 | let mut Kb = mem::MaybeUninit::uninit();
| ^^ help: convert the identifier to snake case (notice the capitalization): `kb`
warning: variable `Kr` should have a snake case name
--> gstreamer-video/src/auto/enums.rs:525:17
|
525 | let Kr = Kr.assume_init();
| ^^ help: convert the identifier to snake case (notice the capitalization): `kr`
warning: variable `Kb` should have a snake case name
--> gstreamer-video/src/auto/enums.rs:526:17
|
526 | let Kb = Kb.assume_init();
| ^^ help: convert the identifier to snake case (notice the capitalization): `kb`
2020-12-07 12:09:39 +01:00
Marijn Suijten
736f58a631
audio,video: Mark to_string functions on "unknown"-enum as manual
2020-12-07 12:09:39 +01:00
Marijn Suijten
57bc1c7f42
audio,video,gl,webrtc: Mark manually-confirmed to_string fns as non-NULL
...
These functions have been checked to never return NULL. The overrides
can hopefully be gone again when C contains better annotations and
trust_return_value_nullability is enabled.
2020-12-07 12:09:39 +01:00
Marijn Suijten
d9769aeb6a
audio/video: Add missing FromGlibPtrNone<*const> for FormatInfo
2020-12-07 12:09:39 +01:00
Marijn Suijten
0763d2645d
video: Reuse Self::Err in from_str
2020-12-07 12:09:39 +01:00
Marijn Suijten
2447664df6
Replace Result<(), fmt::Error> with fmt::Result
2020-12-07 12:09:39 +01:00
Marijn Suijten
584a87163f
video/video_meta: get_plane_size now takes a size-annotated array ptr
2020-12-04 19:37:10 +01:00
Marijn Suijten
47102b0e76
Regenerate with fresh gir files
2020-12-04 19:34:09 +01:00
Guillaume Desmottes
8b9ef8b109
video: add alignment API to VideoMeta
2020-12-03 16:39:40 +01:00
Guillaume Desmottes
c529d4d4ae
video: add VideoInfo::align_full()
2020-12-03 16:39:40 +01:00
Guillaume Desmottes
e404d4f213
video: VideoInfo::align(): return a Result
2020-12-03 16:39:40 +01:00
Guillaume Desmottes
7cc57f4164
video: implement Eq and PartialEq on VideoAlignment
2020-12-03 16:39:35 +01:00
Guillaume Desmottes
6fbe7a1739
video: add VideoMeta::get_plane_{height,size}
...
Fix #299
2020-12-03 12:15:51 +01:00
Marijn Suijten
9577965782
sys/Gir.toml: Drop default target_path in current directory
2020-11-28 11:07:48 +01:00
Marijn Suijten
a87cc4c3a3
cargo: Update ffi crate paths to direct "./sys" subdirectory
2020-11-28 11:05:51 +01:00
Guillaume Gomez
8f9d76bb8c
Revert "Remove unnecessary dox feature"
...
This reverts commit 9dd8bd9095
.
2020-11-27 14:37:49 +01:00
Guillaume Gomez
2d87561193
Revert "Remove unnecessary dox feature in cargo files"
...
This reverts commit 128b3b251e
.
2020-11-27 14:37:40 +01:00
Guillaume Gomez
7daac635c4
regen
2020-11-27 14:37:24 +01:00
Guillaume Gomez
128b3b251e
Remove unnecessary dox feature in cargo files
2020-11-25 16:02:51 +01:00
Guillaume Gomez
9dd8bd9095
Remove unnecessary dox feature
2020-11-25 15:54:02 +01:00
Guillaume Gomez
28438d245a
regen
2020-11-25 15:53:45 +01:00
Sebastian Dröge
7dc5a90b8a
Remove unneeded extern crate
2020-11-22 19:15:21 +02:00
Sebastian Dröge
d31badf9ac
gstreamer-video: Update manual code to 2018 edition
2020-11-22 19:15:20 +02:00
Sebastian Dröge
4bd7f7af1a
gstreamer-video: Regenerate
2020-11-22 19:15:20 +02:00
Sebastian Dröge
9889bc990a
sys: Update to Rust 2018
2020-11-22 19:15:20 +02:00
Sebastian Dröge
389fa306aa
Regenerate with latest gir
2020-11-19 19:53:22 +02:00
Marijn Suijten
e88994a0b7
use cfg_if to refactor some #[cfg()] / #[cfg(not())] pairs
2020-11-19 16:39:31 +01:00
Marijn Suijten
aeb1b70581
Remove doc(cfg()) from expressions
...
warning: unused doc comment
--> gstreamer-video/src/video_info.rs:655:37
|
655 | #[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
656 | / {
657 | | VideoInfoBuilder {
658 | | format,
659 | | width,
... |
674 | | }
675 | | }
| |_________- rustdoc does not generate documentation for expressions
Also simplify some blocks into expressions which are allowed to have
attributes as well since Rust 1.43.
2020-11-19 16:39:31 +01:00
Marijn Suijten
bd75778fcb
Add doc(cfg()) on all manual files
2020-11-19 16:39:31 +01:00
Marijn Suijten
9daa8d20a9
Regenerate with doc(cfg()) attribute on all symbols
...
This is enabled by a new version of gir, as updated in the previous
commit.
2020-11-19 16:39:31 +01:00
Marijn Suijten
3f373f623a
Enable feature(doc_cfg) in all lib.rs
...
The next version of gir is going to generate doc(cfg()) attributes on
many symbols to show feature-dependence hints. While autogenerated sys
crates get this attribute in their own (generated) lib.rs file the safe
wrapper crates do not have such an autogenerated lib.rs file.
2020-11-19 16:39:31 +01:00
Sebastian Dröge
09f1a87dc9
video/timecode: Use stringify!($name) instead of "$name" in Debug impl
...
Otherwise it would output a literal "$name" string.
2020-11-16 13:21:57 +02:00
Sebastian Dröge
b861f724c4
gstreamer-video: Make virtual methods take wrapper of type, not parent
2020-11-14 19:39:27 +02:00
Sebastian Dröge
f6ace04caf
Regenerate everything with latest gir
2020-11-07 12:17:25 +02:00
François Laignel
5903496e5b
regenerate all
2020-11-05 18:29:47 +01:00
Sebastian Dröge
b91123d298
Simplify IsSubclassable::override_vfunc() implementations
2020-11-05 17:12:06 +00:00
Sebastian Dröge
99fbbc32cb
Use glib::Class instead of glib::object::Class
2020-11-05 17:12:06 +00:00
Sebastian Dröge
027de84349
Update for class struct handling changes in the glib bindings
...
See https://github.com/gtk-rs/gtk-rs/pull/10
2020-11-05 16:41:48 +02:00
François Laignel
ec220201e7
gstreamer-video: regenerate
2020-11-05 12:40:44 +01:00
Sebastian Dröge
67f5c0767a
Regenerate everything with latest gir
2020-11-01 09:48:40 +02:00
Sebastian Dröge
4cd6e09f3d
Update documentation link of sys crates
2020-11-01 09:48:37 +02:00
Sebastian Dröge
ef120ce923
Update sys versions to 0.17.0
...
All crates have the same version now, which should cause less confusion
with matching them up.
2020-10-30 18:35:57 +02:00
Sebastian Dröge
35f19e17bf
Update repository URLs
2020-10-30 18:35:52 +02:00
Sebastian Dröge
c833e9ed69
Update dependency paths
2020-10-30 18:27:22 +02:00
Sebastian Dröge
b5c376d315
Move every gtk-rs dependency to the combined gtk-rs repository
2020-10-30 18:15:53 +02:00
Sebastian Dröge
109eac2b9a
Move sys crates into subdirectories of the non-sys crates
2020-10-30 18:06:07 +02:00
Sebastian Dröge
f657a56947
Move Gir.toml into the corresponding subdirectories
2020-10-30 18:06:01 +02:00
Sebastian Dröge
a6c8fe0c8a
Use repr(transparent) where it is more correct and get rid of some unneeded repr(C)
2020-10-24 17:09:10 +00:00
Sebastian Dröge
4c216bca3a
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-10-24 17:09:10 +00:00
Sebastian Dröge
501934a29b
Allow unused imports in autogenerated code
...
These should not be there to begin with but they're hard to prevent.
2020-10-17 13:09:45 +03:00
Jonas Platte
73ea24ca11
Fix missing dox feature passthrough
2020-10-14 19:00:04 +02:00
raytiley
a8ed2ac6e0
Update location of documentation.
2020-10-10 15:51:59 -04:00
Sebastian Dröge
dc9a9c4d78
Update CHANGELOG.md for 0.16.4
2020-10-09 13:41:11 +03:00
Sebastian Dröge
0b70e52032
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 11:35:19 +03:00
Sebastian Dröge
4f10eefe1e
Update CHANGELOG.md for 0.16.3
2020-09-08 22:02:31 +03:00
Sebastian Dröge
6ce9a9ce12
video: Rename VideoTransferFunction functions
2020-09-08 15:43:05 +03:00
Sebastian Dröge
55efe30258
Regenerate everything
2020-09-08 15:42:28 +03:00
Sebastian Dröge
febb0dfd16
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:35:39 +03:00
Sebastian Dröge
dfe87cf5c9
Add various new 1.18 APIs
2020-08-11 12:54:32 +03:00
Sebastian Dröge
70fd572a46
Regenerate everything
2020-08-11 12:53:27 +03:00
Sebastian Dröge
9cb40878f0
Update CHANGELOG.md for 0.16.2
2020-07-27 12:43:53 +03:00
Sebastian Dröge
4f5b2f5060
Update for removal of ObjectImpl::get_type_data()
2020-07-26 18:02:05 +03:00
Sebastian Dröge
0db75a5186
Update CHANGELOG.md for 0.16.1
2020-07-10 10:44:40 +03:00
Sebastian Dröge
f40821ba66
Update versions to 0.17.0
2020-07-06 15:22:55 +03:00
Sebastian Dröge
ca8b8f6a38
Update CHANGELOG.md for 0.16.0
2020-07-06 15:22:07 +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
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
Sebastian Dröge
eddf4a61ff
videoencoder/decoder: Add constants for the NEED_DATA custom flow returns
2019-08-14 20:22:55 +03:00
Sebastian Dröge
5c53f10135
videoencoder: Allow passing None to finish_frame()
2019-08-14 20:22:53 +03:00
Sebastian Dröge
1b860825ee
Update feature flags of all dependencies to include the same version as for the crate itself
...
This improves build times as it allows cargo to reuse more previous
build results when building crates separately.
Also remove the serde-pickle dependency. It was only used in a single
test and caused pulling in of quite a few dependencies.
2019-08-13 16:46:08 +03:00
François Laignel
5d012945df
Regen
2019-08-11 10:43:30 +02:00
Sebastian Dröge
eb59456ae3
Update CHANGELOG.md for 0.14.3
2019-07-16 12:47:15 +03:00
Sebastian Dröge
e3282c27f1
video: Generate VideoBufferFlags and add a extension trait for setting/getting them on buffers
2019-07-16 11:51:23 +03:00
Sebastian Dröge
36b0cafc5e
Update CHANGELOG.md for 0.14.2
2019-07-15 20:03:48 +03:00
Sebastian Dröge
d8325212f4
Fix various clippy warnings
2019-07-11 22:02:01 +03:00
Sebastian Dröge
424a87efbf
Use MaybeUninit::zeroed() everywhere possible instead of mem::zeroed()
2019-07-11 17:56:50 +03:00
Sebastian Dröge
3a8d05075d
Switch everything from mem::uninitialized() to MaybeUninit or mem::zeroed()
...
And also fix a few cases where mem::uninitialized() was simply wrong to
use.
2019-07-11 17:56:50 +03:00
Sebastian Dröge
bde6a04780
Regenerate everything with latest gir
2019-07-10 11:21:28 +03:00
Sebastian Dröge
dcbf68e9e7
Update CHANGELOG.md for 0.14.1
2019-07-06 23:57:28 +03:00
Guillaume Desmottes
86f7a1dd9b
video: VideoInfo: display format info in Debug
2019-07-03 14:32:43 +02:00
Guillaume Desmottes
71414fe052
video: implement proper Debug on VideoFormatInfo
2019-07-03 14:23:58 +02:00
Sebastian Dröge
38f3d3eff2
video-info: Use gst_video_info_set_interlaced_format() when building for 1.16 and having an interlace-mode set
...
This ensures that the plane information is filled correctly.
2019-06-26 12:42:33 +03:00
Sebastian Dröge
28a24a4fc0
Update versions to 0.15.0
2019-06-24 20:53:05 +03:00
Sebastian Dröge
fa6cb789cd
Update CHANGELOG.md for 0.14.0
2019-06-24 20:52:03 +03:00
Sebastian Dröge
47f0940b44
Regenerate everything with latest gir
2019-06-24 20:52:03 +03:00
Guillaume Desmottes
cd16337874
video: video-info: fix Display implementations
...
We were calling the blanket implementation of ToString, which is using
Display, rather than our own, resulting in an infinite recursion.
Also a couple of to_string() implementation were using the wrong
glib conversion as they actually return a 'const gchar *'.
2019-06-18 17:11:24 +05:30
Guillaume Desmottes
af65497c39
video: fix VideoFormat Display implementation
...
We were calling the blanket implementation of ToString, which is using
Display, rather than our own, resulting in an infinite recursion.
Fix #208
2019-06-18 17:11:24 +05:30
Sebastian Dröge
b87ffa17bb
Run rustfmt also over all the generated code
2019-06-18 13:12:00 +03:00
Sebastian Dröge
e5aa6f59f9
Regenerate everything
2019-06-18 13:10:46 +03:00
Guillaume Desmottes
c3ccec67eb
video: turn VIDEO_MAX_PLANES to an usize
...
More convenient to use.
2019-06-18 13:30:59 +05:30
Guillaume Desmottes
840d1847a1
video: add VIDEO_MAX_PLANES constant
2019-06-18 10:57:58 +05:30
Guillaume Desmottes
491eaf3a73
video: VideoInfo: implement align()
2019-06-18 09:38:43 +05:30
Sebastian Dröge
d1e562b9f6
Explicitly add dyn
keyword to trait objects
...
Trait objects without are deprecated with the latest nightly and this
makes it more clear that we're doing dynamic dispatch anyway.
2019-06-06 09:09:34 +03:00
Sebastian Dröge
d44c293753
Use TryFrom/TryInto traits where it makes sense instead of our previous ad-hoc solutions
2019-06-03 18:42:34 +03:00
Sebastian Dröge
e5d0afee02
video: Add pack/unpack func bindings
2019-05-28 09:26:44 +02:00
Sebastian Dröge
4798b4bcc9
video: Don't require the input buffers of the video codec frames to be writable
2019-05-25 14:13:06 +02:00
Sebastian Dröge
bc082ba56c
video: Don't unref video codec state in set_format()
2019-05-25 13:02:41 +02:00
Sebastian Dröge
be9434e029
video: Add finish() virtual function for video encoder/decoder
2019-05-25 11:25:56 +02:00
Sebastian Dröge
7a0bc76668
video: Add VideoEncoder bindings
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/160
2019-05-25 10:11:06 +02:00
Vivia Nikolaidou
4a8e860a9e
gstreamer-video: Expose VideoBufferPool
...
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/12
2019-05-24 10:32:57 +00:00
Sebastian Dröge
6cef32a4dd
Change various mini object references to references to the refcounted object
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/issues/204
2019-05-24 10:04:16 +00:00
Guillaume Desmottes
c766f16403
video: add GST_BUFFER_POOL_OPTION_VIDEO_*_META constants
2019-05-23 15:10:42 +02:00
Guillaume Desmottes
47121fe9d6
gstreamer-video: VideoDecoder bindings
...
The VideoCodecFrame and VideoCodecState is C API is unfortunatelly unsafe
by design. So we workarounded it by ensuring the decoder stream lock was
hold while user has a writable reference on those objects.
Based on previous work from Thibault Saunier and Philippe Normand.
Fixes #161
2019-05-22 20:40:57 +00:00
Víctor Manuel Jáquez Leal
32d7f42d67
Remove unused extern crates
...
Latest versions of nightly rust compiler can detect unused extern
crates, and this commit removes those marked as unused.
2019-05-17 09:34:46 +00:00
Sebastian Dröge
6071c68ab6
video: Add support for VideoCaptionMeta
2019-05-16 00:35:19 +03:00
Sebastian Dröge
b2b8bfab52
Add manual implementations for various new 1.16 functions
2019-04-23 20:45:39 +03:00
Sebastian Dröge
88dcb82c8d
Regenerate everything for 1.16.0
2019-04-23 19:15:53 +03:00
Sebastian Dröge
e7898c1b24
Update manual code
2019-04-15 19:19:19 +03:00
Sebastian Dröge
24305a19e8
Regenerate everything with latest gir
2019-04-15 18:38:05 +03:00
Sebastian Dröge
86a31b4139
Silence/fix various clippy warnings
2019-03-07 14:05:35 +02:00
Sebastian Dröge
8c39da4e5b
Update to Rust 1.31 linter-specific attributes
2019-03-04 15:16:01 +02:00
Sebastian Dröge
490004d9c5
Remove empty lines from CHANGELOG.md as that breaks the GitLab rendering
...
... if it's between items in a list.
2019-02-22 17:50:59 +02:00
Sebastian Dröge
32e961d418
Update versions to 0.14.0
2019-02-22 13:04:56 +02:00
Sebastian Dröge
0f6850d6a9
Update CHANGELOG.md for 0.13.0
2019-02-22 11:55:16 +02:00