Commit graph

81 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
a33fd41d02 Regenerate everything with latest gir 2018-03-20 11:52:29 +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
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
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
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