François Laignel
08723d37a8
gst: anticipate GQuark to GstIdStr lifetime changes
...
GStreamer fixes a memory leak due to GQuarks by switching to GstIdStr.
The consequence is that strings previously backed by a GQuark returned by a
function will now get their lifetime bound to that of its owner, while the
GQuark version ensured static lifetime.
Because some functions return a string with the assumption that they are static
and because we can't alter the API for existing versions of the bindings, this
MR temporarily forces affected strings as GQuarks, thus gaining static lifetime
regardless of the GStreamer version actually being used.
For newer versions of the bindings, the API will be fixed and GQuarks will be
removed in favor a leakless solution.
See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1525 >
2024-09-11 16:25:18 +02:00
François Laignel
cf9151a9b3
tags: fix index() lifetime bind
...
The signature for `TagListRef::index` didn't bind the lifetime of the returned
`TagValue` to `&self`. This causes the following code to compile:
```rust
1 let title = {
2 let mut tags = TagList::new();
3 {
4 let tags = tags.get_mut().unwrap();
5 tags.add::<Title>(&"some title", TagMergeMode::Append);
6 }
7
8 let title = tags.index::<Title>(0).unwrap();
9 assert_eq!(title.get(), "some title");
10
11 title
12 };
13
14 assert_eq!(title.get(), "some title");
```
... but it panics at runtime on the last `title.get()`:
```
Invalid tag type: WrongValueType(ValueTypeMismatchError
{ actual: <invalid>, requested: gchararray })
```
Indeed, the `title` `TagValue` is freed with the `tags` on line 12.
This commit fixes the function signature so the returned `TagValue` can't
outlive its `TagListRef`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1525 >
2024-09-11 16:25:18 +02:00
Sebastian Dröge
37edd497cc
Update CHANGELOG.md for 0.20.7
2023-07-05 12:21:59 +03:00
Sebastian Dröge
9e8fee59c4
Update Cargo.lock
2023-07-05 12:18:03 +03:00
Sebastian Dröge
7de3cef890
Update versions to 0.20.7
2023-07-05 12:17:47 +03:00
Sebastian Dröge
2c65a5a86a
Update dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:36:44 +03:00
Sebastian Dröge
0f2c850785
gstreamer: Move various MetaAPI
methods to an extension trait
...
These don't make sense to implement any different than the default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:36:44 +03:00
Sebastian Dröge
d77f983b02
basetransform: Don't leak any output buffer if prepare_output_buffer
fails
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:36:44 +03:00
Sebastian Dröge
38420c7aab
basetransform: Fix memory leak when dropping buffers from the transform function
...
Also add a basic test for a basetransform subclass.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/472
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:36:44 +03:00
Li Yuanheng
cbe627fe8b
appsink: property should use hyphen not underscore
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:32:45 +03:00
Thibault Saunier
b9a9464301
ges: Mark asset APIs as Send+sync
...
Those objects are MT. safe
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:32:38 +03:00
Thibault Saunier
559720693d
ges: Allow subclassing GESFormatter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:32:00 +03:00
Sebastian Dröge
9b2a0f55c7
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/1290 >
2023-07-05 11:31:23 +03:00
Sebastian Dröge
d05ebfaf45
Update to cocoa 0.25
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:31:17 +03:00
Sebastian Dröge
5cf82ac910
Update to itertools 0.11
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:31:08 +03:00
Guillaume Desmottes
5b0f29003f
pbutils: implement debug() method on DiscovererInfo related structs
...
The default Debug implementation is not very useful but unfortunately
cannot be overridden.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:30:33 +03:00
Sebastian Dröge
3c921f9320
examples: Update to memmap2 0.7
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1290 >
2023-07-05 11:30:16 +03:00
Sebastian Dröge
f17ef98d4a
Update Cargo.lock
2023-06-06 17:15:41 +03:00
Sebastian Dröge
d703cbcea6
Update CHANGELOG.md for 0.20.6
2023-06-06 17:13:05 +03:00
Sebastian Dröge
3eacb10d43
Update versions to 0.20.6
2023-06-06 17:10:21 +03:00
Sebastian Dröge
1792f72a14
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 14:33:44 +03:00
Sebastian Dröge
af77bd0b6a
pbutils: Move DiscovererStreamInfo
iterators to an extension trait
...
This way it can also be called directly on subclasses.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 14:33:44 +03:00
Sebastian Dröge
24a00b9929
pbutils: Manually implement DiscovererStreamInfo::stream_id()
...
It can return `NULL` in some cases. The next release will use an
`Option` but to keep backwards compatibility here, `NULL` is mapped to
the empty string for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 14:33:44 +03:00
Daniel Pendse
545781d241
rtsp-server: Add RTSPContext uri getter
...
Add uri getter from RTSPContext
Fix #469
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 14:03:42 +03:00
Sebastian Dröge
011d3535bc
gstreamer: Only retrieve the debug category once per log call
...
Each retrieval would go through the one-time-initialization check, i.e.
yet another branch, so let's avoid that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 13:56:25 +03:00
Sebastian Dröge
0d45fa3f07
gstreamer: Remove unnecessary clone()
in debug logging macros
...
The macro called from them is already doing the `clone()` itself.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 13:56:19 +03:00
Sebastian Dröge
a7517cd27b
gstreamer: Use temporary GStr
for the debug category constructors
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 13:56:10 +03:00
Sebastian Dröge
670d8ceec6
gstreamer: Mark DebugCategory
as repr(transparent)
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 13:56:02 +03:00
Sebastian Dröge
b0d6cab254
examples: Update to memmap2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1274 >
2023-06-06 13:55:50 +03:00
Sebastian Dröge
371713a506
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1261 >
2023-05-10 11:49:35 +03:00
Sebastian Dröge
a01a0f2e37
gstreamer: Get function name for logging outside the internal closure
...
Otherwise the function name will include the name of the closure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1261 >
2023-05-10 11:49:16 +03:00
Sebastian Dröge
50ec192285
Update Cargo.lock
2023-04-22 11:52:30 +03:00
Sebastian Dröge
022a340742
Update versions to 0.20.5
2023-04-22 11:49:53 +03:00
Sebastian Dröge
42ec126d56
Update CHANGELOG.md for 0.20.5
2023-04-22 11:49:23 +03:00
Guillaume Desmottes
ff488987fa
gstreamer: fix unused import in test
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1252 >
2023-04-21 12:19:48 +03:00
Sebastian Dröge
97d55cdacb
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1252 >
2023-04-21 12:08:48 +03:00
Sebastian Dröge
b611f9702c
Fix a couple of new Rust 1.69 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1252 >
2023-04-21 12:07:26 +03:00
Thibault Saunier
8d478c3fc9
miniobject: Implement the HasParamSpec trait in the macro
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1252 >
2023-04-21 12:07:21 +03:00
Bilal Elmoussaoui
4a60c71c84
gst-player: Implement Default for Player
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1252 >
2023-04-21 12:07:12 +03:00
Sebastian Dröge
3481f3b6c0
Update Cargo.lock
2023-04-07 13:06:40 +03:00
Sebastian Dröge
6fb1714114
Update versions to 0.20.4
2023-04-07 13:03:23 +03:00
Sebastian Dröge
78ded9ad88
Update CHANGELOG.md for 0.20.4
2023-04-07 13:02:41 +03:00
Sebastian Dröge
b72533d926
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 12:02:13 +03:00
Sebastian Dröge
e9644fb733
examples: Update to windows 0.48
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 12:02:13 +03:00
Sebastian Dröge
7d9b7fdaf7
examples: Update to windows 0.47
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 12:02:13 +03:00
Sebastian Dröge
43f29e361e
examples: Update to windows 0.46
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 12:02:13 +03:00
Sebastian Dröge
a929123d4d
deny: Update for older versions of the windows bindings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 12:02:01 +03:00
Sebastian Dröge
1d9d4cc346
deny: Update to allow multiple versions of syn for now
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 12:02:01 +03:00
Sebastian Dröge
64bc1f7625
webrtc: Work around WebRTCICE::add_candidate()
API breakage in 1.24
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 11:55:10 +03:00
Sebastian Dröge
87a70b16ba
audio: Don't store a copy of the AudioInfo
in AudioFrame
...
Instead just reference the one inside the FFI struct directly by making
sure that the memory representation of the FFI and Rust type are the
same.
This reduces the size of `AudioFrame` by about half.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1245 >
2023-04-07 11:52:08 +03:00