Sebastian Dröge
2abf75122d
Update minimum supported Rust version to 1.70
...
gtk-rs will update soonish too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1298 >
2023-07-19 09:24:10 +03:00
Sebastian Dröge
89ab9d09c8
Remove GTK3 examples/tutorials
...
GTK3 is deprecated and the GTK videooverlay example does not even work
on modern systems with Wayland anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1293 >
2023-07-06 17:25:28 +03:00
Bilal Elmoussaoui
f9fa7f55fc
Use re-exported once_cell
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1293 >
2023-07-06 16:50:35 +03:00
Bilal Elmoussaoui
b156ba2c59
Adapt to glib::Continue rename
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1293 >
2023-07-06 16:50:35 +03:00
Sebastian Dröge
7c67375d99
examples: Reduce dependencies of the thumbnail example
...
Instead of depending on libraries for every possible image format,
depend only on the JPEG and PNG libraries.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1281 >
2023-06-26 14:14:45 +03:00
Sebastian Dröge
b59680f437
Update to cocoa 0.25
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1281 >
2023-06-26 14:00:54 +03:00
Sebastian Dröge
d72884685a
examples: Update to memmap2 0.7
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1275 >
2023-06-12 13:22:28 +03:00
Daniel Pendse
2becc79dfb
rtsp-server: Add RTSPContext uri getter
...
Add uri getter from RTSPContext
Fix #469
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1271 >
2023-06-05 10:41:59 +02:00
Sebastian Dröge
b6919d7c99
examples: Update for DiscovererStreamInfo::stream_id()
being nullable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1266 >
2023-05-22 12:17:13 +03:00
Sebastian Dröge
ccf3b57a8b
examples: Update to memmap2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1262 >
2023-05-12 09:44:03 +03:00
Johan Sternerup
e026d922e4
gstreamr: bus: Add BusWatchGuard to automatically remove watch
...
Previously, with add_watch()/add_watch_local() you had to remember
calling remove_watch() in order not to leak the bus, the watch source
and two associated file descriptors. Now these methods instead return an
object of type BusWatchGuard that will automatically remove the bus
watch when the object is dropped.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1248 >
2023-04-14 11:53:41 +03:00
Guillaume Desmottes
e75391139c
fix typos in comments
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1246 >
2023-04-07 17:09:48 +02:00
Seungha Yang
6cb19c1f18
examples: Add Direct2D/DirectWrite text rendering example
...
Similar to overlay-composition example but for Direct2D/DirectWrite
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1206 >
2023-04-04 09:09:18 +00:00
Sebastian Dröge
81a5f25f81
examples: Update to windows 0.48
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1241 >
2023-04-01 12:00:53 +03:00
Sebastian Dröge
a7131fc051
examples: Update to windows 0.47
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1240 >
2023-03-31 11:50:51 +03:00
Sebastian Dröge
6d3c9d931b
examples: Update to windows 0.46
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1239 >
2023-03-14 11:24:08 +00:00
Guillaume Desmottes
01d3cef73e
gstreamer: element: more generic (un)link_many() API
...
No longer enforces to pass an array of references.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1230 >
2023-03-09 14:27:25 +00:00
Guillaume Desmottes
c4a968a403
gstreamer: bin: more generic {add,remove}_many() API
...
No longer enforces to pass an array of references.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1230 >
2023-03-09 14:27:25 +00:00
Ruben Gonzalez
0b922b0e89
examples: zoom effect with compositor and navigations events
...
Use can change the video player zoom using the next keys:
* +: Zoom in
* -: Zoom out
* Up/Down/Right/Left: Move the frame
* r: reset the zoom
Also mouse navigation events can be used for a better UX.
Furthermore, it works with an pipeline using other video compositor
filters like glvideomixer. For instance:
glvideomixer \
name=mix background=1 \
sink_0::xpos=0 sink_0::ypos=0 sink_0::zorder=0 \
sink_0::width={WIDTH} sink_0::height={HEIGHT} \
! glimagesinkelement \
gltestsrc pattern=mandelbrot name=src \
! video/x-raw(memory:GLMemory),framerate=30/1,width={WIDTH},height={HEIGHT},pixel-aspect-ratio=1/1 \
! queue \
! mix.sink_0
Probe was added in the sink pad to get direct navigation events w/o
transformation done by the mixer. More info about it in the PR [1].
[1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1217 >
2023-02-22 20:41:06 +01:00
Sebastian Dröge
b6e253acbf
Update minimum supported Rust version to 1.66
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1223 >
2023-02-20 10:42:07 +02:00
Sebastian Dröge
13140d8b8a
Update versions to 0.21.0
2023-02-09 23:42:32 +02:00
Sebastian Dröge
00281e98f0
gstreamer: Rename TagSetter::add()
to TagSetter::add_tag()
to not conflict with Bin::add()
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/440
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1211 >
2023-02-04 16:44:40 +02:00
Sebastian Dröge
478606e44c
Use glib::Object::new()
instead of new_default()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1209 >
2023-01-31 12:05:53 +02:00
Sebastian Dröge
a7f670df7a
Return exit code from gio::Application::run()
from main()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1208 >
2023-01-27 19:02:03 +02:00
Sebastian Dröge
f24b38470b
Fix various new clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1203 >
2023-01-25 10:18:33 +02:00
Seungha Yang
8ef4420257
examples: d3d11videosink: Update for windows crate v0.44
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1197 >
2023-01-23 03:01:17 +09:00
Sebastian Dröge
d5e24b9fbd
Update various object construction functions to more efficient approaches
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1196 >
2023-01-22 09:48:51 +02:00
Sebastian Dröge
003554876c
Update various APIs to use glib::GStr
...
Currently only covers what is needed to keep code compiling, plus
everything caps/structure/tags related.
This avoids unnecessary heap allocations for adding the NUL-terminator
of C strings, and especially makes caps/structure handling as efficient
as in C.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1190 >
2023-01-15 21:05:57 +02:00
Sebastian Dröge
277d63601c
gstreamer: Return glib::GString
for the error/warning/info message debug string
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1184 >
2023-01-06 10:41:55 +02:00
Sebastian Dröge
8d30bcbf4b
Use IntoGlibPtr
trait instead of to_glib_full()
where appropriate to reduce unnecessary refcounting/copying
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1183 >
2023-01-05 12:09:57 +02:00
Sebastian Dröge
1e793f3b65
gstreamer: Return some values by reference instead
...
Less refcounting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1183 >
2023-01-05 12:09:57 +02:00
Sebastian Dröge
32a608b76b
examples: Fix for API changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1182 >
2023-01-04 13:26:07 +02:00
Sebastian Dröge
567ce0a3bf
Group and merge imports in all manual code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1182 >
2023-01-04 13:25:17 +02:00
Seungha Yang
b4d3bf297e
examples: Add d3d11videosink example with Direct2D/DirectWrite interop
...
Demonstartes the use of d3d11videosink's present signal
introduced in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2923
with Direct2D/DirectWrite API interop using the windows crate.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1089 >
2022-12-28 11:20:51 +00:00
Sebastian Dröge
3d0f563111
Update minimum supported Rust version to 1.64
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1175 >
2022-12-25 14:54:38 +02:00
Jordan Petridis
141a71d69e
ci: Avoid building examples with --all-features
...
--all-features ends up enabling the windows and trying to compile
the d3d example, which can't be built on linux.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1175 >
2022-12-25 13:25:30 +02:00
Sebastian Dröge
e3ad1918dc
Fix various new clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1164 >
2022-12-13 11:29:45 +02:00
Sebastian Dröge
01e24d2018
Fix various new clippy warnings
2022-11-01 11:10:57 +02:00
Sebastian Dröge
951f000622
examples: glupload: Set sync point on the GL buffer as soon as possible
...
And also add API for getting the GL context from a `GLBaseMemory`.
2022-10-25 06:51:39 +00:00
Sebastian Dröge
c6cbf86012
examples: glupload: Fix iterating over elements inside glsinkbin
...
Some elements might not have a factory so handle this gracefully instead
of erroring out.
2022-10-25 06:51:39 +00:00
Sebastian Dröge
90b8ee2022
Move from imp.instance()
to imp.obj()
...
It's doing the same thing and is shorter.
2022-10-23 23:06:44 +03:00
Sebastian Dröge
031133c179
Update versions to 0.20.0
2022-10-22 20:27:42 +03:00
Sebastian Dröge
a1165a7456
gstreamer: Add bin/pipeline builders
...
And also implement the Default trait for them.
2022-10-22 17:36:36 +03:00
Sebastian Dröge
2a4e1069a1
app: Add an AppSrc/AppSink builder
...
These allows to construct these elements explicitly together with all the
properties instead of going via gst::ElementFactory::make().
2022-10-22 10:19:49 +03:00
François Laignel
0e5a4f05f8
gst: fix Element::request_new_pad
signature
...
See:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1133#note_1600152
2022-10-21 11:30:02 +02:00
François Laignel
4ebdfb8602
Use impl Into<Option<_>>
for functions impacted by nullability fixes
...
This commit addresses the functions which signatures changed in
commit f9690817
so that users can still use e.g.
`query.set_result(val)` instead of `query.set_result(Some(val))`.
See [1] for an attempt at generalizing this approach.
[1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1133
2022-10-21 11:30:02 +02:00
Sebastian Dröge
7423b1dea6
elementfactory: Change make()
/ create()
to builders and keep the old variants as create_with_name()
/ make_with_name()
...
As a side-effect, this also now includes the element factory name in the
error messages instead of giving the same error string for every
factory.
Partially fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/318
Also let them all go through the same, single object construction code.
2022-10-19 17:48:39 +03:00
Sebastian Dröge
f9690817ad
Fix nullability handling in some functions in manual code
2022-10-18 18:15:01 +03:00
Sebastian Dröge
f5a902ba49
example: Update for pango API changes
2022-10-17 19:55:42 +03:00
Sebastian Dröge
4bdbe0022b
examples: Fix compilation after pangocairo API changes
2022-10-14 18:11:42 +03:00
Vivia Nikolaidou
b230d8aab6
examples, video: Use .into() instead of gst::Fraction::new()
...
Simplifies the code
2022-10-14 16:26:00 +03:00
Vivia Nikolaidou
6d4ad712c7
examples, audio, pbutils, video: Use AudioCapsBuilder and VideoCapsBuilder
...
Simplify caps creation code
2022-10-14 13:59:51 +03:00
Sebastian Dröge
08cac646be
examples: Fix formatting
2022-10-12 14:33:13 +03:00
Sebastian Dröge
b89a285178
Use correct gobject-sys::GObject
type in the examples/tutorials
2022-10-12 14:30:19 +03:00
Sebastian Dröge
a4d901ee63
gstreamer: Add an gst::element_error! variant that works on element implementations
2022-10-10 15:01:07 +03:00
Sebastian Dröge
f17781e188
Change *Impl trait methods to only take &self and not Self::Type in addition
2022-10-10 15:01:07 +03:00
Sebastian Dröge
3cd902513d
Update for glib::Object::new() API changes
2022-10-07 21:45:01 +03:00
Sebastian Dröge
099ffdc4b4
examples: Change cairo-compositor example to use ParamSpec builders
2022-09-05 11:48:37 +03:00
Sebastian Dröge
35c6af424d
Update minimum supported Rust version to 1.63
2022-09-04 10:37:13 +03:00
Sebastian Dröge
9018d1e3ac
examples: Update to glutin 0.29
2022-08-09 18:46:00 +00:00
Tomasz Andrzejak
2090452e3d
Update minimum supported rust version
2022-07-14 15:23:34 +02:00
Sebastian Dröge
2c373f5d24
examples: Update to memfd 0.6
2022-06-06 11:18:40 +03:00
Philippe Renon
01b8279bc1
examples: add GstPlay example
2022-05-24 06:55:12 +00:00
Philippe Renon
268e351dde
examples: fix clippy errors
2022-05-17 21:47:34 +02:00
Sebastian Dröge
8d001d8b16
Stop using glib::SendUnique
...
It is being removed because it does not add a lot of value.
2022-04-09 11:37:53 +03:00
Sebastian Dröge
4651c9db4d
Update minimum supported version to 1.14
...
This is the version that is available in Ubuntu 18.04.
2022-04-07 12:45:47 +03:00
Sebastian Dröge
a90aed0d41
examples: Update to memfd 0.5
2022-04-06 11:05:05 +03:00
Sebastian Dröge
ae234bb01e
examples: Implement gst::ChildProxy
interface in cairo compositor example
2022-03-30 21:41:28 +03:00
Sebastian Dröge
208e1ef7a4
examples: Simplify cairo compositor example a bit and improve/add comments.
2022-03-23 10:27:08 +02:00
Sebastian Dröge
21dbe86c8e
examples: Add a Cairo-based compositor example based on VideoAggregator
2022-03-22 19:00:32 +02:00
Christian Meissl
163130cad7
Extend examples to showcase the use of the FdMemoryAllocator
2022-03-12 14:19:40 +00:00
Sebastian Dröge
0f22eb7633
Remove now unnecessary Send+Sync
impls for element/etc subclasses
...
This is now automatically implemented.
2022-02-28 18:25:15 +02:00
Sebastian Dröge
bf660cf22a
Update minimum supported Rust version to 1.57
2022-02-22 00:00:39 +02:00
François Laignel
972c4e75ac
remove gst_ prefix for log macros
...
It's quite quite common to use similar macros in the form `log::debug!`
or `glib::clone!`. This MR renames the gst log macros so that we can
`gst::debug!` instead of `gst_debug!` and whithout the need for
`use gst::gst_debug`.
2022-02-21 18:56:06 +01:00
Sebastian Dröge
98e12e835a
examples: Update to image 0.24
2022-02-09 13:15:13 +02:00
Sebastian Dröge
1ebfaee644
examples: Make use of glib::closure!
for the overlay-composition example
2022-01-24 13:13:24 +00:00
Sebastian Dröge
8fa1076dfa
Replace Foo::from_instance(foo)
with foo.imp()
2022-01-17 19:34:06 +02:00
Sebastian Dröge
7444975421
Update versions to 0.19.0
2022-01-15 20:21:53 +02:00
Sebastian Dröge
ce1a25a128
examples: overlay-composition: Use cairo's new ImageSurfaceDataOwned
to get rid of unsafe code
2022-01-14 21:47:08 +02:00
Sebastian Dröge
605c633579
Ignore clippy::non_send_fields_in_send_ty
lint
...
It's useless in its current shape and wrongly triggering on all types.
See https://github.com/rust-lang/rust-clippy/issues/8045
2022-01-13 23:38:11 +02:00
Sebastian Dröge
33f75191d5
examples: Update to glutin 0.28
2021-12-03 10:21:10 +02:00
Sebastian Dröge
7cc1523e7d
Fix a couple of new clippy warnings
2021-12-02 22:39:57 +02:00
Sebastian Dröge
f31aa2efee
examples: Update for glib::Boxed
derive macro rename
2021-11-22 10:54:52 +02:00
Sebastian Dröge
27613a8901
examples/tutorials: The get-XXX-tags
signals on playbin can return a None
taglist
2021-11-21 18:38:39 +02:00
Bilal Elmoussaoui
1ffcea4da7
manual changes post ObjectExt::emit_by_name update
2021-11-21 09:40:27 +01:00
Sebastian Dröge
1480c65c32
examples: Use VideoFrame API in thumbnail example, use RGBX as format and correctly handle stride
2021-11-08 21:23:23 +02:00
Bilal Elmoussaoui
e3a65a3a88
gst object: add a panicking variant of set_property_from_str
...
Similar to what was added to ObjectExt
2021-11-08 14:42:59 +01:00
Bilal Elmoussaoui
213020165a
manual changes post ObjectExt improvements
2021-11-08 14:42:59 +01:00
Bilal Elmoussaoui
0d009bca31
regen with latest gir
2021-11-08 14:42:59 +01:00
Sebastian Dröge
220c500799
gstreamer: Add numer()/denom() functions to gst::Fraction to get the values by value instead of reference
2021-11-06 00:23:07 +02:00
Sebastian Dröge
cdfe4b3d67
Remove unneeded std::convert::TryFrom/TryInto and std::str::FromStr imports
2021-10-31 18:20:31 +02:00
Sebastian Dröge
c00a97f5ec
Update to Rust edition 2021 and minimum supported Rust version 1.56
...
Also update CI image to use meson 0.60.
2021-10-31 11:47:34 +02:00
Sebastian Dröge
42feed5441
examples: Remove unnecessary MainContext::push_thread_default()
2021-10-25 09:54:33 +00:00
Sebastian Dröge
92f9f3be39
Remove various unnecessary & from property/structure field related code
2021-10-24 20:52:23 +03:00
Sebastian Dröge
b4a3738b82
Move more code to caps/structure builders
...
Instead of the new() functions requiring slices. The code reads cleaner.
2021-10-24 18:57:15 +03:00
Sebastian Dröge
8cc018c164
examples: Move to the new, simplified encoding profile API
2021-10-24 18:45:38 +03:00
Sebastian Dröge
7f0ca0011c
Add gst::GstObjectImpl, gst::ProxyPadImpl, gst_audio::AudioBaseSrc, gst_audio::AudioBaseSink subclassing traits
...
These were missing from the type hierarchy previously and are now
required because of more strict checks in the GLib bindings.
2021-10-23 11:59:03 +03:00
Sebastian Dröge
febd0ee144
Declare the minimum supported Rust version in Cargo.toml
2021-10-18 19:30:37 +03:00
Sebastian Dröge
37c3d2d8e0
Update for glib::source_remove() removal
2021-10-12 09:30:10 +03:00
Marijn Suijten
64ec364259
examples/player: set_uri now allows None to be passed in
2021-09-21 09:58:07 +02:00