Add FFmpeg 4.3 specific code
This commit is contained in:
parent
65d91df487
commit
15c87a7837
@ -15,8 +15,9 @@ keywords = ["ffmpeg", "multimedia", "video", "audio"]
|
||||
categories = ["multimedia"]
|
||||
|
||||
[features]
|
||||
default = ["ffmpeg42", "codec", "device", "filter", "format", "software-resampling", "software-scaling"]
|
||||
default = ["ffmpeg43", "codec", "device", "filter", "format", "software-resampling", "software-scaling"]
|
||||
|
||||
ffmpeg43 = ["ffmpeg42"]
|
||||
ffmpeg42 = ["ffmpeg41"]
|
||||
ffmpeg41 = ["ffmpeg4"]
|
||||
ffmpeg4 = []
|
||||
|
123
src/codec/id.rs
123
src/codec/id.rs
@ -525,6 +525,47 @@ pub enum Id {
|
||||
HCOM,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
ARIB_CAPTION,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
IMM5,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
MVDV,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
MVHA,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
CDTOONS,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
MV30,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
NOTCHLC,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
PFM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ADPCM_ARGO,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ADPCM_IMA_SSI,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ADPCM_ZORK,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ADPCM_IMA_APM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ADPCM_IMA_ALP,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ADPCM_IMA_MTF,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ADPCM_IMA_CUNNING,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
DERF_DPCM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ACELP_KELVIN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
MPEGH_3D_AUDIO,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
SIREN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
HCA,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
EPG,
|
||||
}
|
||||
|
||||
impl Id {
|
||||
@ -1057,6 +1098,47 @@ impl From<AVCodecID> for Id {
|
||||
AV_CODEC_ID_HCOM => Id::HCOM,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
AV_CODEC_ID_ARIB_CAPTION => Id::ARIB_CAPTION,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_IMM5 => Id::IMM5,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_MVDV => Id::MVDV,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_MVHA => Id::MVHA,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_CDTOONS => Id::CDTOONS,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_MV30 => Id::MV30,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_NOTCHLC => Id::NOTCHLC,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_PFM => Id::PFM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ADPCM_ARGO => Id::ADPCM_ARGO,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ADPCM_IMA_SSI => Id::ADPCM_IMA_SSI,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ADPCM_ZORK => Id::ADPCM_ZORK,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ADPCM_IMA_APM => Id::ADPCM_IMA_APM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ADPCM_IMA_ALP => Id::ADPCM_IMA_ALP,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ADPCM_IMA_MTF => Id::ADPCM_IMA_MTF,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ADPCM_IMA_CUNNING => Id::ADPCM_IMA_CUNNING,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_DERF_DPCM => Id::DERF_DPCM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_ACELP_KELVIN => Id::ACELP_KELVIN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_MPEGH_3D_AUDIO => Id::MPEGH_3D_AUDIO,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_SIREN => Id::SIREN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_HCA => Id::HCA,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_CODEC_ID_EPG => Id::EPG,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1581,6 +1663,47 @@ impl Into<AVCodecID> for Id {
|
||||
Id::HCOM => AV_CODEC_ID_HCOM,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
Id::ARIB_CAPTION => AV_CODEC_ID_ARIB_CAPTION,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::IMM5 => AV_CODEC_ID_IMM5,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::MVDV => AV_CODEC_ID_MVDV,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::MVHA => AV_CODEC_ID_MVHA,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::CDTOONS => AV_CODEC_ID_CDTOONS,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::MV30 => AV_CODEC_ID_MV30,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::NOTCHLC => AV_CODEC_ID_NOTCHLC,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::PFM => AV_CODEC_ID_PFM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ADPCM_ARGO => AV_CODEC_ID_ADPCM_ARGO,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ADPCM_IMA_SSI => AV_CODEC_ID_ADPCM_IMA_SSI,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ADPCM_ZORK => AV_CODEC_ID_ADPCM_ZORK,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ADPCM_IMA_APM => AV_CODEC_ID_ADPCM_IMA_APM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ADPCM_IMA_ALP => AV_CODEC_ID_ADPCM_IMA_ALP,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ADPCM_IMA_MTF => AV_CODEC_ID_ADPCM_IMA_MTF,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ADPCM_IMA_CUNNING => AV_CODEC_ID_ADPCM_IMA_CUNNING,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::DERF_DPCM => AV_CODEC_ID_DERF_DPCM,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::ACELP_KELVIN => AV_CODEC_ID_ACELP_KELVIN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::MPEGH_3D_AUDIO => AV_CODEC_ID_MPEGH_3D_AUDIO,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::SIREN => AV_CODEC_ID_SIREN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::HCA => AV_CODEC_ID_HCA,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Id::EPG => AV_CODEC_ID_EPG,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,6 +41,13 @@ pub enum Type {
|
||||
|
||||
#[cfg(feature = "ffmpeg41")]
|
||||
AFD,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
PRFT,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
ICC_PROFILE,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
DOVI_CONF,
|
||||
}
|
||||
|
||||
impl From<AVPacketSideDataType> for Type {
|
||||
@ -80,6 +87,13 @@ impl From<AVPacketSideDataType> for Type {
|
||||
|
||||
#[cfg(feature = "ffmpeg41")]
|
||||
AV_PKT_DATA_AFD => Type::AFD,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_PKT_DATA_PRFT => Type::PRFT,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_PKT_DATA_ICC_PROFILE => Type::ICC_PROFILE,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_PKT_DATA_DOVI_CONF => Type::DOVI_CONF,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -121,6 +135,13 @@ impl Into<AVPacketSideDataType> for Type {
|
||||
|
||||
#[cfg(feature = "ffmpeg41")]
|
||||
Type::AFD => AV_PKT_DATA_AFD,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Type::PRFT => AV_PKT_DATA_PRFT,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Type::ICC_PROFILE => AV_PKT_DATA_ICC_PROFILE,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Type::DOVI_CONF => AV_PKT_DATA_DOVI_CONF,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,10 +21,16 @@ pub enum Primaries {
|
||||
SMPTE428,
|
||||
SMPTE431,
|
||||
SMPTE432,
|
||||
#[cfg(not(feature = "ffmpeg43"))]
|
||||
JEDEC_P22,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
EBU3213,
|
||||
}
|
||||
|
||||
impl Primaries {
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
pub const JEDEC_P22: Primaries = Primaries::EBU3213;
|
||||
|
||||
pub fn name(&self) -> Option<&'static str> {
|
||||
if *self == Primaries::Unspecified {
|
||||
return None;
|
||||
@ -56,7 +62,10 @@ impl From<AVColorPrimaries> for Primaries {
|
||||
AVCOL_PRI_SMPTE428 => Primaries::SMPTE428,
|
||||
AVCOL_PRI_SMPTE431 => Primaries::SMPTE431,
|
||||
AVCOL_PRI_SMPTE432 => Primaries::SMPTE432,
|
||||
#[cfg(not(feature = "ffmpeg43"))]
|
||||
AVCOL_PRI_JEDEC_P22 => Primaries::JEDEC_P22,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AVCOL_PRI_EBU3213 => Primaries::EBU3213,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -79,7 +88,10 @@ impl Into<AVColorPrimaries> for Primaries {
|
||||
Primaries::SMPTE428 => AVCOL_PRI_SMPTE428,
|
||||
Primaries::SMPTE431 => AVCOL_PRI_SMPTE431,
|
||||
Primaries::SMPTE432 => AVCOL_PRI_SMPTE432,
|
||||
#[cfg(not(feature = "ffmpeg43"))]
|
||||
Primaries::JEDEC_P22 => AVCOL_PRI_JEDEC_P22,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Primaries::EBU3213 => AVCOL_PRI_EBU3213,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -334,6 +334,13 @@ pub enum Pixel {
|
||||
NV24,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
NV42,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
VULKAN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Y210BE,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Y210LE,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, PartialEq, Eq)]
|
||||
@ -648,6 +655,13 @@ impl From<AVPixelFormat> for Pixel {
|
||||
AV_PIX_FMT_NV24 => Pixel::NV24,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
AV_PIX_FMT_NV42 => Pixel::NV42,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_PIX_FMT_VULKAN => Pixel::VULKAN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_PIX_FMT_Y210BE => Pixel::Y210BE,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_PIX_FMT_Y210LE => Pixel::Y210LE,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -982,6 +996,13 @@ impl Into<AVPixelFormat> for Pixel {
|
||||
Pixel::NV24 => AV_PIX_FMT_NV24,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
Pixel::NV42 => AV_PIX_FMT_NV42,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Pixel::VULKAN => AV_PIX_FMT_VULKAN,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Pixel::Y210BE => AV_PIX_FMT_Y210BE,
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Pixel::Y210LE => AV_PIX_FMT_Y210LE,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -40,6 +40,9 @@ pub enum Type {
|
||||
DYNAMIC_HDR_PLUS,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
REGIONS_OF_INTEREST,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
VIDEO_ENC_PARAMS,
|
||||
}
|
||||
|
||||
impl Type {
|
||||
@ -85,6 +88,9 @@ impl From<AVFrameSideDataType> for Type {
|
||||
AV_FRAME_DATA_DYNAMIC_HDR_PLUS => Type::DYNAMIC_HDR_PLUS,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
AV_FRAME_DATA_REGIONS_OF_INTEREST => Type::REGIONS_OF_INTEREST,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
AV_FRAME_DATA_VIDEO_ENC_PARAMS => Type::VIDEO_ENC_PARAMS,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -123,6 +129,9 @@ impl Into<AVFrameSideDataType> for Type {
|
||||
Type::DYNAMIC_HDR_PLUS => AV_FRAME_DATA_DYNAMIC_HDR_PLUS,
|
||||
#[cfg(feature = "ffmpeg42")]
|
||||
Type::REGIONS_OF_INTEREST => AV_FRAME_DATA_REGIONS_OF_INTEREST,
|
||||
|
||||
#[cfg(feature = "ffmpeg43")]
|
||||
Type::VIDEO_ENC_PARAMS => AV_FRAME_DATA_VIDEO_ENC_PARAMS,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user