Commit graph

793 commits

Author SHA1 Message Date
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
Sebastian Dröge 8754e4220e Regenerate everything with latest gir 2019-02-22 11:55:16 +02:00
Sebastian Dröge 95f6844702 Fix various minor clippy warnings 2019-02-21 19:56:23 +02:00
Sebastian Dröge 0a96e0a80b gstreamer-video: Don't take a &mut self in the constructor of VideoTimeCodeInterval 2019-02-21 19:29:47 +02:00
Sebastian Dröge e6992345cc Add gst_video::convert_frame_async_local() without Send bound on the closure 2019-02-10 11:47:48 +02:00
Sebastian Dröge 42a8b9e505 Get rid of double-boxing for some other closures 2019-01-30 13:02:41 +00:00
Sebastian Dröge 00cbd49923 Regenerate with latest gir 2019-01-29 16:28:51 +02:00
Pete Johanson b62e2f154d Add getters to VideColorimetry. 2019-01-27 00:21:50 +00:00
Sebastian Dröge bd0cbe99b3 Add more Debug impls to everything possible 2019-01-22 17:46:08 +02:00
Sebastian Dröge ad24ab9638 Regenerate everything with latest gir 2019-01-21 22:00:48 +02:00
Sebastian Dröge 3fcbf3fba4 Use default instead of default-features in Cargo.toml 2019-01-16 17:10:01 +02:00
Sebastian Dröge bfcdec782e Switch to stable rustfmt and add skip annotations for the generated code to the lib.rs 2019-01-16 17:10:01 +02:00
Sebastian Dröge 931c485150 Update manual code for glib API changes 2019-01-16 13:52:56 +02:00
Sebastian Dröge 6da0a9d169 Regenerate everything with latest gir 2019-01-16 13:32:39 +02:00
François Laignel 226070d216 BoolError: update to new build macros
See https://github.com/gtk-rs/glib/pull/419
2019-01-04 16:02:40 +01:00
François Laignel 3200574d31 Update to latest gir
See https://github.com/gtk-rs/gir/pull/687
2019-01-04 16:02:40 +01:00
Philippe Normand 9534416760 Regenerate and fix manual bindings for GString support 2019-01-03 22:01:41 +00:00
Sebastian Dröge b9d3a5a852 video: Fix compilation with features=v1_10 2018-12-29 00:05:22 +02:00
Sebastian Dröge 89d69b0dea gstreamer-video: Remove unused use statement 2018-12-19 13:14:32 +02:00
Sebastian Dröge 86673009df video: Add support for VideoTimeCodeMeta 2018-12-17 17:40:41 +02:00
Sebastian Dröge a753c65d33 video: Add VideoTimeCode bindings
There's a VideoTimeCode type that represents any kind of timecodes,
including invalid ones, and which allows to change each field
individually. And ValidVideoTimeCode that has all fields
validated and that can be used with most of the API.

In C, validation of the timecodes is left to the user and most functions
assert on getting passed valid timecodes.
2018-12-17 17:40:41 +02:00
Sebastian Dröge 11db200dd6 Remove some historical cruft from the README.md 2018-12-13 19:46:57 +02:00
Sebastian Dröge 654d98b269 Update README.md to mention that this also allows writing GStreamer plugins
And clarify that gst-plugins-rs only contains various plugins.
2018-12-13 19:41:07 +02:00
Sebastian Dröge 43f5a10f9c Add API for mapping GL buffers as VideoFrameRef in addition to a full VideoFrame 2018-12-08 18:59:14 +00:00
Sebastian Dröge 36bcb5630a Remove various unused use statements 2018-12-08 14:58:14 +02:00
Sebastian Dröge 6bba3d8518 Add 'static trait bound to all ExtManual traits and get rid of trait bounds for their impls 2018-12-08 14:58:14 +02:00
Sebastian Dröge 5c93e134a7 Regenerate everything with new version of gir 2018-12-08 14:58:14 +02:00
Sebastian Dröge e7b4bafa60 Ignore false clippy warning about casting and pointer alignment in videometa
error: casting from `*mut ffi::GstVideoOverlayComposition` to a more-strictly-aligned pointer (`*mut gst_ffi::GstMiniObject`)
   --> gstreamer-video/src/video_meta.rs:158:44
    |
