Guillaume Desmottes
98a8b75646
gstreamer: fix unused import in test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1246 >
2023-04-10 08:04:12 +02:00
Guillaume Desmottes
6fc969932b
CHANGELOG: fix typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1246 >
2023-04-07 17:09:48 +02: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
Guillaume Desmottes
3cb2454fd3
gstreamer: fix typo in GeoLocationLongitude tag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1246 >
2023-04-07 17:09:48 +02:00
Sebastian Dröge
341ac517d1
Update CHANGELOG.md for 0.20.4
2023-04-07 13:07:06 +03:00
Sebastian Dröge
03d046daba
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1244 >
2023-04-06 21:31:39 +03:00
Sebastian Dröge
a11e5cfd75
Add manual changes for the new/changed 1.24 APIs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1244 >
2023-04-06 21:31:39 +03:00
Sebastian Dröge
ca2fd54230
Add v1_24 feature flag everywhere
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1244 >
2023-04-06 21:08:51 +03:00
Sebastian Dröge
ce0ddc7be0
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1244 >
2023-04-06 21:08:51 +03:00
Thibault Saunier
68db910bc8
Update gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1227 >
2023-04-04 11:50:49 -04:00
Sebastian Dröge
d2ef4023f7
Update CHANGELOG.md for 0.20.3
2023-03-14 13:23:51 +02: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
Marc Wiblishauser
0bd6e07346
ParamSpecArray: fix type_ from fraction to array
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1229 >
2023-03-09 10:29:37 +01:00
Sebastian Dröge
0056c62cec
Update CHANGELOG.md for 0.20.2
2023-02-21 17:03:54 +02: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
SeaDve
862f4d014c
gstreamer: Add seconds_f32 & seconds_f64 methods and from_seconds_f32 & from_seconds_f64 constructor for ClockTime and Signed<ClockTime>
...
Closes #443
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1223 >
2023-02-20 10:42:07 +02:00
SeaDve
12b4a9a03d
gstreamer: implement HasParamSpec for ClockTime
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1221 >
2023-02-14 23:40:28 +08:00
Sebastian Dröge
70b42a4846
Update CHANGELOG.md for 0.20.1
2023-02-13 15:02:49 +02:00
Sebastian Dröge
60ad9b5038
gstreamer: Add a test for various combinations of element_error!
string formatting
2023-02-13 11:40:41 +02:00
Sebastian Dröge
6f06a26327
Add support for inline variable names in error/warning/info message creation macros
...
Simply by removing the special-casing of string literals, which doesn't
really bring any improvements here.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/442
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1216 >
2023-02-12 13:27:59 +02:00
Sebastian Dröge
13140d8b8a
Update versions to 0.21.0
2023-02-09 23:42:32 +02:00
Sebastian Dröge
d284fcdca0
Update CHANGELOG.md for 0.20.0
2023-02-09 23:41:58 +02:00
Sebastian Dröge
b9f36c1b42
Update CHANGELOG.md for 0.19.8
2023-02-09 21:38:00 +02:00
Sebastian Dröge
f6f0465655
Remove various unnecessary clippy allow attributes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1214 >
2023-02-07 21:13:19 +02:00
Sebastian Dröge
9155d6eb7b
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1214 >
2023-02-07 21:00:46 +02:00
Sebastian Dröge
172e22c4b3
gstreamer: Implement glib::HasParamSpec
for our custom pspecs
...
This allows using `gst::Fraction` / `gst::Array` properties via the new
properties macro.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1213 >
2023-02-06 15:21:02 +02:00
Sebastian Dröge
91eec7a33f
Migrate everything to object lock API instead of custom GMutex
handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1212 >
2023-02-06 10:50:33 +02:00
Anders Hellerup Madsen
a021aaa3ce
gstreamer: Add object_lock method to gst::Object
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/439
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1212 >
2023-02-06 10:10:18 +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
c62530e181
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1209 >
2023-01-31 10:49:39 +02:00
Sebastian Dröge
5cea810820
gstreamer: Add bindings for Message::structure_mut()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1204 >
2023-01-26 15:28:42 +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
Sebastian Dröge
7efc22ebc9
Require GStreamer 1.22.0 instead of 1.21.0 when selecting v1_22
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1201 >
2023-01-24 13:01:05 +02:00
Sebastian Dröge
ecfb10649a
Add 1.22 to extra_versions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1201 >
2023-01-24 13:00:53 +02:00
Sebastian Dröge
4b99aae824
gstreamer: Create plugins for version 1.22 if selected
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1201 >
2023-01-24 12:58:32 +02:00
Sebastian Dröge
e82a1d0eb8
gstreamer: Mark MessageType
enum as non-exhaustive
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1201 >
2023-01-24 12:57:05 +02:00
Sebastian Dröge
0f1c937465
Regenerate with latest gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1201 >
2023-01-24 12:50:26 +02:00
Sebastian Dröge
c33fb38ca1
gstreamer: Mark various enums as exhaustive
...
This reduces their size to 4 bytes instead of 5 bytes, and as such makes
it possible to store them in a register on 32 bit platforms too.
Additionally it makes it possible for enums like
`Result<FlowSuccess, FlowReturn>` to be stored in a single register on
64 bit platforms.
Also the conversions between the C and Rust type is a simple copy of the
value now instead of a mapping.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1200 >
2023-01-24 11:07:33 +02:00
Sebastian Dröge
2c2a6c3871
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1200 >
2023-01-24 10:40:31 +02:00
Sebastian Dröge
36f89e19fc
gstreamer: Deprecate ElementFactory::create_with_properties()
and make_with_properties()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1199 >
2023-01-23 13:06:54 +00:00
Sebastian Dröge
dc5e408c2d
gstreamer: Add various convenience From
impls for Caps
, BufferList
, CapsFeatures
, Buffer
and VideoOverlayComposition
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1199 >
2023-01-23 13:06:54 +00:00
Sebastian Dröge
0f859b9029
Get README.md in sync again
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/437
2023-01-23 12:01:07 +02: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
38dd1f462b
gstreamer: Use obj()
instead of instance()
in the remaining places
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1196 >
2023-01-22 09:14:50 +02:00
Sebastian Dröge
257a049673
gstreamer: Mark ParamSpec
constructors as deprecated in favour of the builders
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1196 >
2023-01-22 09:14:50 +02:00
Sebastian Dröge
24a16a43b6
Update CHANGELOG.md for 0.19.7
2023-01-19 19:05:17 +02:00
Sebastian Dröge
d6e9cd33c0
gstreamer: Make allocation query caps optional
...
See also https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3752
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1194 >
2023-01-19 16:08:16 +02:00
Sebastian Dröge
56498aa856
Fix version links in CHANGELOG.md
2023-01-18 16:53:08 +02:00
Sebastian Dröge
a6abe15678
Update CHANGELOG.md for 0.19.6 release
2023-01-18 16:53:05 +02:00
Sebastian Dröge
8aa3e4417c
gstreamer: Fix another typo in macro
2023-01-16 11:30:56 +02:00
Sebastian Dröge
2a11b9d2cf
gstreamer: Fix typo in macro
2023-01-16 11:30:08 +02:00
Sebastian Dröge
64abf69987
Use glib::function_name!
instead of module_path!
macro in more places
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1191 >
2023-01-16 11:10:21 +02:00
Sebastian Dröge
3e2eb6e652
gstreamer: Reduce code bloat in panic handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1191 >
2023-01-16 11:08:02 +02:00
Sebastian Dröge
3a340d0a89
gstreamer: Implement Structure::from_iter()
more generically
2023-01-15 23:06:45 +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
ea136515cf
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1190 >
2023-01-15 20:17:11 +02:00
Sebastian Dröge
aa23ddbbdb
gstreamer: Simplify element subclass panic catching functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1188 >
2023-01-14 17:13:53 +02:00
Sebastian Dröge
37bfb78fdc
Change some assertions to debug assertions
...
These assertions can only trigger because of bugs in the bindings
implementation or in the C code and not because of bugs in calling code,
so using debug assertions is perfectly fine for them and reduces the
number of assertions inlined everywhere in release builds.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1188 >
2023-01-14 17:13:46 +02:00
Sebastian Dröge
f235dc987d
Inline various trivial functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1177 >
2023-01-11 11:33:54 +02:00
Sebastian Dröge
0fccb73eb6
gstreamer: Remove unnecessary cast in gst::element_imp_error!
and others
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1187 >
2023-01-11 09:06:38 +00:00
Sebastian Dröge
608cae3703
gstreamer: Register only a single type instead of per return value for the gst::Iterator::filter()
GValue
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1187 >
2023-01-11 09:06:38 +00:00
Sebastian Dröge
f07727ee6d
Use uninitialized stack memory for out parameters instead of zeroed memory if applicable
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1187 >
2023-01-11 09:06:38 +00:00
Sebastian Dröge
1b022a6b7c
Get rid of unnecessary option wrapping
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1187 >
2023-01-11 09:06:38 +00:00
Sebastian Dröge
84720eee66
gstreamer: Use Value::from_type_unchecked()
where applicable
...
Gets rid of some unnecessary assertions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1184 >
2023-01-06 10:41:55 +02:00
Sebastian Dröge
89326c7e7c
Compile out GStreamer version checks if a high enough version is configured at build time
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1184 >
2023-01-06 10:41:55 +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
ba1d8c5ce6
gstreamer: Move initialization panic into a separate function
...
This keeps the number of duplicated panics all over the codebase lower
and reduces generated code size.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1184 >
2023-01-05 21:33:14 +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
b94bfe1613
gstreamer: Remove useless GstPluginExtManual
trait
...
`Plugin` is a final type.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1182 >
2023-01-04 13:25:17 +02:00
Sebastian Dröge
a028e807df
gstreamer: Autogenerate some more API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1182 >
2023-01-04 13:25:17 +02:00
Sebastian Dröge
7490846309
Fix compilation due to changes in autogenerated code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1182 >
2023-01-04 13:25:17 +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
Sebastian Dröge
45c145ad50
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1182 >
2023-01-04 13:25:17 +02:00
Sebastian Dröge
6ff5f89832
gstreamer: Fix memory leak in buffer pool subclassing test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1180 >
2023-01-03 10:41:35 +00:00
Sebastian Dröge
0ed3d95c60
gstreamer: Use glib::StrV
internally instead of a custom version of it
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1180 >
2023-01-03 10:41:35 +00:00
Sebastian Dröge
cbd3035a5b
gstreamer: Implement gst::Segment
via glib::wrapper!
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1180 >
2023-01-03 10:41:35 +00:00
Sebastian Dröge
8ed150c853
gstreamer: Add missing doc alias
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1180 >
2023-01-03 10:41:35 +00:00
Sebastian Dröge
ae688406f8
gstreamer: Allocate debug messages up to 256 bytes on the stack and only then spill over into the heap
...
With this, debug logging from Rust is completely allocation-less for
short messages and string literals.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1179 >
2023-01-03 10:28:43 +00:00
Sebastian Dröge
06a0dbacba
gstreamer: Don't inline debug logging function
...
It's relatively big and increases code size and stack usage quite a bit,
and having a function call for logging is not going to make much of a
difference as it happens *after* filtering for the debug level
threshold.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1179 >
2023-01-03 10:28:43 +00:00
Sebastian Dröge
036a020b62
gstreamer: Optimize various from/to Vec
FFI translation functions
...
Use memcpys if possible instead of manual loops, and directly write into
the `Vec` memory and set the length afterwards to avoid having the
reallocate logic at every step.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1181 >
2023-01-03 12:06:29 +02:00
Sebastian Dröge
882513d33a
Make use of the new TransparentType
/ TransparentPtrType
traits
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1178 >
2023-01-02 19:07:24 +02:00
Sebastian Dröge
e6e5d25e48
Update CHANGELOG.md for 0.19.5
2022-12-27 12:53:30 +02: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
Sebastian Dröge
146b4fc08e
gstreamer: Fix glib::GStr
API changes
2022-12-25 00:25:42 +02:00
Sebastian Dröge
cdc7aa4846
gstreamer: Allow returning Handled
from BufferList
pad probes
...
This is handled exactly the same way as buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1174 >
2022-12-23 12:21:18 +00:00
Sebastian Dröge
d6cc452cf3
Use PhantomData
as Stash::Storage
if nothing has to be stored except for a lifetime
...
This reduces the size of all stashes from two pointers to one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1171 >
2022-12-20 17:07:39 +00:00
Sebastian Dröge
f166e80a79
gstreamer: Only use a single temporary Vec
for [T]::to_glib_none()
for miniobjects
...
The value itself is already kept alive via the stash and we only need a
temporary `Vec` to be able to append the terminating `NULL` pointer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1171 >
2022-12-20 17:07:39 +00:00
Sebastian Dröge
3764bf75f8
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1170 >
2022-12-16 22:09:29 +02:00
Sebastian Dröge
8c22ba25f8
Update CHANGELOG.md for 0.19.4
2022-12-16 11:56:04 +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
0fa8d0d62f
gstreamer: Fix formatting if a string literal needs formatting
...
E.g. "blabla {some_variable}" is a string literal but needs formatting,
so we can't just pass it as a literal to the logger.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1161 >
2022-12-11 12:20:35 +02:00
Sebastian Dröge
2a935320e7
gstreamer: Replace some generic function parameters with impl trait
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
ef5d5f50e4
gstreamer: Actually log the function name instead of the module name
...
As there is no way to get the function name as a string literal
currently, we have to copy locally into a NUL-terminated array.
Up to 256 bytes this is managed on the stack, otherwise a heap
allocation is necessary.
For the <256 bytes case the compiler is optimizing most of this away.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
355ebc243f
gstreamer: Add DebugCategory::above_threshold()
to check if the category's threshold is above the given level
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
b58d518aa3
gstreamer: Use glib::GStr
for DebugMessage
string API too
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
de04e3f827
gstreamer: Reduce allocations in custom logging functions for the file/function strings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
0e7f5a19df
gstreamer: Require using a NUL-terminated UTF-8 string or a string literal for the logging ID
...
Otherwise each log will involve a new allocation just for the ID.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
2be477b753
gstreamer: Make logging of messages from a string literal allocation-free if using GStreamer 1.20 or newer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
3a61276cdd
gstreamer: Reduce some allocations for passing the filename/module name to the logging functions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 20:18:11 +02:00
Sebastian Dröge
750422d8eb
gstreamer: Reduce some code duplication in the logging code
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1160 >
2022-12-10 15:48:02 +02:00
Sebastian Dröge
3ab7bc7648
gstreamer: Add bindings for new 1.22 debug log ID API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1159 >
2022-12-09 17:37:01 +02:00
Sebastian Dröge
a54c234fc6
gstreamer: Directly use fields for DebugCategory
getters
...
This allows for better optimizations as it doesn't go through an opaque
FFI function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1159 >
2022-12-09 17:37:01 +02:00
Sebastian Dröge
e8859951d3
gstreamer: Ignore EventType::to_sticky_ordering
...
This is handled manually via the `PartialOrd` impl.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1159 >
2022-12-09 17:37:01 +02:00
Sebastian Dröge
7012fa638e
Regenerate with latest gir/gir-files/gst-gir-files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1159 >
2022-12-09 17:37:01 +02:00
Sebastian Dröge
b89b98b6e9
Update CHANGELOG.md for 0.19.3
2022-11-28 10:16:21 +02:00
Sebastian Dröge
b5fcbc9657
gstreamer: Get rid of some unnecessary unsafe API usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1157 >
2022-11-27 00:59:38 +02:00
Sebastian Dröge
0bc16c65f0
gstreamer: Add some API for add new items to a gst::Array and gst::List
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1157 >
2022-11-27 00:59:38 +02:00
Sebastian Dröge
ae4dd88f3d
Update for GLib Into<Value>
changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1156 >
2022-11-26 15:19:35 +02:00
Sebastian Dröge
0b013001b7
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1156 >
2022-11-26 15:01:10 +02:00
Sebastian Dröge
3da927a856
gstreamer: Fix sticky event ordering for instant-rate-change
...
The event type for instant-rate-change events was poorly chosen, leading
to them being re-sent too late and even after EOS.
See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3387
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1154 >
2022-11-21 13:43:22 +02:00
Sebastian Dröge
cbfc19ccfc
Regenerate with latest GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1153 >
2022-11-21 13:29:38 +02:00
Sebastian Dröge
fa5491e6b3
Use borrowed miniobject/structure types in more places
...
When the function does not keep around an additional reference of the
value this is correct and more flexible for callers.
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/420
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1152 >
2022-11-21 12:40:37 +02:00
Sebastian Dröge
5a0152b469
gstreamer: tracer: Pass &QueryRef
instead of &Query
to the functions
...
To make it impossible for implementor to keep around a reference to the
query as that would break element code that actually tries to answer the
query.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1152 >
2022-11-21 12:40:37 +02:00
Sebastian Dröge
1264eb10ac
gstreamer: Add PartialEq
impls between owned/borrowed miniobjects/structures
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1152 >
2022-11-21 12:40:37 +02:00
Sebastian Dröge
56b9b66027
gstreamer: Implement FromIterator<Caps>
and Extend<Caps>
for Caps
...
This allows easily generating new/extending existing caps from an
iterator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1151 >
2022-11-21 10:10:04 +02:00
Sebastian Dröge
774fafd987
gstreamer: Implement From<T> for Signed<T>
...
This makes usage simpler in a few places.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1150 >
2022-11-18 12:07:13 +02:00
Edward Hervey
77fd187986
format: Add Signed<T>
<=> signed integer conversions
...
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1149 >
2022-11-16 16:32:24 +02:00
Sebastian Dröge
88791294a5
Update CHANGELOG.md for 0.19.2
2022-11-13 20:13:29 +02:00
Sebastian Dröge
9ba448427d
Regenerate with latest gir
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1148 >
2022-11-12 17:40:16 +02:00
Elie Génard
f1c8869447
gstreamer: Add gst::Allocator
subclassing support
2022-11-08 19:28:42 +00:00
Sebastian Dröge
d3543efec2
gstreamer: Manually implement Allocator::register()
...
Due to a bug it causes use-after-free in versions < 1.20.5, so work
around that here.
2022-11-08 19:07:48 +02:00
Sebastian Dröge
32c432655f
Regenerate with latest GStreamer gir files
2022-11-08 18:15:34 +02:00
Sebastian Dröge
01e24d2018
Fix various new clippy warnings
2022-11-01 11:10:57 +02:00
Sebastian Dröge
2bffc4e5ec
Fix 0.19.1 release date in the changelog
2022-10-24 12:34:21 +03:00
Sebastian Dröge
708ad14422
Update CHANGELOG.md for 0.19.1
2022-10-24 12:32:45 +03: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
François Laignel
87ea535bc1
gst/log: accept non-ref obj in macros
2022-10-23 20:44:38 +02:00
Sebastian Dröge
031133c179
Update versions to 0.20.0
2022-10-22 20:27:42 +03:00
Sebastian Dröge
7331dbc440
Update CHANGELOG.md for 0.19.0
2022-10-22 20:22:10 +03:00
Sebastian Dröge
bf7c770457
Regenerate with latest gir files
2022-10-22 20:22:10 +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
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
130cc9d63b
element: Implement linking functions manually for better error reporting
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/318
2022-10-19 17:59:04 +03: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
7ad75d4b1f
elementfactory: ElementFactory::create_with_properties() is available in any GStreamer version
...
As it's re-implemented here now instead of calling into the C function.
2022-10-19 13:53:06 +03:00
Sebastian Dröge
9c282ec7c3
gstreamer: Implement ElementFactory::create_with_properties() manually
...
This way we can get the same property checks as normal object
construction would provide.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/402
2022-10-18 16:27:10 +00:00
Sebastian Dröge
67e3183922
Regenerate with latest gir and gir-files
2022-10-18 18:16:51 +03:00
Sebastian Dröge
19f7aaf413
Generate only a single versions file for sys crates too
2022-10-18 18:15:01 +03:00
Sebastian Dröge
9a9ce252a4
Fix usage of dox feature
2022-10-18 18:15:01 +03:00
Sebastian Dröge
d80227e566
Trust nullability annotations everywhere
2022-10-18 18:15:01 +03:00
Sebastian Dröge
f9690817ad
Fix nullability handling in some functions in manual code
2022-10-18 18:15:01 +03:00
Vivia Nikolaidou
8d3ada5d89
pad: Catch panics in pad task functions
...
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/246
2022-10-18 10:38:12 +00:00
François Laignel
49faa03c98
gst/format: make from_u64
constructors const
...
This commit makes the formatted values' main constructors `const`,
so that they can be used in constant definitions.
`from_usize` constructors can't be made const because `try_into`
can't be used in `const` functions as of rustc 1.64.0. Same for
`Percent::from_ratio`: floating point arithmetic is not allowed.
2022-10-18 11:24:57 +02:00
François Laignel
384783b242
gst/format: introduce Constructor traits
...
Introduce a set of Constructor traits which are implemented on
integer of float depending on the formatted values. This traits
allows building formatted values using expressions such as:
```rust
let buffer_nb = 20.buffers();
let size = 42.k_bytes();
let duration = 15.minutes() + 30.seconds();
let quantity = 42.default_format();
let progress = 20.percent();
let progress = 0.2.percent_ratio();
```
2022-10-18 11:24:08 +02:00
Vivia Nikolaidou
39bb9abc3c
caps: Add .structure() to CapsBuilder
...
Allows us to get the structure, to read fields after adding them to the
builder.
2022-10-14 16:24:51 +03:00
Sebastian Dröge
734afa998b
gstreamer: Implement pad default functions as associated functions
...
Making them associated functions clearer that special care is required
and avoid conflicts with the same functions in ghostpad/proxypad.
2022-10-12 18:29:52 +03:00