Commit graph

144 commits

Author SHA1 Message Date
Sebastian Dröge
4874c7eb1f Correctly check for the DISCONT buffer flag to be set 2022-03-20 20:11:28 +02:00
Sebastian Dröge
6cf7d28481 Use SPDX license format in Cargo.toml 2022-03-14 10:23:16 +02:00
Sebastian Dröge
b38f6cc731 Remove now unnecessary Send+Sync impls for element/etc subclasses
This is now automatically implemented.
2022-02-28 18:56:58 +02:00
Sebastian Dröge
6ffe9d3744 audiofx: Update nnoiseless dependency to 0.4 2022-02-28 09:31:47 +02:00
François Laignel
2cf84d5ce8 Update minimum supported Rust version to 1.57 2022-02-21 23:32:32 +01:00
François Laignel
422ea740ca Update to gst::_log_macro_
See the details:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/980
2022-02-21 20:50:01 +01:00
Tomasz Andrzejak
2c6ab9dd1f Bump hrtf to version 0.8
hrtfrender tests are now using a fake hrir configuration file which is
stripped of actual position coefficients. The generated config does not
work anymore.
2022-02-01 00:16:20 +01:00
Sebastian Dröge
bbe0b068e5 hrtfrender: Switch back to hrtf 0.7
This needs some more work because of behaviour changes.
2022-01-31 15:50:34 +02:00
Sebastian Dröge
42f9f99690 Update to parking_lot 0.12 and hrtf 0.8 2022-01-31 15:20:44 +02:00
Sebastian Dröge
65fcd55160 Update for event/message/query view API changes 2022-01-19 15:07:45 +02:00
Sebastian Dröge
b2d0172422 Replace Foo::from_instance(foo) with foo.imp() 2022-01-17 19:36:41 +02:00
Sebastian Dröge
51f8e963d6 Add SPDX-License-Identifier to all file headers 2022-01-15 21:18:47 +02:00
Sebastian Dröge
326449b3e6 Re-license LGPL-2.1 plugins to MPL-2
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/168
2022-01-15 21:05:11 +02:00
Sebastian Dröge
0c7764fa40 Update versions to 0.9.0 2022-01-15 20:33:49 +02:00
Sebastian Dröge
ab14c50d1c Ignore clippy::non_send_fields_in_send_ty lint
It's useless in its current shape and wrongly triggering on all types.

See https://github.com/rust-lang/rust-clippy/issues/8045
2022-01-14 12:09:57 +02:00
Guillaume Desmottes
0615a94cae spotify: fix license when registering plugin 2022-01-03 00:08:36 +01:00
Guillaume Desmottes
53cef60f2c spotifyaudiosrc: log error if setup() failed 2022-01-03 00:02:39 +01:00
Guillaume Desmottes
faee72bf5b spotify: link the proper LICENSE file 2022-01-03 00:02:20 +01:00
Guillaume Desmottes
9858eeeb00 spotify: relicense to MPL-2.0 2021-12-30 14:40:31 +01:00
Guillaume Desmottes
61cdf47462 add spotify plugin
Plugin adding an element to play audio from Spotify.
2021-12-29 16:48:20 +01:00
Sebastian Dröge
c46901d150 Fix or silence various new 1.57 clippy warnings 2021-11-30 16:31:50 +02:00
Tomasz Andrzejak
4668da45ef audiofx: Add HRTF renderer element
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/128
2021-11-23 08:19:29 +00:00
Sebastian Dröge
86f422592b Update for glib::Enum / glib::Boxed / glib::flags! macro renames 2021-11-22 11:04:26 +02:00
Sebastian Dröge
55aad51141 Update for glib constructor renames
See https://github.com/gtk-rs/gtk-rs-core/pull/384
2021-11-20 14:31:06 +02:00
Bilal Elmoussaoui
82be7b3ac5 adapt to ObjectExt improvements 2021-11-08 14:43:53 +02:00
Sebastian Dröge
d9bda62a47 Update for GLib/GStreamer API changes
And clean up a lot of related property/caps/structure code.
2021-11-06 09:34:10 +02:00
Sebastian Dröge
0a7d1639e7 Update to Rust edition 2021 and minimum supported Rust version to 1.56 2021-10-31 17:40:05 +02:00
Sebastian Dröge
b9541b2ca4 Update for GstObjectImpl API change 2021-10-23 12:31:33 +03:00
François Laignel
27b9f0d868 Improve usability thanks to opt-ops
The crate option-operations simplifies usage when dealing with
`Option`s, which is often the case with `ClockTime`.
2021-10-18 15:09:47 +02:00
Sebastian Dröge
b1bd3020fa audioloudnorm: Clamp to the expected limits instead of asserting
The calculations on the floating point numbers can't get out of the
expected range by construction expect for rounding errors at the limits.
Rounding errors at the limits shouldn't lead to assertions, so instead
clamp to the limits.
2021-09-28 13:53:21 +03:00
Sebastian Dröge
a03b52a975 csound: Fix nightly compiler warning in test
warning: trailing semicolon in macro used in expression position
   --> audio/csound/tests/csound_filter.rs:52:10
    |