158 |             gst_ffi::gst_mini_object_unref(self.0.overlay as *mut _);
    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: #[deny(clippy::cast_ptr_alignment)] on by default
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment

error: casting from `*mut ffi::GstVideoOverlayComposition` to a more-strictly-aligned pointer (`*mut gst_ffi::GstMiniObject`)
   --> gstreamer-video/src/video_meta.rs:159:59
    |
159 |             self.0.overlay = gst_ffi::gst_mini_object_ref(overlay.as_mut_ptr() as *mut _) as *mut _;
    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment
2018-12-04 10:51:50 +02:00
Sebastian Dröge 12c3d1e911 Update CHANGELOG.md for 0.12.2 2018-11-26 16:16:57 +01:00
Sebastian Dröge 8c9d1abe9d Remove GitLab badge
It only works for gitlab.com currently
2018-11-26 16:16:26 +01:00
Sebastian Dröge 6629d1b3f6 Update documentation to GitLab pages 2018-11-26 16:15:53 +01:00
Sebastian Dröge b41517234d Various fixes for the README.md of the separate crates 2018-11-26 11:40:55 +01:00
Sebastian Dröge 5df964435c Update README.md with changes from the main one 2018-11-26 11:36:48 +01:00
Sebastian Dröge dad32c16c4 Update gst-plugin-rs link to gst-plugins-rs 2018-11-26 11:34:47 +01:00
Sebastian Dröge aea6f79ef9 Implement Send/Sync for VideoFrame
Closes #153
2018-11-26 11:13:13 +01:00
Víctor Manuel Jáquez Leal 284992d83a Add VideoFrame::from_glib_full() constructor
Thus it would be possible to instantiate gst_video::VideoFrame from
FFI's VideoFrame created outside of gstreamer_video's crate.

