Sami Jaktholm
6f867443c9
tags: fix album tag definition
...
The Album tag should be defined using the GST_TAG_ALBUM constant instead
of GST_TAG_ARTIST_SORTNAME.
2018-12-28 19:51:28 +02:00
Sebastian Dröge
69af6a5975
bus: Add iter() and iter_timed() that return Iterators around the corresponding pop() functions
...
And make use of them in the examples where it makes sense.
2018-12-28 00:06:03 +02:00
Sebastian Dröge
005f436631
Buffer::from_slice() / from_mut_slice() can't possibly return None
2018-12-26 12:13:23 +01:00
Bastian Köcher
d257ece388
Make Value
serialize/deserialize Buffer
s
2018-12-25 01:40:17 +01:00
Sebastian Dröge
93d1349d78
Use new GLib API for generically implementing GObject interfaces
2018-12-19 13:15:20 +02:00
Sebastian Dröge
11db200dd6
Remove some historical cruft from the README.md
2018-12-13 19:46:57 +02:00
Sebastian Dröge
654d98b269
Update README.md to mention that this also allows writing GStreamer plugins
...
And clarify that gst-plugins-rs only contains various plugins.
2018-12-13 19:41:07 +02:00
Sebastian Dröge
d780b92f21
Use an extension trait instead of a custom type for the GStreamer param specs
...
This way they can simply be created via glib::ParamSpec::fraction() for
example.
2018-12-11 12:37:15 +02:00
Sebastian Dröge
36bcb5630a
Remove various unused use statements
2018-12-08 14:58:14 +02:00
Sebastian Dröge
6bba3d8518
Add 'static trait bound to all ExtManual traits and get rid of trait bounds for their impls
2018-12-08 14:58:14 +02:00
Sebastian Dröge
5c93e134a7
Regenerate everything with new version of gir
2018-12-08 14:58:14 +02:00
Sebastian Dröge
fa988fe73d
Make gst_define_mini_object_wrapper! macro work stand-alone without requiring specific names in scope
2018-12-08 12:53:10 +02:00
François Laignel
8c3df63b95
URIHandler: rename get_type
...
Avoid a conflict with the `get_type` function declared by the
`glib_object_subclass!` macro.
2018-12-03 20:47:58 +01:00
Sebastian Dröge
1515707655
Add bindings for the array/fraction param spec constructors
2018-11-29 19:18:45 +00:00
Sebastian Dröge
3febc42628
Update for glib-rs API changes
2018-11-28 21:55:21 +02:00
Sebastian Dröge
12c3d1e911
Update CHANGELOG.md for 0.12.2
2018-11-26 16:16:57 +01:00
Sebastian Dröge
8c9d1abe9d
Remove GitLab badge
...
It only works for gitlab.com currently
2018-11-26 16:16:26 +01:00
Sebastian Dröge
6629d1b3f6
Update documentation to GitLab pages
2018-11-26 16:15:53 +01:00
Sebastian Dröge
b41517234d
Various fixes for the README.md of the separate crates
2018-11-26 11:40:55 +01:00
Sebastian Dröge
5df964435c
Update README.md with changes from the main one
2018-11-26 11:36:48 +01:00
Sebastian Dröge
dad32c16c4
Update gst-plugin-rs link to gst-plugins-rs
2018-11-26 11:34:47 +01:00
Víctor Manuel Jáquez Leal
ec8727c3ca
Make rustfmt in CI happy
2018-11-23 15:32:05 +01:00
Sebastian Dröge
d2b911a629
Port GhostPad subclassing
2018-11-21 16:14:06 +02:00
Sebastian Dröge
ec2a0635ca
Port Pad subclassing
2018-11-21 16:14:06 +02:00
Sebastian Dröge
97211e869b
Port Pipeline subclassing
2018-11-21 16:14:06 +02:00
Sebastian Dröge
55dac7eeb4
Port Bin subclassing
2018-11-21 16:14:06 +02:00
Sebastian Dröge
0a8d34bc23
Port ChildProxy subclassing
2018-11-21 16:14:06 +02:00
Sebastian Dröge
a0d2f0e98f
Port URIHandler subclassing
2018-11-21 16:14:06 +02:00
Sebastian Dröge
d2f00ca1e0
Allow passing normal strings to gst_plugin_define!() without explicit \0 at the end
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugin-rs/issues/38
2018-11-21 16:14:06 +02:00
Sebastian Dröge
9ff906eb8e
Declare correct major/minor plugin versions based on bindings configuration
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugin-rs/issues/37
2018-11-21 16:14:06 +02:00
Sebastian Dröge
56319f9294
Move subclassing infrastructure into the main bindings
...
And port Element bindings to the new infrastructure.
2018-11-21 16:14:06 +02:00
Sebastian Dröge
d6ce094cfd
Check for successful typefind registration in typefind unit test
2018-11-20 11:15:03 +02:00
Sebastian Dröge
d7157a4279
Add the to-dot-file functions to the gst::Bin trait
...
This allows directly calling them on bins instead of using a global
function.
2018-11-11 10:14:43 +02:00
Sebastian Dröge
f31827f194
Regenerate with latest gir
...
Gets rid of some unneeded property notification functions in GES
2018-11-05 11:18:31 +02:00
Thijs Vermeir
25e0baf483
update autogenerated files
2018-11-04 19:14:35 +01:00
Thijs Vermeir
ba22a36cdb
use BoolError for {Element,TypeFind,DeviceProvider}::register
2018-11-04 19:14:35 +01:00
Sebastian Dröge
fb0178a4f2
Call gst::init() in message::test_other_fields() test at the beginning
2018-11-03 20:15:27 +02:00
Sebastian Dröge
f4a6aa4481
Change all references from GitHub to freedesktop.org GitLab
2018-11-03 20:08:42 +02:00
Víctor Manuel Jáquez Leal
60c9cdfda1
Update autogenerated code with latest gir
2018-10-31 17:33:15 +02:00
Arun Raghavan
f4685c4629
Use FlowError instead of FlowReturn as error part of Result
...
This prevents the possibility of a Result that is an Err(Ok), which
would not be meaningful.
2018-10-29 14:40:39 +00:00
Arun Raghavan
a4f25df045
enums: Implement the From trait for error/success
...
This implements the From trait for all *Error/*Success enums to the
corresponding *Return enum.
2018-10-28 18:41:27 +00:00
Sebastian Dröge
6325e0fcce
Fix build with ser_de feature enabled
2018-10-28 17:48:42 +00:00
Sebastian Dröge
9f8ec3b35b
Rename TagList::iter_tag_list() to TagList::iter_generic() and ::iter_tag_list_simple() to ::iter()
...
It's the generic iterator for going over values, and the simple one is
the one you usually want.
Also rename iterator types, but those are internal anyway.
2018-10-28 17:30:25 +00:00
Sebastian Dröge
8a6bcbcedb
Run through rustfmt once again
2018-10-28 13:47:02 +00:00
Sebastian Dröge
54d8065dd3
Add TagList::iter_tag_list_simple() for getting a single value per tag
2018-10-28 13:46:28 +00:00
Sebastian Dröge
0947c8f087
Rename gst::Bin traits from BinExt to GstBinExt to prevent conflicts with gtk::Bin
2018-10-28 11:30:41 +00:00
Sebastian Dröge
7189a6a7c1
Replace various transmutes in meta code with pointer casts
2018-10-11 11:58:01 +03:00
Sebastian Dröge
e2950749e8
Remove some unneeded lifetime annotations
2018-10-11 11:58:01 +03:00
Sebastian Dröge
d19c70694a
Use ? operator instead of explictly propagating None
2018-10-11 11:58:01 +03:00
Sebastian Dröge
fa29872863
Fix various clippy warnings in the serde code
2018-10-11 11:58:01 +03:00
Sebastian Dröge
5d9a3b4272
Use ptr::add(i) instead of ptr::offset(i as isize)
2018-10-11 11:58:01 +03:00
Sebastian Dröge
eb0a804a50
Run everything through latest rustfmt
2018-10-08 15:02:23 +03:00
Sebastian Dröge
c56e9ddfea
Also implement copy() returning the wrapper miniobject on the reference type
...
This way CapsRef::copy() will return a Caps, and not a GstRc<CapsRef>.
2018-10-05 16:36:15 +03:00
Sebastian Dröge
30b9527112
Implement ::copy() directly on miniobject wrapper types
...
This provides the additional wrapping as the one via get via deref will
only give back a GstRc<T> without the additional wrapping.
2018-10-03 16:54:00 +03:00
Sebastian Dröge
8f71a81cb5
Regenerate with latest gir to get rid of unneeded notify signal connectors for construct-only properties
2018-10-03 13:57:07 +03:00
Sebastian Dröge
0f704646f6
Add more complete bindings for allocation query
...
Everything apart from allocators are covered now.
2018-10-01 22:56:32 +03:00
Sebastian Dröge
6d5bded7b3
Get rid of lifetime for the Meta structs
...
The structs themselves don't reference the buffer, the reference to
these structs is borrowed from the buffer.
2018-09-30 01:17:12 +03:00
Sebastian Dröge
7270a837d1
Fix namespace error in previous commit
2018-09-29 12:19:47 +03:00
Sebastian Dröge
cb23d20270
Implement support for buffer Metas
...
Fixes https://github.com/sdroege/gstreamer-rs/issues/103
2018-09-29 11:44:55 +03:00
Sebastian Dröge
ad62d08d65
Implement Display for Caps and TagList
2018-09-28 19:14:35 +03:00
Sebastian Dröge
6fd0ed4cb3
Move all minobjects to newtype wrapper types
...
For consistency with external crates and to help rustdoc, which gets
confused on impl blocks for type aliases.
2018-09-28 18:11:46 +03:00
Sebastian Dröge
26ee546d1a
Always derive Clone for miniobject wrappers
2018-09-28 17:42:52 +03:00
Sebastian Dröge
74024447fe
Add macro to define newtype wrappers around MiniObjects
...
To allow implementing them in a meaningful way in external crates.
2018-09-28 17:37:27 +03:00
Sebastian Dröge
a43c78f2c5
Run everything through rustfmt
2018-09-28 13:15:18 +03:00
Sebastian Dröge
564f9faf84
Add support for CapsFeatures
...
Fixes https://github.com/sdroege/gstreamer-rs/issues/13
2018-09-28 13:15:18 +03:00
Sebastian Dröge
857ed8609c
Structure is Sync, and StructureRef is Send+Sync
2018-09-22 11:00:17 +03:00
Sebastian Dröge
05b591c709
Update CHANGELOG.md for 0.12.1
2018-09-21 11:43:01 +03:00
Sebastian Dröge
0ddab16801
Update versions to 0.13.0
2018-09-10 01:54:25 +03:00
Sebastian Dröge
a2a7eac8a8
Update CHANGELOG.md for 0.12.0
2018-09-10 01:54:07 +03:00
Sebastian Dröge
08dcd9f22e
Update ron dependency (for tests) to 0.4
2018-09-06 14:10:30 +03:00
Sebastian Dröge
2e139bd202
Update CHANGELOG.md for 0.11.6
2018-08-27 10:04:16 +03:00
Sebastian Dröge
3c900e6102
Regenerate with latest gir
2018-08-18 00:25:12 +03:00
Sebastian Dröge
a6d9fe4b0a
Remove std::iter::Iterator impl from gst::Iterator
...
It does not work well with possibly errors during iteration and
requiring to possibly resync.
2018-08-13 20:35:28 +03:00
Sebastian Dröge
0d70950821
Implement Pad::sticky_events_foreach()
2018-08-13 19:58:30 +03:00
Sebastian Dröge
999c84f0a0
Implement ValueExt::compare() around std::cmp::Ordering and implement an eq() function
...
No need for a custom enum
2018-08-10 14:22:15 +03:00
Sebastian Dröge
dba110e8ad
Fix build with two-phase-borrows/NLL
2018-08-08 09:16:18 +02:00
Sebastian Dröge
cf9e875878
Implement Ord/PartialOrd on Seqnum
2018-08-06 11:25:44 +03:00
Philippe Normand
58741b7ea2
gstreamer: Implement deinit() function
...
This function is especially usefull when using the leaks tracer. It was removed
in commit e7a0543c
.
2018-08-04 18:39:53 +03:00
Sebastian Dröge
ccca8248c3
Add getter for the current pad mode
2018-08-01 19:28:57 +03:00
François Laignel
0eb6bcf0c0
serde: restrain unneeded visibilities
2018-07-30 23:18:30 +03:00
François Laignel
68263ffc7d
Buffer: serde: add a TODO for a future better design attempt
...
Serialization and deserialization are asymetrical: ser uses string literals
and de uses a dedicated `struct`, leading to possible inconsistencies.
The idea is to rely on a single `struct` for both ser and de. The only
problem is that, in order to avoid unneeded copies, `buffer` requires an owned
`ByteBuf` for de and a borrowed `Bytes` for ser. `Either` could help adapting
to both situations.
2018-07-30 23:18:30 +03:00
François Laignel
3ed7257da9
DateTime: serde: use an enum
2018-07-30 23:18:30 +03:00
François Laignel
9fd5392a16
value: serde: use stringify
for types
2018-07-30 23:18:30 +03:00
François Laignel
6bda3ef174
serde: add roundtrip tests
...
This allows making sure serialization and deserialization are in sync for
types with asymetrical implementations.
2018-07-30 23:18:30 +03:00
François Laignel
64ea419839
Caps: serde as an enum
...
`Caps` can be `any`, `empty` or matching a list of `Structures`.
2018-07-30 23:18:30 +03:00
François Laignel
9f2f684188
format: serde: avoid redundant ()
for some types
2018-07-30 23:18:30 +03:00
François Laignel
dfc961679f
segment: serde FormattedSegment
s too
...
... and use the same `struct` for serialization and deserialization so
that fields mapping consistency is ensured at compilation time.
2018-07-30 23:18:30 +03:00
François Laignel
ab9cd29bd6
serde: fmt pass
...
Note: clippy didn't raise any warning
2018-07-30 23:18:30 +03:00
François Laignel
d4fb10ef4c
Toc: serde: rename loop_
to loop
2018-07-30 23:18:30 +03:00
François Laignel
0aac055727
Caps: serde: use a placeholder for CapsFeature
...
`CapsFeature` is not available in `gstreamer-rs` yet. Use a placeholder
with a `None` value for now.
2018-07-30 23:18:30 +03:00
François Laignel
fd0c3f4464
Structure: de: pass the new Structure
to the Visitor
...
Use a `DeserializeSeed` to pass the newly created and named `Structure`.
2018-07-30 23:18:30 +03:00
François Laignel
23307a4795
Tags: ser/de: gather tags with the same name together
2018-07-30 23:18:30 +03:00
François Laignel
d856fedf06
Buffer: ser: don't panick if not readable
2018-07-30 23:18:30 +03:00
François Laignel
693121bc55
Buffer: fix instanstiation during deserialization
2018-07-30 23:18:30 +03:00
François Laignel
90b046fbcf
serde: separate serde impl and tests from base module
...
+ fix erroneous `datetime` instead of `buffer` in `BufferRef::serialize`
+ remove ser/de for `Value`s with types `ULong` & `ILong`
2018-07-30 23:18:30 +03:00
François Laignel
3f0cd6fb87
Toc: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
20834e475b
Tags: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
4f948e2cce
Sample: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
5e6f80cc32
Segment: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
a2c4e78f70
GenericFormattedValue: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
0f1d3bea89
BufferList: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
862afe5cc7
Buffer: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
138a0fb18c
ClockTime: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
49d3ee29e9
Caps: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
1ef83c24b8
Structure: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
778e11742f
value: serde impl
2018-07-30 23:18:30 +03:00
François Laignel
0d65b7f1ed
DateTime: serde impl
2018-07-30 23:18:30 +03:00
Sebastian Dröge
2240ef109f
Regenerate with latest GIR and update for the glib::Quark changes
2018-07-30 11:46:40 +03:00
Sebastian Dröge
33a6aab6d7
Run everything through latest rustfmt
2018-07-27 13:36:40 +03:00
Sebastian Dröge
ec8b55ec30
Stream-line pad probe code
...
Don't take another reference of the data passed through the pad probes,
i.e. keeping buffers writable if they're writable.
2018-07-26 03:14:04 +03:00
Sebastian Dröge
632d5f4c57
Change some empty structs to empty enums
...
These should only really exist at the type-level.
2018-07-25 10:07:20 +03:00
Sebastian Dröge
26d9d304c4
Update CHANGELOG.md for 0.11.5
2018-07-24 15:55:07 +03:00
Sebastian Dröge
af5470a8b0
Unref the message in sync bus handlers if Drop is returned
2018-07-24 15:35:26 +03:00
Sebastian Dröge
93b32882ee
tags: Use to_glib_none() to convert &str to a C string instead of as_ptr()
...
The latter does not necessarily give us a NUL-terminated string.
Fixes https://github.com/sdroege/gstreamer-rs/issues/122
2018-07-23 10:17:38 +03:00
Sebastian Dröge
694bcaa697
Fix all clippy warnings
...
Or silence the ones we don't care about.
2018-07-20 10:28:20 +03:00
Sebastian Dröge
fc79b4c4c8
Update CHANGELOG.md for 0.11.4
2018-07-19 18:52:30 +03:00
François Laignel
02a8e9faa0
Tags: more and better getters/adder factorizations
2018-07-12 07:22:39 +02:00
François Laignel
7ca54cf1c5
Tags: factorize get_index
unsafe code
2018-07-12 07:22:39 +02:00
François Laignel
0b9edee8d7
Tags: use SendValue
for generic getters and iterator
2018-07-12 07:22:39 +02:00
François Laignel
be9ef0d152
Tags: implement generic iterators
...
This is the continuation of PR #107 by @ystreet
2018-07-12 07:22:39 +02:00
Matthew Waters
2e1f1eadac
tags: add dynamic tag retrieval based on string's and Value's
...
The rust compiler won't complain if you use the wrong types with the
dynamic getter/adder however GStreamer itself does.
2018-07-12 07:22:39 +02:00
Matthew Waters
fa054fe3b0
gst/tags: combine the static tag references into the impl_tag macro
...
There's no real reason to have them separate when there's already a
macro making types for different tags.
2018-07-12 07:22:39 +02:00
Sebastian Dröge
73a5b26638
Use ParamSpec for the deep-notify signal callback instead of just the name
...
And allow filtering by property-name via the signal details
2018-07-09 19:47:15 +02:00
Sebastian Dröge
dc32d338ef
Let various Caps operations take &CapsRef instead of &Caps
2018-07-06 17:58:54 +02:00
Sebastian Dröge
480d373fbc
Caps::subtract() does not take ownership of the arguments and can be implemented for CapsRef
2018-07-06 17:56:55 +02:00
Sebastian Dröge
8c268ecd06
Gracefully return None in Caps::get_structure() if the index is too high
2018-07-06 10:36:00 +02:00
Sebastian Dröge
75acd7ea95
Fix typefind test if typefind factories without caps are available
2018-07-06 10:35:57 +02:00
Sebastian Dröge
e88017f914
Ensure that miniobjects are writable before creating a mutable borrow
2018-07-06 10:29:09 +02:00
Sebastian Dröge
a3dffc2faa
Switch from futures to futures-preview crates
...
Fixes https://github.com/sdroege/gstreamer-rs/issues/118
2018-06-29 07:43:29 +02:00
Sebastian Dröge
e0972ae1e5
Get rid of manual usage of callback_guard!
2018-06-24 14:52:50 +03:00
Sebastian Dröge
2085d170be
Get rid of callback_guard! as unwinding through FFI is defined behaviour now and aborts
2018-06-24 14:42:11 +03:00
Sebastian Dröge
bd1fb746de
Update to num-rational 0.2
2018-06-22 10:27:14 +03:00
JohanGoversTech
db3fe69415
Change return type of add_probe to support removing ( #116 )
...
* Change return type of add_probe to support 0 PadProbeId
* use from_glib for the conversion of the PadProbeId
2018-06-14 15:45:54 +03:00
François Laignel
f4d57a6652
Fix memory issue building a Sample
with an info
Structure
...
The following code in a `[test]`:
``` rust
let info = Structure::builder("sample.info")
.field("f3", &123i32)
.build();
let sample = Sample:🆕 :<GenericFormattedValue>(
None,
None,
None,
Some(info.as_ref())
);
```
generates one of the followings executing `cargo test`:
```
- segmentation fault
- signal: 6, SIGABRT: process abort signal
- signal: 11, SIGSEGV: invalid memory reference
```
This is due to `ffi::gst_sample_new` expecting to take ownership of the `info`
`Structure`.
2018-06-12 00:23:10 +03:00
Sebastian Dröge
d2272fefa7
Update CHANGELOG.md for 0.11.3
2018-06-08 10:27:24 +03:00
Sebastian Dröge
1192a027b4
Regenerated with latest GIR and GIR files
2018-05-21 11:55:19 +03:00
Sebastian Dröge
4692806b00
Add Bus::remove_watch()
...
It was accidentially ignored before
2018-05-19 10:37:09 +03:00
Sebastian Dröge
da6b04abfd
Bus::create_watch() can't return None, change it to return no Option
2018-05-19 10:36:15 +03:00
Thibault Saunier
2962f186f7
Print pointer value when formatting debug strings
2018-05-14 09:22:25 +03:00
Sebastian Dröge
be646e78d9
Update to muldiv 0.2
2018-05-11 10:37:19 +03:00
Sebastian Dröge
7429138274
Update CHANGELOG.md for 0.11.2
2018-05-09 12:48:33 +03:00
Sebastian Dröge
c31921e093
Further work-arounds for floating reference handling changes between 1.12 and 1.14
...
This fixes various memory-safety issues caused by broken reference
counting. We have to handle pre-1.14 and post-1.14 differently in
constructors.
See https://bugzilla.gnome.org/show_bug.cgi?id=743062#c30
2018-05-09 12:20:59 +03:00
Sebastian Dröge
2cefd9aea6
Re-run everything through rustfmt
2018-04-25 11:13:14 +03:00
Sebastian Dröge
46d27e3e75
Regenerate everything with latest GIR
2018-04-23 20:45:15 +03:00
Sebastian Dröge
a276c226fd
Port BusStream to futures 0.2
2018-04-23 20:27:17 +03:00
Sebastian Dröge
5dd17d6248
Update CHANGELOG.md for 0.11.1
2018-04-07 20:32:28 +03:00
Sebastian Dröge
03055f4e84
Change Structure/StructureRef to_string() to the minimal required fix
...
And add a comment to why we need it. No other struct with a to_string()
function is affected.
https://github.com/sdroege/gstreamer-rs/issues/101
2018-04-07 13:37:44 +03:00
Sebastian Dröge
ce9b98f338
Add Display impl for StructureRef too
2018-04-06 13:22:08 +03:00
Sebastian Dröge
f346d57b4f
Fix infinite recursion in Structure::to_string()
...
Instead of StructureRef's to_string(), we were calling
ToString::to_string() in the Display impl. Which then called into itself
again.
Fixes https://github.com/sdroege/gstreamer-rs/issues/101
2018-04-06 13:22:08 +03:00
Guillaume Desmottes
c5617f6a47
WIP: test Structure string conversions
2018-04-06 13:22:08 +03:00