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
Jordan Petridis
aeca82c095
ci: Update examples features on windows
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1089 >
2022-12-28 14:37:24 +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
e6e5d25e48
Update CHANGELOG.md for 0.19.5
2022-12-27 12:53:30 +02:00
Jordan Petridis
e9ecdcdd72
ci/windows: Update base image
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1175 >
2022-12-26 16:17:19 +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
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
Jordan Petridis
dfc6344f59
ci: move tests scripts to individual files
...
Instead of inling bash scripts in yaml
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1175 >
2022-12-25 13:25:30 +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
dcfea9c35a
gl: Reset video frame size/stride/offset to 0 for GL mapped frames
...
The memory pointers are actually the GL texture IDs, and accessing them
like raw video memory will read random memory areas.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1173 >
2022-12-22 19:25:54 +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
e70536f6b2
ci: Rebuild CI images another time to get latest GStreamer version
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +00:00
Jordan Petridis
f7b848b3cd
ci/install-{gst,gtk}.sh: run ldconfig after meson install
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +00:00
Jordan Petridis
cd49019941
ci/install-{gst, gtk}: update meson command usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +00:00
Jordan Petridis
7ecc11564d
ci/install-{gst, rust}.sh: add shebangs to the scripts
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +00:00
Jordan Petridis
7b3b4f56ee
ci/install-{gst, gtk}.sh: reformat to make it more readable
...
Split commands and strings to multiple lines
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +00:00
Jordan Petridis
bed4b8644b
ci: Include x264 in the gst build
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +00:00
Jordan Petridis
6c7196732e
ci: Include gpl plugins when building gst
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +00:00
Jordan Petridis
8344cbc829
ci: use a multiline string for FDO_DISTRIBUTION_PACKAGES
...
Makes it easier to read and change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1169 >
2022-12-18 11:50:23 +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
d7a292ec00
video: Update for NavigationModifierType
flags value rename
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1170 >
2022-12-16 22:09:29 +02:00
Sebastian Dröge
7113458128
ci: Rebuild the image for getting newer GStreamer
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1170 >
2022-12-16 18:47:06 +02:00
Sebastian Dröge
2e2b572215
Update GStreamer gir files
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1170 >
2022-12-16 18:46:51 +02:00
Sebastian Dröge
8c22ba25f8
Update CHANGELOG.md for 0.19.4
2022-12-16 11:56:04 +02:00
Sebastian Dröge
857f3740e2
Fix some more new clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1167 >
2022-12-15 18:35:49 +02:00
Sebastian Dröge
c32607a010
ci: Update to Rust 1.66 and meson 0.64.1
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1167 >
2022-12-15 18:16:57 +02:00
Jordan Petridis
9deb507286
ci: Only check default and latest feature version build
...
Testing all the version makes the job slower for not that much
gain. Disable some of them for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1166 >
2022-12-13 21:18:12 +02:00
Jordan Petridis
d867077c3a
ci: Combine windows features builds
...
Part of gstreamer/gstreamer-rs#417
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1166 >
2022-12-13 20:43:24 +02:00
Arun Raghavan
c3a950f207
audio: Add bindings for GstAudioFilter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1165 >
2022-12-13 12:27:05 -05: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
Piotr Brzeziński
e579eb5d84
examples/tutorials: Use NSApp terminate() instead of sending an event
...
Has the same effect while being much more concise.
Unfortunately the cocoa crate doesn't (yet?) have bindings for this
function, so objc::msg_send! had to be used directly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1162 >
2022-12-11 22:09:54 +01: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
Jordan Petridis
1935e04dd8
ci: Fix DAG deps for contianer build jobs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1159 >
2022-12-09 17:37:01 +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