Fixes #152
2018-11-16 11:45:38 +01:00
Sebastian Dröge f31827f194 Regenerate with latest gir
Gets rid of some unneeded property notification functions in GES
2018-11-05 11:18:31 +02:00
Sebastian Dröge f4a6aa4481 Change all references from GitHub to freedesktop.org GitLab 2018-11-03 20:08:42 +02:00
Víctor Manuel Jáquez Leal 60c9cdfda1 Update autogenerated code with latest gir 2018-10-31 17:33:15 +02:00
Sebastian Dröge e4ecc88825 Remove some unneeded lifetime annotations from video meta code and pass more parameters by reference 2018-10-11 11:58:01 +03:00
Sebastian Dröge 9265cc8232 Correctly generate VideoOverlayFormatFlags as flags 2018-10-04 11:39:15 +03:00
Sebastian Dröge 8f71a81cb5 Regenerate with latest gir to get rid of unneeded notify signal connectors for construct-only properties 2018-10-03 13:57:07 +03:00
Sebastian Dröge 35353445de VideoOverlayComposition is supposed to be immutable
So remove the add() function and instead require an
IntoIterator<Item=&VideoOverlayRetangle> in the constructor, and require
at least one item in the iterator or return None.
2018-10-01 14:52:31 +03:00
Sebastian Dröge 6d5bded7b3 Get rid of lifetime for the Meta structs
The structs themselves don't reference the buffer, the reference to
these structs is borrowed from the buffer.
2018-09-30 01:17:12 +03:00
Sebastian Dröge 62074ba1ed Add bindings for VideoMeta and VideoOverlayCompositionMeta 2018-09-29 12:01:26 +03:00
Sebastian Dröge 2b029bcdd4 Remove unused imports 2018-09-28 18:15:29 +03:00
Sebastian Dröge 0b58bf5c2f Add bindings for VideoOverlayComposition and VideoOverlayRectangle
... the missing file.
2018-09-28 17:42:45 +03:00
Sebastian Dröge cfe1bd452f Add bindings for VideoOverlayComposition and VideoOverlayRectangle 2018-09-28 17:37:27 +03:00
Sebastian Dröge bc8da095c3 Add functions to get the FFI pointer behind a VideoFrame/VideoFrameRef 2018-09-28 17:35:48 +03:00
Sebastian Dröge 255243c16a Implement Sync for VideoInfo and AudioInfo
They are immutable on the Rust side after all.
2018-09-22 10:56:25 +03:00
Sebastian Dröge 05b591c709 Update CHANGELOG.md for 0.12.1 2018-09-21 11:43:01 +03:00
Sebastian Dröge 0628961c94 Add bindings for is_video_overlay_prepare_window_handle_message() 2018-09-13 22:56:47 +03:00
Sebastian Dröge 6cf34b1b39 Add VideoOverlay::prepare_window_handle() and got_window_handle() 2018-09-13 22:53:13 +03:00
Sebastian Dröge 0ddab16801 Update versions to 0.13.0 2018-09-10 01:54:25 +03:00
Sebastian Dröge a2a7eac8a8 Update CHANGELOG.md for 0.12.0 2018-09-10 01:54:07 +03:00
Sebastian Dröge 2e139bd202 Update CHANGELOG.md for 0.11.6 2018-08-27 10:04:16 +03:00
Sebastian Dröge 3c900e6102 Regenerate with latest gir 2018-08-18 00:25:12 +03:00
Sebastian Dröge 2240ef109f Regenerate with latest GIR and update for the glib::Quark changes 2018-07-30 11:46:40 +03:00
Sebastian Dröge 33a6aab6d7 Run everything through latest rustfmt 2018-07-27 13:36:40 +03:00
Sebastian Dröge 632d5f4c57 Change some empty structs to empty enums
These should only really exist at the type-level.
2018-07-25 10:07:20 +03:00
Sebastian Dröge 26d9d304c4 Update CHANGELOG.md for 0.11.5 2018-07-24 15:55:07 +03:00
Sebastian Dröge 694bcaa697 Fix all clippy warnings
Or silence the ones we don't care about.
2018-07-20 10:28:20 +03:00
Sebastian Dröge fc79b4c4c8 Update CHANGELOG.md for 0.11.4 2018-07-19 18:52:30 +03:00
Sebastian Dröge e0972ae1e5 Get rid of manual usage of callback_guard! 2018-06-24 14:52:50 +03:00
Sebastian Dröge 2085d170be Get rid of callback_guard! as unwinding through FFI is defined behaviour now and aborts 2018-06-24 14:42:11 +03:00
Sebastian Dröge d2272fefa7 Update CHANGELOG.md for 0.11.3 2018-06-08 10:27:24 +03:00
Sebastian Dröge c2ee8d226c Print more fields in the VideoInfo fmt::Debug impl 2018-06-08 10:19:25 +03:00
Sebastian Dröge 1192a027b4 Regenerated with latest GIR and GIR files 2018-05-21 11:55:19 +03:00
Thibault Saunier a10532c379 video_info: Implement fmt::Debug 2018-05-14 09:22:25 +03:00
Sebastian Dröge 7429138274 Update CHANGELOG.md for 0.11.2 2018-05-09 12:48:33 +03:00
Sebastian Dröge 2cefd9aea6 Re-run everything through rustfmt 2018-04-25 11:13:14 +03:00
Sebastian Dröge 46d27e3e75 Regenerate everything with latest GIR 2018-04-23 20:45:15 +03:00
Sebastian Dröge 5dd17d6248 Update CHANGELOG.md for 0.11.1 2018-04-07 20:32:28 +03:00
Sebastian Dröge 9a3ef2e9f1 Regenerate with latest GIR and update for the non-bitflags flags in -sys now 2018-04-04 10:47:12 +03:00
Sebastian Dröge 492c3d656c Run everything through rustfmt again 2018-04-01 11:57:58 +03:00
Sebastian Dröge 15116d0f98 Update CHANGELOG.md for 0.11.0 2018-03-20 12:47:58 +02:00
Sebastian Dröge 6d5f7337fc Update version to 0.12.0 2018-03-20 12:37:24 +02:00
Sebastian Dröge 68ba4d23bb Update to using the master branch of gstreamer-sys again 2018-03-20 12:04:16 +02:00
Sebastian Dröge a33fd41d02 Regenerate everything with latest gir 2018-03-20 11:52:29 +02:00
Sebastian Dröge 7f479b0e14 Use correct gstreamer-sys branch 2018-03-19 10:32:07 +02:00
Sebastian Dröge 6bd63ec8e7 Update gstreamer-video 2018-03-19 10:32:07 +02:00
Sebastian Dröge a3b294f0f2 Add back callback guards 2018-03-02 21:34:29 +02:00
Sebastian Dröge 808ff293ec Regenerate everything with latest gir 2018-03-02 21:34:29 +02:00
Sebastian Dröge 4117c01ff2 Run everything through latest rustfmt-nightly 2018-02-22 11:18:37 +01:00
Sebastian Dröge f92f0a99e8 Update CHANGELOG.md for 0.10.2 2018-02-18 23:25:11 +01:00
Sebastian Dröge f1426c82ba Remove callback guards
Since Rust 1.24 it is safe to let panics go to the FFI boundary
2018-02-17 19:58:41 +02:00
Sebastian Dröge 2f179a832c Fix compilation after gstreamer-sys regeneration with unions 2018-02-07 18:53:12 +02:00
Sebastian Dröge 6d0d7a3df8 Regenerate everything with latest GIR 2018-02-06 16:42:34 +02:00
Sebastian Dröge fc4ad81777 Change VideoFrameRef::copy_to() and ::copy_plane() to take VideoFrameRefs instead of VideoFrames
VideoFrames can always be converted to a VideoFrameRef if needed.
2018-01-16 18:59:04 +02:00
Sebastian Dröge 4297f8f5c5 Don't implement Copy for VideoRectangle and pass by reference to center_video_rectangle() 2018-01-03 17:38:22 +02:00
Sebastian Dröge 98290bcc55 Update CHANGELOG.md for 0.10.1 2018-01-03 17:08:46 +02:00
Sebastian Dröge 899be5e2c3 Add VideoFrameRef API
This is like VideoFrame, but can work on gst::BufferRefs and borrows
from it. VideoFrames can be converted into this by borrowing.
2018-01-01 13:47:07 +02:00
Sebastian Dröge 38bd880a74 Add GstVideoFilter bindings
Not very useful, but will be useful for gst-plugin-rs
2017-12-30 15:34:41 +02:00
Sebastian Dröge 6083fb63c2 Add unit test for gst_video::convert_sample_async() 2017-12-30 12:08:48 +02:00
Sebastian Dröge c52da3639a Fix memory leak for gst_video::convert_sample_async()
Values are passed owned to the callback
2017-12-30 12:08:26 +02:00
Sebastian Dröge d44869711a Run video_rectangle.rs through rustfmt 2017-12-26 18:18:13 +01:00
Philippe Normand 1722b047bd gstreamer-video: VideoRectangle bindings 2017-12-26 18:17:30 +01:00
Sebastian Dröge 25a8ce4f8d Add bindings for gst_video::convert_sample() and ::convert_sample_async() 2017-12-24 14:30:38 +02:00
Sebastian Dröge 4a5987d03d Update versions to 0.11.0 2017-12-22 15:06:06 +02:00
Sebastian Dröge 95562b8d22 Update CHANGELOG.md for 0.10.0 2017-12-22 14:44:24 +02:00
Sebastian Dröge e0dc84c10a Run everything through rustfmt again 2017-12-20 19:30:14 +02:00
Sebastian Dröge 70688fd6a9 Clean-up VideoFrame API
There's a buffer() for immutable references on all types now, and a
buffer_mut() for getting a mutable reference on the writable videoframe

