playa_ffmpeg/software/resampling/
dither.rs1use crate::ffi::{SwrDitherType::*, *};
2
3#[derive(Eq, PartialEq, Copy, Clone, Debug)]
4pub enum Dither {
5 None,
6 Rectangular,
7 Triangular,
8 TriangularHighPass,
9
10 NoiseShapingLipshitz,
11 NoiseShapingFWeighted,
12 NoiseShapingModifiedEWeighted,
13 NoiseShapingImprovedEWeighted,
14 NoiseShapingShibata,
15 NoiseShapingLowShibata,
16 NoiseShapingHighShibata,
17}
18
19impl From<SwrDitherType> for Dither {
20 fn from(value: SwrDitherType) -> Dither {
21 match value {
22 SWR_DITHER_NONE => Dither::None,
23 SWR_DITHER_RECTANGULAR => Dither::Rectangular,
24 SWR_DITHER_TRIANGULAR => Dither::Triangular,
25 SWR_DITHER_TRIANGULAR_HIGHPASS => Dither::TriangularHighPass,
26
27 SWR_DITHER_NS => Dither::None,
28 SWR_DITHER_NS_LIPSHITZ => Dither::NoiseShapingLipshitz,
29 SWR_DITHER_NS_F_WEIGHTED => Dither::NoiseShapingFWeighted,
30 SWR_DITHER_NS_MODIFIED_E_WEIGHTED => Dither::NoiseShapingModifiedEWeighted,
31 SWR_DITHER_NS_IMPROVED_E_WEIGHTED => Dither::NoiseShapingImprovedEWeighted,
32 SWR_DITHER_NS_SHIBATA => Dither::NoiseShapingShibata,
33 SWR_DITHER_NS_LOW_SHIBATA => Dither::NoiseShapingLowShibata,
34 SWR_DITHER_NS_HIGH_SHIBATA => Dither::NoiseShapingHighShibata,
35 SWR_DITHER_NB => Dither::None,
36 }
37 }
38}
39
40impl From<Dither> for SwrDitherType {
41 fn from(value: Dither) -> SwrDitherType {
42 match value {
43 Dither::None => SWR_DITHER_NONE,
44 Dither::Rectangular => SWR_DITHER_RECTANGULAR,
45 Dither::Triangular => SWR_DITHER_TRIANGULAR,
46 Dither::TriangularHighPass => SWR_DITHER_TRIANGULAR_HIGHPASS,
47
48 Dither::NoiseShapingLipshitz => SWR_DITHER_NS_LIPSHITZ,
49 Dither::NoiseShapingFWeighted => SWR_DITHER_NS_F_WEIGHTED,
50 Dither::NoiseShapingModifiedEWeighted => SWR_DITHER_NS_MODIFIED_E_WEIGHTED,
51 Dither::NoiseShapingImprovedEWeighted => SWR_DITHER_NS_IMPROVED_E_WEIGHTED,
52 Dither::NoiseShapingShibata => SWR_DITHER_NS_SHIBATA,
53 Dither::NoiseShapingLowShibata => SWR_DITHER_NS_LOW_SHIBATA,
54 Dither::NoiseShapingHighShibata => SWR_DITHER_NS_HIGH_SHIBATA,
55 }
56 }
57}