gstreamer-rs/gstreamer/src
Sebastian Dröge ceed45cfd7 gstreamer: Optimize Buffer / Memory from_slice() to have fewer allocations
Instead of using `gst_memory_new_wrapped_full()` and boxing the data,
create an GstAllocator subclass that allows allocating memories that
store the data inline.

By avoiding the box, one additional heap allocation per memory is
avoided.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/498

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1357>
2023-12-05 10:51:28 +02:00
..
auto Regenerate with latest gir 2023-11-29 11:59:03 +02:00
format gstreamer: format: Implement some more conversion traits 2023-10-25 12:09:45 +03:00
subclass element: Add catch_panic_future() helper function for subclasses 2023-11-07 10:43:20 +02:00
allocation_params.rs gstreamer: Implement Default trait for AllocationParams 2023-10-24 15:04:14 +00:00
allocator.rs Compile out GStreamer version checks if a high enough version is configured at build time 2023-01-06 10:41:55 +02:00
bin.rs gstreamer: move debug_* functions to their own module 2023-12-04 12:46:59 +01:00
buffer.rs gstreamer: Optimize Buffer / Memory from_slice() to have fewer allocations 2023-12-05 10:51:28 +02:00
buffer_cursor.rs Fix/silence various 1.72 clippy warnings 2023-08-28 16:50:41 +00:00
buffer_pool.rs Seal manual traits 2023-07-06 14:21:45 +03:00
buffer_serde.rs fix typos in comments 2023-04-07 17:09:48 +02:00
bufferlist.rs Simplify various raw pointer casts everywhere 2023-11-29 11:24:47 +02:00
bufferlist_serde.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
bus.rs Adapt to glib::Continue changing it's module 2023-07-06 22:22:43 +02:00
bus_unix.rs Remove dox feature and replace by docsrs configuration 2023-05-04 09:19:29 +03:00
bus_windows.rs Remove dox feature and replace by docsrs configuration 2023-05-04 09:19:29 +03:00
caps.rs gstreamer: Remove deprecated APIs 2023-11-23 13:38:16 +02:00
caps_features.rs Use re-exported once_cell 2023-07-06 16:50:35 +03:00
caps_features_serde.rs Update various APIs to use glib::GStr 2023-01-15 21:05:57 +02:00
caps_serde.rs Update various APIs to use glib::GStr 2023-01-15 21:05:57 +02:00
child_proxy.rs Seal manual traits 2023-07-06 14:21:45 +03:00
clock.rs Seal manual traits 2023-07-06 14:21:45 +03:00
context.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
control_binding.rs Seal manual traits 2023-07-06 14:21:45 +03:00
control_source.rs Seal manual traits 2023-07-06 14:21:45 +03:00
date_time.rs fix typos in comments 2023-04-07 17:09:48 +02:00
date_time_serde.rs Fix various new clippy warnings 2023-01-25 10:18:33 +02:00
device_monitor.rs Seal manual traits 2023-07-06 14:21:45 +03:00
device_provider.rs gstreamer: Add DeviceProviderClassExt extension trait for class methods 2023-10-11 16:06:16 +03:00
device_provider_factory.rs Update various APIs to use glib::GStr 2023-01-15 21:05:57 +02:00
element.rs gstreamer: Simplify Element::element_class() implementation a bit 2023-10-11 16:06:20 +03:00
element_factory.rs gstreamer: Remove deprecated APIs 2023-11-23 13:38:16 +02:00
element_factory_type.rs Adapt to bitflags update 2023-07-06 15:17:32 +02:00
enums.rs gstreamer: rank: Do not implement gst::Rank as enum 2023-11-02 13:32:00 +02:00
error.rs gstreamer: error: Allow using variable expansion in loggable_error! macro 2023-10-26 11:49:58 +00:00
event.rs Fix/silence various 1.72 clippy warnings 2023-08-28 16:50:41 +00:00
flag_serde.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
functions.rs gstreamer: rename util_get_timestamp() to get_timestamp() 2023-12-04 17:07:21 +01:00
ghost_pad.rs gst/pad: [Ghost]PadBuilder: inherit name from template or target when possible 2023-05-12 10:55:46 +00:00
gobject.rs Seal manual traits 2023-07-06 14:21:45 +03:00
gtype.rs Remove dox feature and replace by docsrs configuration 2023-05-04 09:19:29 +03:00
iterator.rs gst: Manually impl Bin & Pipeline constructors 2023-05-12 10:55:46 +00:00
lib.rs gstreamer: Optimize Buffer / Memory from_slice() to have fewer allocations 2023-12-05 10:51:28 +02:00
log.rs gstreamer: move debug_* functions to their own module 2023-12-04 12:46:59 +01:00
memory.rs gstreamer: Optimize Buffer / Memory from_slice() to have fewer allocations 2023-12-05 10:51:28 +02:00
memory_wrapped.rs gstreamer: Optimize Buffer / Memory from_slice() to have fewer allocations 2023-12-05 10:51:28 +02:00
message.rs Fix/silence various 1.72 clippy warnings 2023-08-28 16:50:41 +00:00
meta.rs gstreamer: meta: Add MetaRef::copy() for copying a meta between buffers 2023-11-03 11:55:20 +02:00
miniobject.rs Fix/silence various 1.72 clippy warnings 2023-08-28 16:50:41 +00:00
object.rs Seal manual traits 2023-07-06 14:21:45 +03:00
pad.rs gstreamer: Add accessors for PadProbeDatas on PadProbeInfo 2023-10-16 11:28:18 +03:00
pad_template.rs Remove dox feature and replace by docsrs configuration 2023-05-04 09:19:29 +03:00
param_spec.rs gstreamer: Remove deprecated APIs 2023-11-23 13:38:16 +02:00
parse.rs gstreamer: move parse_* functions to their own module 2023-12-04 16:15:51 +01:00
parse_context.rs Generate missing doc aliases for newtypes 2021-06-01 15:15:59 +02:00
pipeline.rs Seal manual traits 2023-07-06 14:21:45 +03:00
plugin.rs Migrate everything to object lock API instead of custom GMutex handling 2023-02-06 10:50:33 +02:00
plugin_feature.rs Seal manual traits 2023-07-06 14:21:45 +03:00
promise.rs Inline various trivial functions 2023-01-11 11:33:54 +02:00
proxy_pad.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
query.rs gstreamer: Add fmt::Debug impls for owned Event/Query/Message too 2023-05-24 10:36:08 +03:00
rank.rs gstreamer: rank: Do not implement gst::Rank as enum 2023-11-02 13:32:00 +02:00
registry.rs gstreamer: move update_registry() as Registry method 2023-12-04 16:15:51 +01:00
sample.rs Simplify various raw pointer casts everywhere 2023-11-29 11:24:47 +02:00
sample_serde.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
segment.rs Change some assertions to debug assertions 2023-01-14 17:13:46 +02:00
segment_serde.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
serde_macros.rs Use re-exported once_cell 2023-07-06 16:50:35 +03:00
static_caps.rs Update various APIs to use glib::GStr 2023-01-15 21:05:57 +02:00
static_pad_template.rs Change some assertions to debug assertions 2023-01-14 17:13:46 +02:00
stream.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
stream_collection.rs Fix various new clippy warnings 2023-01-25 10:18:33 +02:00
structure.rs gstreamer: Remove deprecated APIs 2023-11-23 13:38:16 +02:00
structure_serde.rs Update various APIs to use glib::GStr 2023-01-15 21:05:57 +02:00
tag_setter.rs Seal manual traits 2023-07-06 14:21:45 +03:00
tags.rs gstreamer: fix typo in GeoLocationLongitude tag 2023-04-07 17:09:48 +02:00
tags_serde.rs Fix/silence various 1.72 clippy warnings 2023-08-28 16:50:41 +00:00
task.rs Fix various new 1.73 clippy warnings 2023-10-03 17:44:12 +03:00
task_pool.rs Seal manual traits 2023-07-06 14:21:45 +03:00
toc.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
toc_serde.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
tracer.rs Change some assertions to debug assertions 2023-01-14 17:13:46 +02:00
tracer_factory.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
typefind.rs gstreamer: rank: Do not implement gst::Rank as enum 2023-11-02 13:32:00 +02:00
typefind_factory.rs Group and merge imports in all manual code 2023-01-04 13:25:17 +02:00
utils.rs Migrate everything to object lock API instead of custom GMutex handling 2023-02-06 10:50:33 +02:00
value.rs gstreamer: Add new Fraction::simplify() bindings 2023-07-06 08:40:36 +03:00
value_serde.rs Fix/silence various 1.72 clippy warnings 2023-08-28 16:50:41 +00:00