Also some minor other cleanup
2017-12-16 11:41:48 +02:00
Sebastian Dröge 70e031b729 VideoInfo/AudioInfo are not Sync, only Send 2017-12-16 11:40:36 +02:00
Sebastian Dröge d3b03de9ff Nullability fix for VideoFormat::to_string() in case Unknown is passed 2017-12-16 10:58:10 +02:00
Sebastian Dröge 5fb6ce77ee Add VideoMultiviewFramePacking enum and minor code cleanup 2017-12-16 10:56:19 +02:00
Sebastian Dröge f2eabaddf7 Make all fields of the force-keyunit events optional in the builder 2017-12-10 22:43:28 +02:00
Sebastian Dröge 580fc603e0 Use builders for the key-unit and still-frame events too 2017-12-10 12:26:16 +02:00
Sebastian Dröge 5065bc76ee Rename FormattedValue::from_glib/to_glib to from_raw/to_raw_value
Otherwise we conflict with GLib translation traits, which causes some
annoyances.
2017-12-10 12:10:25 +02:00
Sebastian Dröge d55e08a6a4 Add bindings for force-keyunit and still-frame events 2017-12-10 11:57:11 +02:00
Sebastian Dröge c99928d030 Change FormatValue related API to be more convenient to use
FormatValue is now renamed to GenericFormattedValue and the API slightly
changed. In addition there is now a FormattedValue trait, and a
SpecificFormattedValue trait plus types for Bytes, Buffers and the
existing ClockTime.

