gstreamer-audio 0.17.0+ fails to compile on big-endian architectures
It looks like the code generator produces invalid code for the target_endian = "big"
case in gstreamer-audio/src/audio_format.rs
. This is present in gstreamer-audio 0.17.0 and in the current state of this git repo.
The error message is huge, but I think it's just that the crate
path prefixes are missing in the big-endian-specific code (when compared to the little-endian code) in lines 62-91 and 173-199. Adding them back makes the gstreamer-audio crate compile successfully everywhere.
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:62:15
|
62 | ::AudioFormat::F64be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:63:15
|
63 | ::AudioFormat::F64le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:64:15
|
64 | ::AudioFormat::F32be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:65:15
|
65 | ::AudioFormat::F32le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:66:15
|
66 | ::AudioFormat::S32be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:67:15
|
67 | ::AudioFormat::S32le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:68:15
|
68 | ::AudioFormat::U32be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:69:15
|
69 | ::AudioFormat::U32le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:70:15
|
70 | ::AudioFormat::S2432be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:71:15
|
71 | ::AudioFormat::S2432le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:72:15
|
72 | ::AudioFormat::U2432be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:73:15
|
73 | ::AudioFormat::U2432le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:74:15
|
74 | ::AudioFormat::S24be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:75:15
|
75 | ::AudioFormat::S24le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:76:15
|
76 | ::AudioFormat::U24be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:77:15
|
77 | ::AudioFormat::U24le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:78:15
|
78 | ::AudioFormat::S20be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:79:15
|
79 | ::AudioFormat::S20le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:80:15
|
80 | ::AudioFormat::U20be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:81:15
|
81 | ::AudioFormat::U20le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:82:15
|
82 | ::AudioFormat::S18be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:83:15
|
83 | ::AudioFormat::S18le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:84:15
|
84 | ::AudioFormat::U18be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:85:15
|
85 | ::AudioFormat::U18le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:86:15
|
86 | ::AudioFormat::S16be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:87:15
|
87 | ::AudioFormat::S16le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:88:15
|
88 | ::AudioFormat::U16be,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:89:15
|
89 | ::AudioFormat::U16le,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:90:15
|
90 | ::AudioFormat::S8,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:91:15
|
91 | ::AudioFormat::U8,
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:173:47
|
173 | pub const AUDIO_FORMAT_S16: ::AudioFormat = ::AudioFormat::S16be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:175:47
|
175 | pub const AUDIO_FORMAT_U16: ::AudioFormat = ::AudioFormat::U16be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:177:49
|
177 | pub const AUDIO_FORMAT_S2432: ::AudioFormat = ::AudioFormat::S2432be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:179:49
|
179 | pub const AUDIO_FORMAT_U2432: ::AudioFormat = ::AudioFormat::U2432be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:181:47
|
181 | pub const AUDIO_FORMAT_S32: ::AudioFormat = ::AudioFormat::S32be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:183:47
|
183 | pub const AUDIO_FORMAT_U32: ::AudioFormat = ::AudioFormat::U32be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:185:47
|
185 | pub const AUDIO_FORMAT_S24: ::AudioFormat = ::AudioFormat::S24be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:187:47
|
187 | pub const AUDIO_FORMAT_U24: ::AudioFormat = ::AudioFormat::U24be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:189:47
|
189 | pub const AUDIO_FORMAT_S20: ::AudioFormat = ::AudioFormat::S20be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:191:47
|
191 | pub const AUDIO_FORMAT_U20: ::AudioFormat = ::AudioFormat::U20be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:193:47
|
193 | pub const AUDIO_FORMAT_S18: ::AudioFormat = ::AudioFormat::S18be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:195:47
|
195 | pub const AUDIO_FORMAT_U18: ::AudioFormat = ::AudioFormat::U18be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:197:47
|
197 | pub const AUDIO_FORMAT_F32: ::AudioFormat = ::AudioFormat::F32be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0433]: failed to resolve: could not find `AudioFormat` in the list of imported crates
--> src/audio_format.rs:199:47
|
199 | pub const AUDIO_FORMAT_F64: ::AudioFormat = ::AudioFormat::F64be;
| ^^^^^^^^^^^ could not find `AudioFormat` in the list of imported crates
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:173:31
|
173 | pub const AUDIO_FORMAT_S16: ::AudioFormat = ::AudioFormat::S16be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:175:31
|
175 | pub const AUDIO_FORMAT_U16: ::AudioFormat = ::AudioFormat::U16be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:177:33
|
177 | pub const AUDIO_FORMAT_S2432: ::AudioFormat = ::AudioFormat::S2432be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:179:33
|
179 | pub const AUDIO_FORMAT_U2432: ::AudioFormat = ::AudioFormat::U2432be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:181:31
|
181 | pub const AUDIO_FORMAT_S32: ::AudioFormat = ::AudioFormat::S32be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:183:31
|
183 | pub const AUDIO_FORMAT_U32: ::AudioFormat = ::AudioFormat::U32be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:185:31
|
185 | pub const AUDIO_FORMAT_S24: ::AudioFormat = ::AudioFormat::S24be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:187:31
|
187 | pub const AUDIO_FORMAT_U24: ::AudioFormat = ::AudioFormat::U24be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:189:31
|
189 | pub const AUDIO_FORMAT_S20: ::AudioFormat = ::AudioFormat::S20be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:191:31
|
191 | pub const AUDIO_FORMAT_U20: ::AudioFormat = ::AudioFormat::U20be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:193:31
|
193 | pub const AUDIO_FORMAT_S18: ::AudioFormat = ::AudioFormat::S18be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:195:31
|
195 | pub const AUDIO_FORMAT_U18: ::AudioFormat = ::AudioFormat::U18be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:197:31
|
197 | pub const AUDIO_FORMAT_F32: ::AudioFormat = ::AudioFormat::F32be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0412]: cannot find crate `AudioFormat` in the list of imported crates
--> src/audio_format.rs:199:31
|
199 | pub const AUDIO_FORMAT_F64: ::AudioFormat = ::AudioFormat::F64be;
| ^^^^^^^^^^^ not found in the list of imported crates
|
help: consider importing this enum
|
3 | use crate::AudioFormat;
|
error[E0277]: the size for values of type `[enums::AudioFormat]` cannot be known at compilation time
--> src/audio_format.rs:61:9
|
61 | Box::new([
| ^^^^^^^^ doesn't have a size known at compile-time
|
= help: the trait `Sized` is not implemented for `[enums::AudioFormat]`
= note: required by `Box::<T>::new`
error: aborting due to 59 previous errors
Some errors have detailed explanations: E0277, E0412, E0433.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `gstreamer-audio`