52  |         );
    |          ^
...
403 |         &CSD!(ksmps, ichannels, ochannels, "ain, ain2 ins", "out ain"),
    |          ------------------------------------------------------------- in this macro invocation
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
    = note: this warning originates in the macro `CSD` (in Nightly builds, run with -Z macro-backtrace for more info)
2021-09-18 10:08:40 +00:00
Sebastian Dröge
96d86eaa06 Clean up clippy warnings and CI configuration
Put clippy overrides into the sources files instead of the CI
configuration, and fix various warnings / clean up code.
2021-09-08 12:35:41 +00:00
Christian Kohlstedde
a8a3a6ec3e ebur128level: Fix mode bitflags
Currently the flag of true peak and sample peak are the same and
therefore true peak always wins, sample peak never.
2021-08-25 08:23:18 +03:00
Sebastian Dröge
848b296390 Add capi feature to all plugin crates
This fixes the build with cargo-c 0.9.2.
2021-08-11 20:51:36 +03:00
Sebastian Dröge
052365ba1a Fix various needless-borrow clippy warnings and others 2021-07-30 13:53:35 +03:00
Sebastian Dröge
24ec79cd1a Update versions to 0.8.0 for the master branch 2021-07-09 13:49:33 +03:00
Sebastian Dröge
1c3ae0f89a Update versions to 0.7.0 2021-07-09 13:49:21 +03:00
François Laignel
5439f14e57 fix clippy warnings 2021-06-05 10:36:22 +02:00
François Laignel
17feaa8c71 audio: migrate to new ClockTime design 2021-06-05 10:36:21 +02:00
François Laignel
8dfc872544 use gst::glib where applicable 2021-06-03 20:53:16 +02:00
Sebastian Dröge
04a60b8f46 Update repository URL for gtk-rs "core" crates 2021-05-13 09:50:08 +03:00
Sebastian Dröge
23bcfb8b1c claxondec: Remove unused streaminfo variable from the state
And pass it by reference instead of value.
2021-05-05 10:37:30 +03:00
Sebastian Dröge
15cf738616 Update for Value trait refactoring 2021-04-25 15:48:55 +03:00
François Laignel
95cdd43f4f manual fixes remove get prefix round 2 2021-04-20 18:19:58 +02:00
François Laignel
67c5871957 fix-getters-calls 0.3.0 pass 2021-04-20 18:19:58 +02:00
François Laignel
27bc5c89ca fix-getters-def 0.3.0 pass 2021-04-20 18:19:58 +02:00
Antonio Larrosa
e0b577fe1d csound: Fix cast to f64 so it builds in i586
For some reason (compiler bug?), the rust compiler fails to compare u32 and f64 types
when doing a wildcard cast on i586 with the following error:

error[E0282]: type annotations needed
   --> audio/csound/src/filter/imp.rs:611:47
    |