This allows to create functions like
  Pad::query_duration<F: SpecificFormattedValue>() -> Option<F>
and doesn't require the caller to unwrap the generic value anymore,
which is completely unneeded in these cases.

In addition, Segment became FormattedSegment<T> with API to
upcast/downcast between the specific formatted values and the generic
formatted value. This greatly simplifies usage of Segments.
2017-12-09 19:45:18 +02:00
Sebastian Dröge 411f54afed Run everything to rustfmt again 2017-12-01 19:02:53 +02:00
Sebastian Dröge 8a2e78e586 Regenerate with latest GIR to fix various issues with property getters
Get rid of unneeded transmutes and actually initialize flags/enum
GValues with the correct type instead of using integers.
2017-11-27 19:16:34 +02:00
Sebastian Dröge 3c9b7a395b Get rid of some unneeded transmute() in VideoInfo 2017-11-27 14:03:33 +02:00
Sebastian Dröge 34f70ee0d7 Derive more useful traits for various enums 2017-11-27 14:03:30 +02:00
Sebastian Dröge 80ebc86e94 Update CHANGELOG.md from 0.9.1 2017-11-26 20:42:53 +02:00
Sebastian Dröge ea3d08d65a Update CHANGELOG.md with 0.9.0 2017-11-26 19:49:56 +02:00
Sebastian Dröge f1e095eb0e Update versions to 0.10.0 2017-11-26 18:33:12 +02:00
Sebastian Dröge 7eb8429046 Run everything through latest rustfmt-nightly again 2017-11-15 22:33:51 +02:00
Sebastian Dröge d4bd1c2d76 Add dox feature to everything as needed 2017-11-12 13:33:02 +01:00
Sebastian Dröge a557a8d66e Require the dox feature of dependant crates 2017-11-12 12:58:30 +01:00
Sebastian Dröge c39c0c7264 Implement ClockTime as ClockTime(Option<u64>)
And also implement a FormatValue type that holds a value together with
its format to make usage of the positions/durations/seek positions/etc
more convenient and safe.

