5.2 KiB
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, specifically the variant used by Rust.
[0.9.0] - 2017-11-26
Added
- Bindings for (outputting to) the GStreamer logging system
- Bindings for the GStreamer base library
- Bindings for all the
Pad
functions to override pad behaviour, and pad task functions - Bindings for
StaticCaps
andStaticPadTemplate
- Bindings for
deep-notify
signal onObject
- Support for directly creating
Error
/Warning
/Info
Messages
and posting them from an element with context information (file, line, module, etc.) similar to the CGST_ELEMENT_ERROR
macro - Support for setting custom fields in
Messages
/Events
during construction - Support for creating Buffers out of anything that is
AsRef<[u8]>
orAsMut<[u8]>
- Support for using the
Read
trait onAdapter
- Functions for getting all sink/src/all pads of an
Element
, and all children of aBin
- Builder for
Caps
andStructures
in addition to the existing functions AppSrc
/AppSink
implementBaseSrc
/BaseSink
andURIHandler
- Rust ports of the basic tutorials 1 to 8 from https://gstreamer.freedesktop.org/documentation/tutorials/
- "Getting started" and "Installation" sections to the README.md
- "dox" feature for generating documentation for all available configurations
Fixed
StackTraceFlags
are only available since 1.12- Worked around macOS requiring a
NSRunLoop
running on the main thread in all examples and tutorials, to be able to show a window or anything else
Changed
-
ClockTime
is now a wrapper aroundOption<u64>
to handle theCLOCK_TIME_NONE
case better. This wrapper implements all the arithmetic and other traits as needed and ensures that no accidential calculations withCLOCK_TIME_NONE
can happen -
"Values with format", like in
Duration
/Position
/Convert
queries orSeek
events now return aFormatValue
type. This contains the actualFormat
together with the value and does any required conversions. This also makes it harder to accidentially mix e.g. values in bytes and time -
PadProbeId
does not implementClone
/Copy
anymore -
Property notify watches return a custom type instead of ulong
-
Error
/Warning
/Info
Messages
can only be created with specific kinds ofglib::Error
now. Using arbitrary ones does not work -
Iterator
bindings were completely rewritten and provide the item type as a generic type parameter now, greatly simplifying its usage -
All
glib::Values
are nowglib::SendValue
instead, e.g. inCaps
andStructures
, as their content must be possible to send to different threads safely -
Message::get_src()
can returnNone
-
Allow
None
asCaps
inAppSrc
/AppSink
-
Allow everything implementing
Into<Option<&str>>
to be used as a pad name -
Moved
copy()
fromGstRc
directly toMiniObject
-
Success/Error enums (like
FlowReturn
,PadLinkReturn
,StateChangeReturn
) now implement aninto_result()
function that splits them into aResult
with the good and bad cases. Also mark them as#[must_use]
to make it harder to accidentially ignore errors. -
Error enums implement the
Error
trait -
Many examples use the
failure
crate for error handling now, cleaning up the error handling code quite a bit -
Lots of other code cleanup, compiler/clippy warning cleanup, etc.
[0.8.2] - 2017-11-11
Fixed
- Implement StaticType of BufferRef instead of Buffer. Buffer aka GstRc already implements StaticType if BufferRef does, and without this it was not possible to use Buffers in GValues.
- Free memory of the appsink/appsrc callbacks with the correct type. It was crashing because of using the wrong type before.
- Fix documentation URLs in Cargo.toml.
Added
- Installation instructions and links to documentation for getting started to README.md.
0.8.1 - 2017-09-15
Added
- Implement Send+Sync for Query, Message and Event, and their corresponding Ref types.
Fixed
- Constructor for gst_player::Player now works properly with GStreamer 1.12 when passing a video renderer or signal dispatcher. There was a reference counting bug.
- Instead of returning &'static references from functions, return references with a generic, unbound lifetime instead. See https://github.com/rust-lang/rust/pull/42417#issue-233404573
- Various "unused external crate" warnings and clippy warnings everywhere.
Changed
- Remove Cargo.lock from GIT, it's not very useful for library crates.
- Run everything through latest rustfmt-nightly.
- Use while-let (instead of loop and if-let) and CLOCK_TIME_NONE (instead of u64::MAX) in the examples.
[0.8.0] - 2017-08-31
- Initial release of the autogenerated GStreamer bindings. Older versions (< 0.8.0) of the bindings can be found here. The API of the two is incompatible.