flexaudio 0.3.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {flexaudio-0.3.0 → flexaudio-0.4.0}/Cargo.lock +17 -13
- {flexaudio-0.3.0 → flexaudio-0.4.0}/Cargo.toml +1 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/PKG-INFO +3 -2
- {flexaudio-0.3.0 → flexaudio-0.4.0}/THIRD_PARTY_NOTICES.md +9 -9
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/THIRD_PARTY_NOTICES.md +9 -9
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/flexaudio.pyi +32 -2
- flexaudio-0.4.0/bindings/flexaudio-py/src/encode.rs +457 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/src/lib.rs +6 -3
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/src/marshal.rs +85 -3
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/src/stream.rs +112 -5
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/src/vad.rs +7 -5
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/Cargo.toml +6 -6
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/README.md +1 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/src/lib.rs +23 -8
- flexaudio-0.4.0/crates/flexaudio/src/mix/permission_tests.rs +273 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/src/mix.rs +19 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/src/processes.rs +1 -1
- flexaudio-0.4.0/crates/flexaudio/src/stream/permission_tests.rs +403 -0
- flexaudio-0.4.0/crates/flexaudio/src/stream/terminal.rs +34 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/src/stream.rs +270 -23
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/backend.rs +11 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/lib.rs +2 -2
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/types.rs +149 -4
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-encode/Cargo.toml +1 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-encode/src/writer.rs +319 -20
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-mic/Cargo.toml +9 -1
- flexaudio-0.4.0/crates/flexaudio-mic/src/capture_owner.rs +372 -0
- flexaudio-0.4.0/crates/flexaudio-mic/src/input_config.rs +84 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-mic/src/lib.rs +159 -49
- flexaudio-0.4.0/crates/flexaudio-mic/src/mac_permission.rs +74 -0
- flexaudio-0.4.0/crates/flexaudio-mic/src/mac_policy/tests.rs +400 -0
- flexaudio-0.4.0/crates/flexaudio-mic/src/mac_policy.rs +249 -0
- flexaudio-0.4.0/crates/flexaudio-mic/src/permission.rs +45 -0
- flexaudio-0.4.0/crates/flexaudio-mic/src/windows_permission.rs +37 -0
- flexaudio-0.4.0/crates/flexaudio-mic/src/windows_policy.rs +106 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-linux/Cargo.toml +1 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-linux/src/processes.rs +326 -122
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/Cargo.toml +5 -4
- flexaudio-0.4.0/crates/flexaudio-os-macos/README.md +57 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/activity.rs +126 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/capture_health.rs +340 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/src/common.rs +9 -3
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/src/devices.rs +1 -1
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/lib.rs +72 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/native_probe/capture.rs +288 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/native_probe/io.rs +263 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/native_probe/output.rs +239 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/native_probe.rs +181 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/probe/tests.rs +339 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/probe.rs +192 -0
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/probe_signal.rs +453 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/src/process.rs +61 -4
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/src/processes.rs +2 -2
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/src/system.rs +148 -15
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/src/tap.rs +56 -38
- flexaudio-0.4.0/crates/flexaudio-os-macos/src/terminal.rs +121 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/Cargo.toml +4 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/src/common.rs +167 -97
- flexaudio-0.4.0/crates/flexaudio-os-windows/src/format.rs +139 -0
- flexaudio-0.4.0/crates/flexaudio-os-windows/src/keepalive.rs +115 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/src/lib.rs +9 -1
- flexaudio-0.4.0/crates/flexaudio-os-windows/src/lifecycle.rs +349 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/src/process.rs +23 -15
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/src/system.rs +156 -61
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/README.md +1 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/examples/probe.rs +1 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/src/lib.rs +313 -79
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/src/resample.rs +33 -1
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/tests/speech_fixture.rs +3 -3
- {flexaudio-0.3.0 → flexaudio-0.4.0}/pyproject.toml +7 -9
- flexaudio-0.3.0/bindings/flexaudio-py/src/encode.rs +0 -254
- flexaudio-0.3.0/crates/flexaudio-os-macos/README.md +0 -32
- flexaudio-0.3.0/crates/flexaudio-os-macos/src/lib.rs +0 -41
- {flexaudio-0.3.0 → flexaudio-0.4.0}/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/Cargo.toml +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/src/config.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/src/denoise.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/src/watcher.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/bindings/flexaudio-py/tests/test_exclude_pids.py +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/THIRD_PARTY_NOTICES.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/src/device_watcher.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/src/mock.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/tests/integration.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio/tests/processes_linux.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/Cargo.toml +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/chunk_ring.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/clock.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/normalizer.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/process_list.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/quant.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/raw_ring.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-core/src/secondary_ring.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-denoise/Cargo.toml +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-denoise/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-denoise/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-denoise/src/lib.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-encode/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-encode/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-encode/src/error.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-encode/src/lib.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-encode/tests/roundtrip.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-mic/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-mic/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-mic/src/windows_keeper.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-mic/tests/windows_cpal_keeper.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-linux/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-linux/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-linux/src/lib.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-macos/src/version.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/README.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/src/processes.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-os-windows/src/version.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/Cargo.toml +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/LICENSE +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/THIRD_PARTY_NOTICES.md +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/assets/silero_vad_openvino_16k.onnx +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/src/config.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/src/infer.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/src/segmenter.rs +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/tests/fixtures/jp_2spk_FF_4s_16k.probs.txt +0 -0
- {flexaudio-0.3.0 → flexaudio-0.4.0}/crates/flexaudio-vad/tests/fixtures/jp_2spk_FF_4s_16k.wav +0 -0
|
@@ -722,7 +722,7 @@ dependencies = [
|
|
|
722
722
|
|
|
723
723
|
[[package]]
|
|
724
724
|
name = "flexaudio"
|
|
725
|
-
version = "0.
|
|
725
|
+
version = "0.4.0"
|
|
726
726
|
dependencies = [
|
|
727
727
|
"flexaudio-core",
|
|
728
728
|
"flexaudio-denoise",
|
|
@@ -734,7 +734,7 @@ dependencies = [
|
|
|
734
734
|
|
|
735
735
|
[[package]]
|
|
736
736
|
name = "flexaudio-cli"
|
|
737
|
-
version = "0.
|
|
737
|
+
version = "0.4.0"
|
|
738
738
|
dependencies = [
|
|
739
739
|
"clap",
|
|
740
740
|
"ctrlc",
|
|
@@ -746,7 +746,7 @@ dependencies = [
|
|
|
746
746
|
|
|
747
747
|
[[package]]
|
|
748
748
|
name = "flexaudio-core"
|
|
749
|
-
version = "0.
|
|
749
|
+
version = "0.4.0"
|
|
750
750
|
dependencies = [
|
|
751
751
|
"bitflags 2.13.0",
|
|
752
752
|
"ringbuf",
|
|
@@ -757,14 +757,14 @@ dependencies = [
|
|
|
757
757
|
|
|
758
758
|
[[package]]
|
|
759
759
|
name = "flexaudio-denoise"
|
|
760
|
-
version = "0.
|
|
760
|
+
version = "0.4.0"
|
|
761
761
|
dependencies = [
|
|
762
762
|
"nnnoiseless",
|
|
763
763
|
]
|
|
764
764
|
|
|
765
765
|
[[package]]
|
|
766
766
|
name = "flexaudio-encode"
|
|
767
|
-
version = "0.
|
|
767
|
+
version = "0.4.0"
|
|
768
768
|
dependencies = [
|
|
769
769
|
"claxon",
|
|
770
770
|
"flacenc",
|
|
@@ -774,7 +774,7 @@ dependencies = [
|
|
|
774
774
|
|
|
775
775
|
[[package]]
|
|
776
776
|
name = "flexaudio-ffi"
|
|
777
|
-
version = "0.
|
|
777
|
+
version = "0.4.0"
|
|
778
778
|
dependencies = [
|
|
779
779
|
"flexaudio",
|
|
780
780
|
"flexaudio-denoise",
|
|
@@ -784,15 +784,19 @@ dependencies = [
|
|
|
784
784
|
|
|
785
785
|
[[package]]
|
|
786
786
|
name = "flexaudio-mic"
|
|
787
|
-
version = "0.
|
|
787
|
+
version = "0.4.0"
|
|
788
788
|
dependencies = [
|
|
789
|
+
"block2",
|
|
789
790
|
"cpal",
|
|
790
791
|
"flexaudio-core",
|
|
792
|
+
"objc2",
|
|
793
|
+
"objc2-foundation",
|
|
794
|
+
"windows",
|
|
791
795
|
]
|
|
792
796
|
|
|
793
797
|
[[package]]
|
|
794
798
|
name = "flexaudio-napi"
|
|
795
|
-
version = "0.
|
|
799
|
+
version = "0.4.0"
|
|
796
800
|
dependencies = [
|
|
797
801
|
"flexaudio",
|
|
798
802
|
"flexaudio-denoise",
|
|
@@ -805,7 +809,7 @@ dependencies = [
|
|
|
805
809
|
|
|
806
810
|
[[package]]
|
|
807
811
|
name = "flexaudio-os-linux"
|
|
808
|
-
version = "0.
|
|
812
|
+
version = "0.4.0"
|
|
809
813
|
dependencies = [
|
|
810
814
|
"flexaudio-core",
|
|
811
815
|
"pipewire",
|
|
@@ -813,7 +817,7 @@ dependencies = [
|
|
|
813
817
|
|
|
814
818
|
[[package]]
|
|
815
819
|
name = "flexaudio-os-macos"
|
|
816
|
-
version = "0.
|
|
820
|
+
version = "0.4.0"
|
|
817
821
|
dependencies = [
|
|
818
822
|
"block2",
|
|
819
823
|
"flexaudio-core",
|
|
@@ -827,7 +831,7 @@ dependencies = [
|
|
|
827
831
|
|
|
828
832
|
[[package]]
|
|
829
833
|
name = "flexaudio-os-windows"
|
|
830
|
-
version = "0.
|
|
834
|
+
version = "0.4.0"
|
|
831
835
|
dependencies = [
|
|
832
836
|
"flexaudio-core",
|
|
833
837
|
"windows",
|
|
@@ -835,7 +839,7 @@ dependencies = [
|
|
|
835
839
|
|
|
836
840
|
[[package]]
|
|
837
841
|
name = "flexaudio-py"
|
|
838
|
-
version = "0.
|
|
842
|
+
version = "0.4.0"
|
|
839
843
|
dependencies = [
|
|
840
844
|
"flexaudio",
|
|
841
845
|
"flexaudio-denoise",
|
|
@@ -846,7 +850,7 @@ dependencies = [
|
|
|
846
850
|
|
|
847
851
|
[[package]]
|
|
848
852
|
name = "flexaudio-vad"
|
|
849
|
-
version = "0.
|
|
853
|
+
version = "0.4.0"
|
|
850
854
|
dependencies = [
|
|
851
855
|
"rubato",
|
|
852
856
|
"tract-onnx",
|
|
@@ -3,7 +3,7 @@ resolver = "2"
|
|
|
3
3
|
members = ["crates/flexaudio-core", "crates/flexaudio-os-windows", "crates/flexaudio-os-macos", "crates/flexaudio-os-linux", "crates/flexaudio-mic", "crates/flexaudio", "crates/flexaudio-vad", "crates/flexaudio-encode", "crates/flexaudio-denoise", "bindings/flexaudio-py"]
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "0.
|
|
6
|
+
version = "0.4.0"
|
|
7
7
|
edition = "2021"
|
|
8
8
|
license = "MIT"
|
|
9
9
|
rust-version = "1.85"
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flexaudio
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
|
6
6
|
Classifier: Topic :: Multimedia :: Sound/Audio :: Capture/Recording
|
|
7
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
8
7
|
License-File: LICENSE
|
|
8
|
+
License-File: THIRD_PARTY_NOTICES.md
|
|
9
9
|
Summary: Flexible cross-platform audio capture (microphone, system loopback, per-process) for Python, via native bindings to the flexaudio Rust library.
|
|
10
10
|
Keywords: audio,capture,loopback,recording,pyo3
|
|
11
11
|
Author: tubome (Studio Sadola)
|
|
12
|
+
License-Expression: MIT
|
|
12
13
|
Requires-Python: >=3.8
|
|
13
14
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
14
15
|
Project-URL: Repository, https://github.com/Studio-Sadola/flexaudio
|
|
@@ -2633,15 +2633,15 @@ SOFTWARE.
|
|
|
2633
2633
|
|
|
2634
2634
|
Used by:
|
|
2635
2635
|
|
|
2636
|
-
- [flexaudio 0.
|
|
2637
|
-
- [flexaudio-core 0.
|
|
2638
|
-
- [flexaudio-denoise 0.
|
|
2639
|
-
- [flexaudio-encode 0.
|
|
2640
|
-
- [flexaudio-mic 0.
|
|
2641
|
-
- [flexaudio-os-linux 0.
|
|
2642
|
-
- [flexaudio-os-macos 0.
|
|
2643
|
-
- [flexaudio-os-windows 0.
|
|
2644
|
-
- [flexaudio-vad 0.
|
|
2636
|
+
- [flexaudio 0.4.0](https://crates.io/crates/flexaudio/0.4.0)
|
|
2637
|
+
- [flexaudio-core 0.4.0](https://crates.io/crates/flexaudio-core/0.4.0)
|
|
2638
|
+
- [flexaudio-denoise 0.4.0](https://crates.io/crates/flexaudio-denoise/0.4.0)
|
|
2639
|
+
- [flexaudio-encode 0.4.0](https://crates.io/crates/flexaudio-encode/0.4.0)
|
|
2640
|
+
- [flexaudio-mic 0.4.0](https://crates.io/crates/flexaudio-mic/0.4.0)
|
|
2641
|
+
- [flexaudio-os-linux 0.4.0](https://crates.io/crates/flexaudio-os-linux/0.4.0)
|
|
2642
|
+
- [flexaudio-os-macos 0.4.0](https://crates.io/crates/flexaudio-os-macos/0.4.0)
|
|
2643
|
+
- [flexaudio-os-windows 0.4.0](https://crates.io/crates/flexaudio-os-windows/0.4.0)
|
|
2644
|
+
- [flexaudio-vad 0.4.0](https://crates.io/crates/flexaudio-vad/0.4.0)
|
|
2645
2645
|
|
|
2646
2646
|
````text
|
|
2647
2647
|
MIT License
|
|
@@ -2633,15 +2633,15 @@ SOFTWARE.
|
|
|
2633
2633
|
|
|
2634
2634
|
Used by:
|
|
2635
2635
|
|
|
2636
|
-
- [flexaudio 0.
|
|
2637
|
-
- [flexaudio-core 0.
|
|
2638
|
-
- [flexaudio-denoise 0.
|
|
2639
|
-
- [flexaudio-encode 0.
|
|
2640
|
-
- [flexaudio-mic 0.
|
|
2641
|
-
- [flexaudio-os-linux 0.
|
|
2642
|
-
- [flexaudio-os-macos 0.
|
|
2643
|
-
- [flexaudio-os-windows 0.
|
|
2644
|
-
- [flexaudio-vad 0.
|
|
2636
|
+
- [flexaudio 0.4.0](https://crates.io/crates/flexaudio/0.4.0)
|
|
2637
|
+
- [flexaudio-core 0.4.0](https://crates.io/crates/flexaudio-core/0.4.0)
|
|
2638
|
+
- [flexaudio-denoise 0.4.0](https://crates.io/crates/flexaudio-denoise/0.4.0)
|
|
2639
|
+
- [flexaudio-encode 0.4.0](https://crates.io/crates/flexaudio-encode/0.4.0)
|
|
2640
|
+
- [flexaudio-mic 0.4.0](https://crates.io/crates/flexaudio-mic/0.4.0)
|
|
2641
|
+
- [flexaudio-os-linux 0.4.0](https://crates.io/crates/flexaudio-os-linux/0.4.0)
|
|
2642
|
+
- [flexaudio-os-macos 0.4.0](https://crates.io/crates/flexaudio-os-macos/0.4.0)
|
|
2643
|
+
- [flexaudio-os-windows 0.4.0](https://crates.io/crates/flexaudio-os-windows/0.4.0)
|
|
2644
|
+
- [flexaudio-vad 0.4.0](https://crates.io/crates/flexaudio-vad/0.4.0)
|
|
2645
2645
|
|
|
2646
2646
|
````text
|
|
2647
2647
|
MIT License
|
|
@@ -18,7 +18,13 @@ exception; FlacEncoder propagates finalization errors only on normal exit.
|
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
20
|
from os import PathLike
|
|
21
|
-
from typing import List, Optional, Sequence, Tuple, TypedDict, Union
|
|
21
|
+
from typing import List, Literal, Optional, Sequence, Tuple, TypedDict, Union
|
|
22
|
+
|
|
23
|
+
StreamEventType = Literal[
|
|
24
|
+
"chunkDropped", "stalled", "recovered", "permissionDenied", "permissionPending",
|
|
25
|
+
"silenceWhileSourceActive", "deviceLost", "error", "unknown"
|
|
26
|
+
]
|
|
27
|
+
RecordingPermission = Literal["microphone", "systemAudio"]
|
|
22
28
|
|
|
23
29
|
class VadSettings(TypedDict, total=False):
|
|
24
30
|
threshold: float
|
|
@@ -88,9 +94,26 @@ class AudioChunk:
|
|
|
88
94
|
def rms(self) -> float: ...
|
|
89
95
|
|
|
90
96
|
class StreamEvent:
|
|
97
|
+
"""Stream notification; permissionPending and silenceWhileSourceActive are advisories.
|
|
98
|
+
|
|
99
|
+
permissionPending carries permission and an actionable message; capture
|
|
100
|
+
continues and may remain silent until granted. permissionDenied is terminal
|
|
101
|
+
and carries permission and a cause/remedy message. silenceWhileSourceActive
|
|
102
|
+
means the system-audio diagnosis is inconclusive; capture continues because
|
|
103
|
+
missing permission and genuine digital silence remain possible. error carries
|
|
104
|
+
a message and may represent a terminal backend failure; consult terminal_error.
|
|
105
|
+
|
|
106
|
+
On macOS, system/process capture can confirm SystemAudio denial with an active
|
|
107
|
+
self-probe after sustained exact zeros and eligible external output activity.
|
|
108
|
+
Its separate private tap captures our own diagnostic output; this signal may
|
|
109
|
+
also enter user capture if our process is included. An inconclusive probe is
|
|
110
|
+
advisory only. Stopping cancels the probe without a late event.
|
|
111
|
+
"""
|
|
91
112
|
def __repr__(self) -> str: ...
|
|
92
113
|
@property
|
|
93
|
-
def type(self) ->
|
|
114
|
+
def type(self) -> StreamEventType: ...
|
|
115
|
+
@property
|
|
116
|
+
def permission(self) -> Optional[RecordingPermission]: ...
|
|
94
117
|
@property
|
|
95
118
|
def count(self) -> Optional[int]: ...
|
|
96
119
|
@property
|
|
@@ -118,6 +141,13 @@ class Stream:
|
|
|
118
141
|
def dropped_chunks(self) -> int: ...
|
|
119
142
|
def poll_chunk(self) -> Optional[AudioChunk]: ...
|
|
120
143
|
def poll_event(self) -> Optional[StreamEvent]: ...
|
|
144
|
+
def terminal_error(self) -> Optional[StreamEvent]:
|
|
145
|
+
"""Retained terminal failure, including after stop; does not consume events.
|
|
146
|
+
|
|
147
|
+
poll_chunk, resume and switch_source raise RuntimeError once terminal.
|
|
148
|
+
A failed stream cannot be restarted; resolve the cause and open a new one.
|
|
149
|
+
"""
|
|
150
|
+
...
|
|
121
151
|
def switch_source(
|
|
122
152
|
self, kind: str, *, device_id: Optional[str] = None,
|
|
123
153
|
process_id: Optional[int] = None, mode: str = "include", exclude_self: bool = False,
|