All notable changes to the contrib mono repo project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bump gobject-introspection to 1.69.0
- Build gst for 1.19.1, requires gobject-introspection of ^1.69.0
- Build gst-plugins-base for 1.19.1, apply patches required to run ges on h265
- Build gst-plugins-base with compositor
- libnice uses gitlab source
- Bump glib to 2.68.4
- Conan build of gst errors if self.settings.gstreamer is not compatible with self.version
- Build gst-plugins-good for 1.19.1, apply patches required to run ges on h265
- Build gst-editing-services on 1.19.1
- Take gst version from conan settings
- Bump gstreamer deps to 1.17.1
Before [0.2.1] this project did not have a changelog.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- rgbddemux: Source pads are now reconfigured if new upstream CAPS are received.
- Enforce that some streams become the main stream if they are available.
- This fixes a bug where
dddqmeta
could become the main buffer for non determenistic pad adds.
- This fixes a bug where
rgbdmux
- Some files contain framerate numerator equal to 0. Added condition where numerator is changed to 30 when this happens.
rgbdmux
- Downstream requests for video format are now correctly sent to the upstream element(s), even if their linking is delayed. Previously, video format forwarding could fail if
rgbdmux
was linked with upstream (e.g. in NULL state) before downsteam (e.g. in READY state).
- Downstream requests for video format are now correctly sent to the upstream element(s), even if their linking is delayed. Previously, video format forwarding could fail if
- Refactored elements into submodules.
rgbdmux
- Default value for property
drop-if-missing
to false, as it is not needed in most pipelines and it causes unnecessary amount of buffers to get dropped.
- Default value for property
rgbddemux
- Changed presence of src pad to sometimes instead of request.
- Several review comments from Sebastian Dröge for both
rgbdmux
andrgbddemux
. Thank you for your feedback!- Refactored mutexes to eliminate known places of possible deadlocks.
rgbdmux
- Downstream requests for video format are now correctly sent to the upstream element(s).
- Forwarding of EOS - EOS is now send in
aggregate()
when all sink pads are marked as EOS. - Output CAPS for MJPG stream, i.e. format is now properly specified for downstream elements.
rgbddemux
- Element no longer attempts to push buffers to pads that are not linked.
- This allowed to make use of FlowCombiner in sink chain, which was disabled until now.
- Group ID of upstream is now used during pushing of stream-start events.
- Unneeded src pads are now removed if new sink CAPS were negotiated.
- Internal src pads now contain the name of the stream instead of the pad name, as it was not consistent with the documentation.
- Element no longer attempts to push buffers to pads that are not linked.
- Timestamps in GAP events - use proper timestamps instead of current clock time.
- Fix incorrect computation of the frame duration for GAP event.
- Building this plugin as Gst version 1.16 instead of 1.17.
- Update GStreamer bindings version and various minor cleanups/fixes.
- Fall back to the default pad event handling - fixes EOS not being forwarded correctly in ~50% if cases. Credit to @slomo for the fix.
- Re-implemented the stream-id generation on rgbddemux, so that it follows the GStreamer documentation:
The stream_id should be a unique string that consists of the upstream stream-id, / as separator and a unique stream-id for this specific stream. A new stream-id should only be created for a stream if the upstream stream is split into (potentially) multiple new streams, e.g. in a demuxer, but not for every single element in the pipeline.
- Add gstreamer conan config, bump cargo deps to gst-depth-meta-rs
- Update dependencies
glib
to 0.9gst
to 0.15
rgbdmux
- Fixed EOS forwarding by implementing customsink_event()
handling.rgbdmux
- No longer tries to renegotiate CAPS once EOS was received and the element is shutting down.
rgbddemux
- Addeddistribute-timestamps
property that enables distribution of the main buffer timestamps to the auxiliary buffers embedded within thevideo/rbgd
stream. The property defaults to false and must be explicitly enabled to cause any difference from the previous version.
- Use of standard function for work with
video/rgbd
CAPS fromgst_depth_meta::rgbd
module, instead of custom-local implementation.
- Support for MJPG
rgbdmux
- CAPS negotiation of video formats with downstream element, conversion of these formats fromvideo/rgbd
tovideo/x-raw
and subsequent use of the requested formats during creation of new sink pads.
- Partial KLV packing.
rgbddemux
now forwards the buffers simply as Cap'n Proto serialised buffers
rgbddemux
andrgbdmux
now treats per-frame metadata as top-level streams. This means that they're also included in thestreams
field of thevideo/rgbd
CAPS.
rgbdmux
- Ifdrop-if-missing
is set to false, there is no deadline for the aggregation. This makes deadline based aggregation optional. Ifdrop-if-missing
is set to true, the behaviour is identical to0.1.5
.rgbdmux
- Addeddeadline-multiplier
property that controls the duration of deadline ifdrop-if-missing
is enabled.
rgbdmux
- Splitinternals
intosink_pads
andsettings
to avoid the possibility of deadlock caused by Mutex, which was introduced by the new additions.
rgbdmux
- Dropping of all other frames if one of the sink pads does not have a buffer queued, see propertydrop-if-missing
.rgbdmux
- Synchronisation of buffers by dropping buffers that are late, see propertydrop-to-synchronise
.
- Metadata support: The
rgbddemux
reads per-frame metadata on the frame buffers and pushes them to a sink-pad called dddqmeta. Similarly, if the rgbd CAPS contains a stream called dddqmeta, its content is also outputted on the dddqmeta sink.
- Peer elements may now request pads on the
rgbddemux
, which may be linked when CAPS are available rgbdmux
does downstream CAPS negotiation when sink pads are requested on the element
- Requesting a pad on the
rgbddemux
which is not in thevideo/rgbd
stream will cause the pipeline to freeze
- This patch fixes a bug introduces in 0.1.2 which caused the rgbddemux to return a gst::FlowError when it attempts to push meta buffer for which it does not have a pad.
Prior to 0.1.2 this repository did not have a changelog.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add gstreamer conan setting and depend on it for gst deps
- The colorizer now sets all pixels have
value >= farcut || value < nearcut
to 0. This solves an issue that arose when the near-cut or far-cut on the colorizer does not align with that of thedddqdec
.
Before [0.1.1] this project did not have a changelog.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Set build dep bindgen to 0.56
- Set build dep bindgen to 0.55.0
- Set build dep pkgconf to 0.3.18
- Set build dep bindgen to 0.54.3
- Set build dep pkgconf to 0.3.14
- Set minimum requirement for librealsense2 to version 2.33.1 as it fixes issues with timestamps.
- Rustification of
rs2_distortion
enum.
- Prior to 0.3.0 this repository did not have a changelog.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Context
now implementsSend
- Fixes memory leak in
Context::query_devices
- Updated to librealsense 2.40 to fix .so loading issues
Pipeline::wait_for_frameset()
that returns the entire frameset instead of a list of individual frames.Frame::extract_frames()
for extracting frames embedded in frameset.- Derived
Debug
forStreamData
.
- Processing blocks. Tested with align processing block.
- Removed
&self
parameter on processing block'screate_*
method, as they couldn't be constructed otherwise.
- Bump version of librealsense-rs to 0.5.2
- Bump version of librealsense-rs
- Display for
StreamResolution
in addition to Constructor and Debug introduced in '2.2.0'
ProcessingBlock
log::log_to_file()
- Constructor and Debug for
StreamResolution
- Applied clippy suggestions
- Wrappers for
Intrinsics
andExtrinsics
- Acquisition of
Intrinsics
viaStreamProfile::get_intrinsics()
- Acquisition of
Extrinsics
viaStreamProfile::get_extrinsics()
orStreamProfile::get_extrinsics_to()
- Acquisition of
- Add
Pipeline::poll_for_frames()
- Add
Playback
and the functionality for setting rosbag playback to non real-time
- Add new features
- Add documentation, README and CHANGELOG
- Add function prototypes
- Add file prototypes
- Add few high-level functionalities
- Standardise naming with C/C++ API, deprecate old names
- Make handles to C objects public only to the crate
- The following methods now take
&str
as parameter instead ofString
:Config::enable_device()
Config::enable_device_from_file()
Config::enable_device_from_file_repeat_option()
Config::enable_record_to_file()
Device::load_json()
- Prior to 0.6.0 this repository did not have a changelog.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bump cargo.toml dep on bindgen to 0.55.0 due to yanked 0.54.1
- Bump cargo.toml dep on bindgen to 0.54.1
- Moved repo to public subgroup
- Added MIT license
- Support for linking with
pkgconfig
.
- Compiler linking of
k4arecord
library.
- Add public access to k4a C enumerations under Rustified names. E.g.
k4a_image_format_t
asImageFormat
. - Add
README.md
and thisCHANGELOG.md
.
- Fixed compiler linking of
k4a
library.
- Prior to 0.1.1 this repository did not have a changelog.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Device::open_first_unused()
, which allows opening of first UNUSED device as per https://gitlab.com/aivero/public/gstreamer/gst-k4a/-/issues/16.
- Fixed multi-camera support
- Bump dep version k4a-sys to 0.1.6 due to bindgen 0.55.0
- Cast data type for vec lengths returned from bindgen bindings from u64 to usize. Necessary to support bindgen 0.54.1
- Bump dep version k4a-sys to 0.1.5
- Data type for byte array pointer, used by
k4a_calibration_get_from_raw()
, which needs to be different for x86_64 and aarch64 builds
- Error implementation of K4aError, which was causing infinite loop
- Added MIT license
- Bumped k4a-sys dependency to 0.1.4
- Make conan dependencies dynamic
- Move to public subgroup
- Made parameters contained within
IntrinsicsParameters
public.
Calibration::default()
implementation.- Allow
Transformation
to move between threads by addingSend
andSync
implementations.
- Replaced the
Transformation
member&Calibration
withResolution
for depth and color as that is all we need.
Calibration::extrinsics(source,target)
function, which allows the user to obtain the extrinsics between source and target.
CameraCalibration
wrapper, which allows the user to inspect and use the camera calibration.Intrinsics
wrapper.Extrinsics
wrapper.
- Return
Result<Image>
fromCapture::get_X_image()
instead of justImage
to accound for possible failure.
- Small helper functions for work with generated enums under
utilities.rs
- Performed first tests with physical device and recording
- Fixed issues with passing of handles
- Fixed issues with allocating memory for CString returned by several functions
- Add
K4aError
. - Add linking to structs and methods in documentation.
- Add this
CHANGELOG.md
.
- Use
VectorXYZ
to contain output fromImuSample
accelerometer and gyroscope instead of[f32, 3]
. - Make use of
K4aError
. - Make use of the Rustified struct implemented in
k4a-sys
"0.1.1". - Format documentation.
- Update
README.md
.
- Prior to 0.1.1 this repository did not have a changelog.