Fixes https://github.com/sdroege/gstreamer-rs/issues/3
2017-11-11 11:57:29 +01:00
Sebastian Dröge 5d266bf31b Regenerate with latest GIR
Which gives us mappings between instance and class struct for now.
2017-11-09 13:33:40 +02:00
Sebastian Dröge 3179806f01 Regenerate everything with latest GIR
And fix-up manual code
2017-11-05 19:08:39 +02:00
Sebastian Dröge 3193c19131 Add a table of contents to the README.md 2017-10-31 21:08:40 +02:00
Sebastian Dröge 1b5762c02f Update README.md with installation instructions and some links for getting started
https://github.com/sdroege/gstreamer-rs/issues/49
https://github.com/sdroege/gstreamer-rs/issues/50
2017-10-30 13:00:39 +02:00
Sebastian Dröge e1d134c4be Run everything through latest rustfmt-nightly 2017-10-17 12:06:51 +03:00
Sebastian Dröge 92e0b525ad Fix build of unit tests 2017-10-01 16:02:29 +02:00
Sebastian Dröge 19c5556239 Regenerate with latest GIR 2017-10-01 15:52:15 +02:00
Sebastian Dröge 55ef03110a Fix documentation URIs 2017-09-15 00:50:24 +03:00
Sebastian Dröge 0de4c0c1af Update CHANGELOG.md for 0.8.1 2017-09-15 00:50:22 +03:00
Sebastian Dröge b4cb81cd56 Run everything through latest rustfmt-nightly 2017-09-10 15:21:26 +03:00
Sebastian Dröge a0ba290d4d Fix various clippy warnings in gstreamer-video 2017-09-10 15:21:26 +03:00
Sebastian Dröge 3b0e6843e2 Regenerate everything with latest GIR 2017-09-09 16:35:01 +03:00
Sebastian Dröge be9f544d0a Update crate versions to 0.9.0
0.8 bugfix release development will be in the 0.8 branch
2017-09-01 13:44:07 +03:00
Sebastian Dröge a30582a1ef Add README.md to all crate subdirectories
This way it would show up on crates.io
2017-09-01 12:08:59 +03:00
Sebastian Dröge 380fb319ba Don't return &'static references from functions but give them a generic lifetime
https://github.com/rust-lang/rust/pull/42417#issue-233404573
2017-09-01 11:40:32 +03:00
Sebastian Dröge 15d05ed3ac Don't use versions for GIT dependencies in master 2017-08-31 13:34:52 +03:00
Sebastian Dröge c94eb34f34 Add LICENSE files to all crate subdirectories 2017-08-31 13:34:52 +03:00
Sebastian Dröge d3d00130df Add links to homepage and proper docs
docs.rs can't generate our docs due to missing C libraries
2017-08-31 13:04:19 +03:00
Sebastian Dröge 6450fec398 Update versions to 0.8.0 2017-08-31 10:53:45 +03:00
Sebastian Dröge 52c013b834 Regenerate everything with latest GIR 2017-08-30 14:45:25 +03:00
Sebastian Dröge f0935d7e1e Add remaining gst_init() assertions 2017-08-30 14:39:09 +03:00
Sebastian Dröge f05df73088 Add various gst_init() assertions to video/app bindings
audio and core should come next.

Also print something more meaningful than using assert_eq!().
2017-08-30 12:48:01 +03:00
Sebastian Dröge 046edc5efd Add initial 0.8.0 (basically empty) CHANGELOG.md
Another release preparation.
2017-08-29 15:44:33 +03:00
Sebastian Dröge 083a6b6eeb Update glib/gtk/etc versions, and gstreamer-sys
Fixes https://github.com/sdroege/gstreamer-rs/pull/30
2017-08-29 11:03:33 +03:00
Sebastian Dröge f751afc0fb Add prelude modules to all cratest that only re-export the traits
And use those in the examples instead of blanket * imports
2017-08-17 18:02:25 +03:00
Sebastian Dröge 767bd0537e Only re-export traits once 2017-08-17 16:32:17 +03:00
Sebastian Dröge 1cb1cf9936 Implement Send+Sync for VideoInfo too
It's also immutable here.
2017-08-15 17:34:32 +03:00
Sebastian Dröge b0307f9108 Fix build with --all-features and run it on travis 2017-08-15 13:46:16 +03:00
Sebastian Dröge 8a40fed0a4 Add some badges 2017-08-15 10:30:32 +03:00
Sebastian Dröge e66bcf8a5d Allow any Into<Fraction> for VideoInfo::fps() and VideoInfo::par() 2017-08-14 09:54:32 +03:00
Sebastian Dröge 59af28e508 Simplify VideoFrame impl 2017-08-11 15:20:56 +03:00
Sebastian Dröge 4b24ca1823 Add VideoOverlay bindings 2017-08-11 15:03:16 +03:00
Sebastian Dröge cb8ca2c00e Add VideoFrame bindings 2017-08-11 14:55:31 +03:00
Sebastian Dröge 18871110cd Add VideoInfo::convert() 2017-08-11 12:54:01 +03:00
Sebastian Dröge b08980cd5e Add some more VideoInfo convenience API 2017-08-11 12:51:27 +03:00
Sebastian Dröge 830f0b7d83 Add VideoInfo and related bindings 2017-08-11 12:42:59 +03:00
Sebastian Dröge 3a50ca61e3 Add initial libgstvideo bindings
Only VideoFormat and VideoFormatInfo and related API for now.

https://github.com/sdroege/gstreamer-rs/issues/5
2017-08-11 00:41:55 +03:00