611 |         if rate != out_info.rate() || rate != csound.get_sample_rate() as _ {
    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
    |
    = note: type must be known at this point

Using an explicit cast solves the issue.
2021-04-20 12:26:12 +00:00
François Laignel
7d17f88941 post fix-getters manual updates 2021-04-13 17:24:20 +02:00
François Laignel
06accc8d98 fix-getters-{def,calls} pass 2021-04-12 15:57:19 +02:00
Sebastian Dröge
195f22c2e3 ebur128level: Use an atomic bool for the resetting and check on every iteration
Instead of checking it only once per buffer.
2021-03-28 18:47:07 +03:00
Sebastian Dröge
81f9d334e8 audiofx: Use AtomicRefCell for protecting the element state
It's only accessed from the streaming thread and in PAUSED->READY after
the streaming thread was shut down, so it's already guaranteed that only
a single thread can access it at any time.
2021-03-26 21:25:23 +02:00
Sebastian Dröge
65d625a4eb audiofx: Add new ebur128level element
This posts a message with the measured loudness levels similar to the
level element but uses the metrics defined as part of EBU R128.
2021-03-26 21:25:23 +02:00
Sebastian Dröge
2cada57efc Update for the subclassing glib/gstreamer bindings API changes 2021-03-09 17:07:13 +02:00
Sebastian Dröge
dc0c5f7611 Update for new #[glib::object_subclass] attribute macro 2021-03-07 18:27:00 +02:00
Sebastian Dröge
b649e9b076 Use gst::PARAM_FLAG_MUTABLE_PLAYING and others consistently everywhere
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/139
2021-01-31 15:43:00 +02:00
Sebastian Dröge
d4ce1a33f2 Update for glib/gstreamer bindings API changes 2021-01-25 14:43:05 +02:00
Guillaume Desmottes
8bc2e5ebb8 use cargo-c to produce cdy and static libs
cargo-c will produce a pkg-config file making it easier to statically
link plugins.

Also add 'static' features for plugins depending on < 1.14 as this is the
minimal required version to use static linking because of ABI changes in
core.
2021-01-04 12:26:45 +01:00
Sebastian Dröge
3d617371af Update for macro renames 2020-12-20 20:43:45 +02:00
Sebastian Dröge
ea6c05e16c Update everything for glib macro renamings 2020-12-18 00:44:49 +02:00
Sebastian Dröge
684f52b7d4 audio: Update to 2018 edition 2020-11-22 19:34:25 +02:00
Sebastian Dröge
d56ae71e0e Update for ObjectImpl::get_property() being infallible now 2020-11-19 18:25:53 +02:00
Guillaume Desmottes
b9f8ce9995 meson: add support for static build
There is no way to dynamically ask Cargo to build static or dynamic lib
so we have to build both and pick the one we care when doing the meson
processing.

Fix #88
2020-11-16 15:30:32 +01:00
Sebastian Dröge
f54f9f977e audio: Update for subclassing API changes 2020-11-15 18:25:42 +02:00
Sebastian Dröge
1f446f6b64 Switch to the combined gtk-rs and gstreamer-rs repositories 2020-11-01 10:24:57 +02:00
François Laignel
7c3e69bb4a Fix ClockTime comparisons not being Ord and use saturating_sub
See:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/607
2020-10-20 23:45:01 +02:00
Sebastian Dröge
48b9a5400b Update byte-slice-cast dependency to 1.0 2020-10-13 12:56:49 +03:00
Sebastian Dröge
c716957a0d audiofx/audiornnoise: Update nnnoiseless dependency to 0.3 2020-08-19 18:00:39 +03:00
Philippe Normand
60656c713d audiornnoise: New element for audio denoising
The audiornnoise element can be used as playbin audio-filter for instance, to
suppress noise in the audio stream.

This plugin relies on the nnnoiseless crate which implements the noise removal
algorithm of the Xiph RNNoise library, in Rust. Some demos and documentation of
the RNNoise C library can be found on:

https://people.xiph.org/~jm/demo/rnnoise/

Fixes #114
2020-08-13 12:46:28 +01:00
Sebastian Dröge
a022bbe260 Fix some new clippy warnings 2020-07-28 18:52:11 +03:00
Sebastian Dröge
0eb777cf5a Update for removal of ObjectImpl::get_type_data() 2020-07-26 18:46:32 +03:00
Sebastian Dröge
e9b61b733d Add LICENSE files to each individual crate 2020-07-10 13:06:28 +03:00
Sebastian Dröge
f62c11f851 Update for functions returning a Builder being renamed to builder() instead of new()
And new video event APIs.
2020-06-25 19:49:07 +03:00
François Laignel
e40267e95d event,message,query: update instantiation
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/532
2020-06-25 11:26:32 +02:00
Sebastian Dröge
9bb3e75fb9 Update to use the new pad builders for safely setting pad functions
Only two uses of unsafely setting the pad functions is left:
- fallbacksrc for overriding the chain function of the proxy pad of a
  ghost pad
- threadshare for overriding the pad functions after creationg, which
  probably needs some fixing at some point
2020-06-22 11:28:19 +03:00
Sebastian Dröge
60321edb8c Update for new_with_XXX/new_from_XXX function renaming 2020-06-16 11:56:48 +03:00
Guillaume Desmottes
e85799b9d6 use new constructor names 2020-06-11 13:07:01 +02:00
Mathieu Duponchelle
7bf43241e5 audio/transcribe: remove and merge with rusoto
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/348>
2020-05-29 20:21:34 +00:00
Mathieu Duponchelle
815aa80789 awstranscriber: implement use-partial-results property
The current implementation only makes use of non-partial results,
requiring a crazy high latency.

With this mode, we use items from partial results when they're
older than latency - 2 * GRANULARITY_MS. Depending on the latency
that the user has set this may result in reduced accuracy, the
default latency has been modified to a pretty conservative sweet
spot of 8 seconds.

This complexifies the code a bit, as items aren't identified by
AWS, and their timings can change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/348>
2020-05-29 20:21:34 +00:00
Sebastian Dröge
65333d85ab transcribe: Update to rusoto 0.43 and async-tungstenite 0.5 2020-05-28 13:22:59 +03:00
Sebastian Dröge
36f032ef15 Configure crate-type to cdylib/rlib consistently in Cargo.toml
And not in the source code, it's a build decision.
2020-04-24 15:02:12 +03:00
Sebastian Dröge
5a7fcfad7f Fix various new clippy warnings with clippy 1.43 2020-04-24 13:55:01 +03:00
Guillaume Desmottes
bdb0e72cc7 fix LGPL-2.1+ license in Cargo.toml
The proper SPDX name is LGPL-2.1-or-later, see https://spdx.org/licenses/
2020-04-16 13:07:21 +02:00
Mathieu Duponchelle
2d6a220c00 Update all versions to 0.6.0 2020-04-15 20:39:50 +02:00
Mathieu Duponchelle
e10f88da50 transcribe: fix exception packet detection 2020-04-15 00:22:23 +02:00
Sebastian Dröge
5435ea1b7c Fix/silence some clippy warnings 2020-04-14 09:22:43 +00:00
Mathieu Duponchelle
7c79f73a4c gst-plugin-transcribe: address latest review comments 2020-04-13 17:48:36 +00:00
Mathieu Duponchelle
a31b3c5c83 gst-plugin-transcribe: address review comments 2020-04-13 17:48:36 +00:00
Mathieu Duponchelle
a2b3b70f3b gst-plugin-transcribe: implement element 2020-04-13 17:48:36 +00:00
Jordan Petridis
e7d49c45da gst-plugin-transcribe: implement parser 2020-04-13 17:48:36 +00:00
Luca BRUNO
bd90d1d9a6
audio/claxon: validate input depth info
This expands the depth input check into proper validation and resulting
enum, which can be reused by the rest of the logic.

Signed-off-by: Luca BRUNO <lucab@lucabruno.net>
2020-04-11 11:59:59 +00:00
Luca BRUNO
02935b7005
audio/claxon: remove some panic points
This remove some possible panic points due to unwrapping and
underflowing integer maths.

Signed-off-by: Luca BRUNO <lucab@lucabruno.net>
2020-04-11 10:25:39 +00:00
Arun Raghavan
bc5d05f5e8 Update all documentation to point to the updated repository name
Just gst-plugin-rs -> gst-plugins-rs
2020-04-05 19:10:47 +00:00
Arun Raghavan
dc3c8fd049 Drop gst-plugin- prefix in plugin directory name 2020-04-05 19:10:47 +00:00
Arun Raghavan
205b6040fb Reorganise plugins into directories by function
This should start making navigating the tree a little easier to start
with, and we can then move to allowing building specific groups of
plugins as well.

The plugins are moved into the following hierarchy:

  audio
    / gst-plugin-audiofx
    / gst-plugin-claxon
    / gst-plugin-csound
    / gst-plugin-lewton
  generic
    / gst-plugin-file
    / gst-plugin-sodium
    / gst-plugin-threadshare
  net
    / gst-plugin-reqwest
    / gst-plugin-rusoto
  utils
    / gst-plugin-fallbackswitch
    / gst-plugin-togglerecord
  video
    / gst-plugin-cdg
    / gst-plugin-closedcaption
    / gst-plugin-dav1d
    / gst-plugin-flv
    / gst-plugin-gif
    / gst-plugin-rav1e

  gst-plugin-tutorial
  gst-plugin-version-helper
2020-04-05 19:10:46 +00:00