From 92a8c6a9d8854f1f8769d267bc4f22e9398994ca Mon Sep 17 00:00:00 2001 From: FreezyLemon Date: Sat, 22 Oct 2022 17:28:37 +0200 Subject: [PATCH] add feature non-exhaustive-enums --- Cargo.toml | 5 ++++- src/codec/audio_service.rs | 1 + src/codec/discard.rs | 1 + src/codec/field_order.rs | 1 + src/codec/id.rs | 1 + src/codec/packet/side_data.rs | 1 + src/codec/subtitle/mod.rs | 1 + src/software/resampling/dither.rs | 1 + src/software/resampling/engine.rs | 1 + src/software/resampling/filter.rs | 1 + src/util/chroma/location.rs | 1 + src/util/color/primaries.rs | 1 + src/util/color/range.rs | 1 + src/util/color/space.rs | 1 + src/util/color/transfer_characteristic.rs | 1 + src/util/format/pixel.rs | 1 + src/util/format/sample.rs | 1 + src/util/frame/side_data.rs | 1 + src/util/mathematics/rounding.rs | 1 + src/util/media.rs | 1 + src/util/option/mod.rs | 1 + src/util/picture.rs | 1 + 22 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 313ddf7..a1c1157 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ keywords = ["ffmpeg", "multimedia", "video", "audio"] categories = ["multimedia"] [features] -default = ["codec", "device", "filter", "format", "software-resampling", "software-scaling"] +default = ["codec", "device", "filter", "format", "software-resampling", "software-scaling", "non-exhaustive-enums"] # ffmpeg are obsolete features kept for backward compatibility purposes and # don't do anything anymore (equivalents are automatically specified through @@ -29,6 +29,9 @@ ffmpeg4 = [] static = ["ffmpeg-sys-next/static"] build = ["static", "ffmpeg-sys-next/build"] +# mark enums in generated bindings as #[non_exhaustive] +non-exhaustive-enums = ["ffmpeg-sys-next/non-exhaustive-enums"] + # licensing build-license-gpl = ["ffmpeg-sys-next/build-license-gpl"] build-license-nonfree = ["ffmpeg-sys-next/build-license-nonfree"] diff --git a/src/codec/audio_service.rs b/src/codec/audio_service.rs index 008b801..91837a3 100644 --- a/src/codec/audio_service.rs +++ b/src/codec/audio_service.rs @@ -28,6 +28,7 @@ impl From for AudioService { AV_AUDIO_SERVICE_TYPE_KARAOKE => AudioService::Karaoke, AV_AUDIO_SERVICE_TYPE_NB => AudioService::Main, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/codec/discard.rs b/src/codec/discard.rs index 72e64d3..b540ef8 100644 --- a/src/codec/discard.rs +++ b/src/codec/discard.rs @@ -23,6 +23,7 @@ impl From for Discard { AVDISCARD_NONKEY => Discard::NonKey, AVDISCARD_ALL => Discard::All, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/codec/field_order.rs b/src/codec/field_order.rs index abc2d57..4fba042 100644 --- a/src/codec/field_order.rs +++ b/src/codec/field_order.rs @@ -21,6 +21,7 @@ impl From for FieldOrder { AV_FIELD_TB => FieldOrder::TB, AV_FIELD_BT => FieldOrder::BT, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/codec/id.rs b/src/codec/id.rs index c5c787c..8f7cd0a 100644 --- a/src/codec/id.rs +++ b/src/codec/id.rs @@ -1234,6 +1234,7 @@ impl From for Id { #[cfg(feature = "ffmpeg_5_1")] AV_CODEC_ID_DFPWM => Id::DFPWM, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/codec/packet/side_data.rs b/src/codec/packet/side_data.rs index 78740c4..1b4d854 100644 --- a/src/codec/packet/side_data.rs +++ b/src/codec/packet/side_data.rs @@ -107,6 +107,7 @@ impl From for Type { #[cfg(feature = "ffmpeg_5_0")] AV_PKT_DATA_DYNAMIC_HDR10_PLUS => Type::DYNAMIC_HDR10_PLUS, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/codec/subtitle/mod.rs b/src/codec/subtitle/mod.rs index e3f694d..c0c63b1 100644 --- a/src/codec/subtitle/mod.rs +++ b/src/codec/subtitle/mod.rs @@ -30,6 +30,7 @@ impl From for Type { SUBTITLE_TEXT => Type::Text, SUBTITLE_ASS => Type::Ass, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/software/resampling/dither.rs b/src/software/resampling/dither.rs index c9c6ee4..4dd9586 100644 --- a/src/software/resampling/dither.rs +++ b/src/software/resampling/dither.rs @@ -35,6 +35,7 @@ impl From for Dither { SWR_DITHER_NS_HIGH_SHIBATA => Dither::NoiseShapingHighShibata, SWR_DITHER_NB => Dither::None, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/software/resampling/engine.rs b/src/software/resampling/engine.rs index 335eca4..b14a8a9 100644 --- a/src/software/resampling/engine.rs +++ b/src/software/resampling/engine.rs @@ -14,6 +14,7 @@ impl From for Engine { SWR_ENGINE_SOXR => Engine::SoundExchange, SWR_ENGINE_NB => Engine::Software, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/software/resampling/filter.rs b/src/software/resampling/filter.rs index 7bf2aa5..d85c4e2 100644 --- a/src/software/resampling/filter.rs +++ b/src/software/resampling/filter.rs @@ -15,6 +15,7 @@ impl From for Filter { SWR_FILTER_TYPE_BLACKMAN_NUTTALL => Filter::BlackmanNuttall, SWR_FILTER_TYPE_KAISER => Filter::Kaiser, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/chroma/location.rs b/src/util/chroma/location.rs index f4e56e3..2514792 100644 --- a/src/util/chroma/location.rs +++ b/src/util/chroma/location.rs @@ -24,6 +24,7 @@ impl From for Location { AVCHROMA_LOC_BOTTOM => Location::Bottom, AVCHROMA_LOC_NB => Location::Unspecified, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/color/primaries.rs b/src/util/color/primaries.rs index 91ccfe3..323a040 100644 --- a/src/util/color/primaries.rs +++ b/src/util/color/primaries.rs @@ -67,6 +67,7 @@ impl From for Primaries { #[cfg(feature = "ffmpeg_4_3")] AVCOL_PRI_EBU3213 => Primaries::EBU3213, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/color/range.rs b/src/util/color/range.rs index e527d08..476886a 100644 --- a/src/util/color/range.rs +++ b/src/util/color/range.rs @@ -32,6 +32,7 @@ impl From for Range { AVCOL_RANGE_JPEG => Range::JPEG, AVCOL_RANGE_NB => Range::Unspecified, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/color/space.rs b/src/util/color/space.rs index 247f7b3..c38e8e7 100644 --- a/src/util/color/space.rs +++ b/src/util/color/space.rs @@ -60,6 +60,7 @@ impl From for Space { AVCOL_SPC_CHROMA_DERIVED_CL => Space::ChromaDerivedCL, AVCOL_SPC_ICTCP => Space::ICTCP, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/color/transfer_characteristic.rs b/src/util/color/transfer_characteristic.rs index 6992534..965e628 100644 --- a/src/util/color/transfer_characteristic.rs +++ b/src/util/color/transfer_characteristic.rs @@ -64,6 +64,7 @@ impl From for TransferCharacteristic { AVCOL_TRC_SMPTE428 => TransferCharacteristic::SMPTE428, AVCOL_TRC_ARIB_STD_B67 => TransferCharacteristic::ARIB_STD_B67, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/format/pixel.rs b/src/util/format/pixel.rs index 3387172..68f5408 100644 --- a/src/util/format/pixel.rs +++ b/src/util/format/pixel.rs @@ -743,6 +743,7 @@ impl From for Pixel { #[cfg(feature = "rpi")] AV_PIX_FMT_RPI4_10 => Pixel::RPI4_10, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/format/sample.rs b/src/util/format/sample.rs index 724120d..5f8f4f5 100644 --- a/src/util/format/sample.rs +++ b/src/util/format/sample.rs @@ -87,6 +87,7 @@ impl From for Sample { AV_SAMPLE_FMT_NB => Sample::None, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/frame/side_data.rs b/src/util/frame/side_data.rs index f88d9c1..a9ac82e 100644 --- a/src/util/frame/side_data.rs +++ b/src/util/frame/side_data.rs @@ -121,6 +121,7 @@ impl From for Type { #[cfg(feature = "ffmpeg_5_1")] AV_FRAME_DATA_DYNAMIC_HDR_VIVID => Type::DYNAMIC_HDR_VIVID, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/mathematics/rounding.rs b/src/util/mathematics/rounding.rs index 6ac8145..abe2800 100644 --- a/src/util/mathematics/rounding.rs +++ b/src/util/mathematics/rounding.rs @@ -22,6 +22,7 @@ impl From for Rounding { AV_ROUND_NEAR_INF => Rounding::NearInfinity, AV_ROUND_PASS_MINMAX => Rounding::PassMinMax, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/media.rs b/src/util/media.rs index 6c6d243..ff9ca29 100644 --- a/src/util/media.rs +++ b/src/util/media.rs @@ -23,6 +23,7 @@ impl From for Type { AVMEDIA_TYPE_ATTACHMENT => Type::Attachment, AVMEDIA_TYPE_NB => Type::Unknown, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/option/mod.rs b/src/util/option/mod.rs index 406dfcd..a858630 100644 --- a/src/util/option/mod.rs +++ b/src/util/option/mod.rs @@ -54,6 +54,7 @@ impl From for Type { #[cfg(feature = "ffmpeg_5_1")] AV_OPT_TYPE_CHLAYOUT => Type::ChannelLayout, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } } diff --git a/src/util/picture.rs b/src/util/picture.rs index 916af04..de2e533 100644 --- a/src/util/picture.rs +++ b/src/util/picture.rs @@ -26,6 +26,7 @@ impl From for Type { AV_PICTURE_TYPE_SP => Type::SP, AV_PICTURE_TYPE_BI => Type::BI, + #[cfg(feature = "non-exhaustive-enums")] _ => unimplemented!(), } }