Fix duplicate enum variant issues for FFmpeg 3.4

This commit is contained in:
Zhiming Wang 2020-06-11 23:18:47 +08:00
parent 3df1a1c209
commit 036c0e5b42
No known key found for this signature in database
GPG Key ID: 5B58F95EC95965D8
2 changed files with 8 additions and 4 deletions

View File

@ -298,8 +298,6 @@ pub enum Id {
ADPCM_G722, ADPCM_G722,
ADPCM_IMA_APC, ADPCM_IMA_APC,
ADPCM_VIMA, ADPCM_VIMA,
#[cfg(not(feature = "ffmpeg4"))]
VIMA,
ADPCM_AFC, ADPCM_AFC,
ADPCM_IMA_OKI, ADPCM_IMA_OKI,
@ -530,6 +528,9 @@ pub enum Id {
} }
impl Id { impl Id {
#[cfg(feature = "ff_api_vima_decoder")]
pub const VIMA: Id = Id::ADPCM_VIMA;
pub fn medium(&self) -> media::Type { pub fn medium(&self) -> media::Type {
unsafe { media::Type::from(avcodec_get_type((*self).into())) } unsafe { media::Type::from(avcodec_get_type((*self).into())) }
} }
@ -1353,8 +1354,6 @@ impl Into<AVCodecID> for Id {
Id::ADPCM_G722 => AV_CODEC_ID_ADPCM_G722, Id::ADPCM_G722 => AV_CODEC_ID_ADPCM_G722,
Id::ADPCM_IMA_APC => AV_CODEC_ID_ADPCM_IMA_APC, Id::ADPCM_IMA_APC => AV_CODEC_ID_ADPCM_IMA_APC,
Id::ADPCM_VIMA => AV_CODEC_ID_ADPCM_VIMA, Id::ADPCM_VIMA => AV_CODEC_ID_ADPCM_VIMA,
#[cfg(not(feature = "ffmpeg4"))]
Id::VIMA => AV_CODEC_ID_VIMA,
Id::ADPCM_AFC => AV_CODEC_ID_ADPCM_AFC, Id::ADPCM_AFC => AV_CODEC_ID_ADPCM_AFC,
Id::ADPCM_IMA_OKI => AV_CODEC_ID_ADPCM_IMA_OKI, Id::ADPCM_IMA_OKI => AV_CODEC_ID_ADPCM_IMA_OKI,

View File

@ -222,6 +222,7 @@ pub enum Pixel {
VIDEOTOOLBOX, VIDEOTOOLBOX,
// --- defaults // --- defaults
#[cfg(not(feature = "ff_api_xvmc"))]
XVMC, XVMC,
RGB32, RGB32,
@ -347,6 +348,8 @@ impl Pixel {
pub const Y400A: Pixel = Pixel::YA8; pub const Y400A: Pixel = Pixel::YA8;
pub const GRAY8A: Pixel = Pixel::YA8; pub const GRAY8A: Pixel = Pixel::YA8;
pub const GBR24P: Pixel = Pixel::GBRP; pub const GBR24P: Pixel = Pixel::GBRP;
#[cfg(feature = "ff_api_xvmc")]
pub const XVMC: Pixel = Pixel::XVMC_MPEG2_IDCT;
pub fn descriptor(self) -> Option<Descriptor> { pub fn descriptor(self) -> Option<Descriptor> {
unsafe { unsafe {
@ -400,6 +403,7 @@ impl From<AVPixelFormat> for Pixel {
AV_PIX_FMT_YUVJ420P => Pixel::YUVJ420P, AV_PIX_FMT_YUVJ420P => Pixel::YUVJ420P,
AV_PIX_FMT_YUVJ422P => Pixel::YUVJ422P, AV_PIX_FMT_YUVJ422P => Pixel::YUVJ422P,
AV_PIX_FMT_YUVJ444P => Pixel::YUVJ444P, AV_PIX_FMT_YUVJ444P => Pixel::YUVJ444P,
#[cfg(not(feature = "ff_api_xvmc"))]
AV_PIX_FMT_XVMC => Pixel::XVMC, AV_PIX_FMT_XVMC => Pixel::XVMC,
#[cfg(feature = "ff_api_xvmc")] #[cfg(feature = "ff_api_xvmc")]
AV_PIX_FMT_XVMC_MPEG2_MC => Pixel::XVMC_MPEG2_MC, AV_PIX_FMT_XVMC_MPEG2_MC => Pixel::XVMC_MPEG2_MC,
@ -866,6 +870,7 @@ impl Into<AVPixelFormat> for Pixel {
Pixel::VIDEOTOOLBOX => AV_PIX_FMT_VIDEOTOOLBOX, Pixel::VIDEOTOOLBOX => AV_PIX_FMT_VIDEOTOOLBOX,
// --- defaults // --- defaults
#[cfg(not(feature = "ff_api_xvmc"))]
Pixel::XVMC => AV_PIX_FMT_XVMC, Pixel::XVMC => AV_PIX_FMT_XVMC,
Pixel::RGB32 => AV_PIX_FMT_RGB32, Pixel::RGB32 => AV_PIX_FMT_RGB32,