super::arb_open_string_enum!(
crate::codec::VideoCodec,
["h264", "hevc", "av1", "vp9", "mpeg4", "prores"]
);
super::arb_open_string_enum!(
crate::codec::AudioCodec,
["aac", "mp3", "opus", "flac", "ac3", "alac"]
);
super::arb_open_string_enum!(
crate::codec::SubtitleCodec,
["srt", "ass", "ssa", "webvtt", "mov_text", "dvb_subtitle"]
);
super::arb_open_string_enum!(
crate::container::Format,
["mp4", "mkv", "webm", "mov", "avi", "mpegts"]
);
super::arb_open_string_enum!(
crate::subtitle::Format,
["srt", "webvtt", "ass", "ssa", "mov_text", "ttml"]
);
super::arb_open_string_enum!(
crate::audio::ChannelLayout,
["mono", "stereo", "5.1", "7.1", "quad", "5.0"]
);
super::arb_open_string_enum!(
crate::audio::ContainerFormat,
["mp3", "aac", "flac", "wav", "m4a", "opus"]
);
impl<'a> ::arbitrary::Arbitrary<'a> for crate::audio::SampleFormat {
fn arbitrary(u: &mut ::arbitrary::Unstructured<'a>) -> ::arbitrary::Result<Self> {
use ::core::str::FromStr;
const SLUGS: &[&str] = &[
"u8", "s16", "s32", "flt", "dbl", "u8p", "s16p", "s32p", "fltp", "dblp", "s64", "s64p",
];
match u.int_in_range(0..=2u8)? {
0 => Ok(crate::audio::SampleFormat::from_str(u.choose(SLUGS)?).unwrap()),
1 => Ok(crate::audio::SampleFormat::from_u32(
<u32 as ::arbitrary::Arbitrary>::arbitrary(u)?,
)),
_ => {
let s = <::std::string::String as ::arbitrary::Arbitrary>::arbitrary(u)?;
Ok(crate::audio::SampleFormat::from_str(&s).unwrap())
}
}
}
}