Add FFmpeg 4.1 specific code
This commit is contained in:
parent
6220b88ef2
commit
a69a457e3a
@ -15,8 +15,9 @@ keywords = ["ffmpeg", "multimedia", "video", "audio"]
|
|||||||
categories = ["multimedia"]
|
categories = ["multimedia"]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["ffmpeg4", "codec", "device", "filter", "format", "resampling", "software-resampling", "software-scaling"]
|
default = ["ffmpeg41", "codec", "device", "filter", "format", "resampling", "software-resampling", "software-scaling"]
|
||||||
|
|
||||||
|
ffmpeg41 = ["ffmpeg4"]
|
||||||
ffmpeg4 = []
|
ffmpeg4 = []
|
||||||
|
|
||||||
static = ["ffmpeg-sys-next/static"]
|
static = ["ffmpeg-sys-next/static"]
|
||||||
|
@ -484,12 +484,32 @@ pub enum Id {
|
|||||||
FITS,
|
FITS,
|
||||||
GREMLIN_DPCM,
|
GREMLIN_DPCM,
|
||||||
DOLBY_E,
|
DOLBY_E,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
APTX,
|
APTX,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
APTX_HD,
|
APTX_HD,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
SBC,
|
SBC,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AVS2,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
IMM4,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
PROSUMER,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
MWSC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
WCMV,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
RASC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
PCM_VIDC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
ATRAC9,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
TTML,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Id {
|
impl Id {
|
||||||
@ -976,12 +996,32 @@ impl From<AVCodecID> for Id {
|
|||||||
AV_CODEC_ID_FITS => Id::FITS,
|
AV_CODEC_ID_FITS => Id::FITS,
|
||||||
AV_CODEC_ID_GREMLIN_DPCM => Id::GREMLIN_DPCM,
|
AV_CODEC_ID_GREMLIN_DPCM => Id::GREMLIN_DPCM,
|
||||||
AV_CODEC_ID_DOLBY_E => Id::DOLBY_E,
|
AV_CODEC_ID_DOLBY_E => Id::DOLBY_E,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
AV_CODEC_ID_APTX => Id::APTX,
|
AV_CODEC_ID_APTX => Id::APTX,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
AV_CODEC_ID_APTX_HD => Id::APTX_HD,
|
AV_CODEC_ID_APTX_HD => Id::APTX_HD,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
AV_CODEC_ID_SBC => Id::SBC,
|
AV_CODEC_ID_SBC => Id::SBC,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_AVS2 => Id::AVS2,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_IMM4 => Id::IMM4,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_PROSUMER => Id::PROSUMER,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_MWSC => Id::MWSC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_WCMV => Id::WCMV,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_RASC => Id::RASC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_PCM_VIDC => Id::PCM_VIDC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_ATRAC9 => Id::ATRAC9,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_CODEC_ID_TTML => Id::TTML,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1465,12 +1505,32 @@ impl Into<AVCodecID> for Id {
|
|||||||
Id::FITS => AV_CODEC_ID_FITS,
|
Id::FITS => AV_CODEC_ID_FITS,
|
||||||
Id::GREMLIN_DPCM => AV_CODEC_ID_GREMLIN_DPCM,
|
Id::GREMLIN_DPCM => AV_CODEC_ID_GREMLIN_DPCM,
|
||||||
Id::DOLBY_E => AV_CODEC_ID_DOLBY_E,
|
Id::DOLBY_E => AV_CODEC_ID_DOLBY_E,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
Id::APTX => AV_CODEC_ID_APTX,
|
Id::APTX => AV_CODEC_ID_APTX,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
Id::APTX_HD => AV_CODEC_ID_APTX_HD,
|
Id::APTX_HD => AV_CODEC_ID_APTX_HD,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
Id::SBC => AV_CODEC_ID_SBC,
|
Id::SBC => AV_CODEC_ID_SBC,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::AVS2 => AV_CODEC_ID_AVS2,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::IMM4 => AV_CODEC_ID_IMM4,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::PROSUMER => AV_CODEC_ID_PROSUMER,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::MWSC => AV_CODEC_ID_MWSC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::WCMV => AV_CODEC_ID_WCMV,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::RASC => AV_CODEC_ID_RASC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::PCM_VIDC => AV_CODEC_ID_PCM_VIDC,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::ATRAC9 => AV_CODEC_ID_ATRAC9,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Id::TTML => AV_CODEC_ID_TTML,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,10 +33,14 @@ pub enum Type {
|
|||||||
|
|
||||||
ContentLightLevel,
|
ContentLightLevel,
|
||||||
A53CC,
|
A53CC,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
EncryptionInitInfo,
|
EncryptionInitInfo,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
EncryptionInfo,
|
EncryptionInfo,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AFD,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<AVPacketSideDataType> for Type {
|
impl From<AVPacketSideDataType> for Type {
|
||||||
@ -68,10 +72,14 @@ impl From<AVPacketSideDataType> for Type {
|
|||||||
|
|
||||||
AV_PKT_DATA_CONTENT_LIGHT_LEVEL => Type::ContentLightLevel,
|
AV_PKT_DATA_CONTENT_LIGHT_LEVEL => Type::ContentLightLevel,
|
||||||
AV_PKT_DATA_A53_CC => Type::A53CC,
|
AV_PKT_DATA_A53_CC => Type::A53CC,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
AV_PKT_DATA_ENCRYPTION_INIT_INFO => Type::EncryptionInitInfo,
|
AV_PKT_DATA_ENCRYPTION_INIT_INFO => Type::EncryptionInitInfo,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
AV_PKT_DATA_ENCRYPTION_INFO => Type::EncryptionInfo,
|
AV_PKT_DATA_ENCRYPTION_INFO => Type::EncryptionInfo,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_PKT_DATA_AFD => Type::AFD,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -105,10 +113,14 @@ impl Into<AVPacketSideDataType> for Type {
|
|||||||
|
|
||||||
Type::ContentLightLevel => AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
|
Type::ContentLightLevel => AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
|
||||||
Type::A53CC => AV_PKT_DATA_A53_CC,
|
Type::A53CC => AV_PKT_DATA_A53_CC,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
Type::EncryptionInitInfo => AV_PKT_DATA_ENCRYPTION_INIT_INFO,
|
Type::EncryptionInitInfo => AV_PKT_DATA_ENCRYPTION_INIT_INFO,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
Type::EncryptionInfo => AV_PKT_DATA_ENCRYPTION_INFO,
|
Type::EncryptionInfo => AV_PKT_DATA_ENCRYPTION_INFO,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Type::AFD => AV_PKT_DATA_AFD,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -308,8 +308,18 @@ pub enum Pixel {
|
|||||||
GBRAPF32BE,
|
GBRAPF32BE,
|
||||||
GBRAPF32LE,
|
GBRAPF32LE,
|
||||||
DRM_PRIME,
|
DRM_PRIME,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
OPENCL,
|
OPENCL,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
GRAY14BE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
GRAY14LE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
GRAYF32BE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
GRAYF32LE,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, PartialEq, Eq)]
|
#[derive(Clone, Copy, PartialEq, Eq)]
|
||||||
@ -596,8 +606,18 @@ impl From<AVPixelFormat> for Pixel {
|
|||||||
AV_PIX_FMT_GBRAPF32BE => Pixel::GBRAPF32BE,
|
AV_PIX_FMT_GBRAPF32BE => Pixel::GBRAPF32BE,
|
||||||
AV_PIX_FMT_GBRAPF32LE => Pixel::GBRAPF32LE,
|
AV_PIX_FMT_GBRAPF32LE => Pixel::GBRAPF32LE,
|
||||||
AV_PIX_FMT_DRM_PRIME => Pixel::DRM_PRIME,
|
AV_PIX_FMT_DRM_PRIME => Pixel::DRM_PRIME,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
AV_PIX_FMT_OPENCL => Pixel::OPENCL,
|
AV_PIX_FMT_OPENCL => Pixel::OPENCL,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_PIX_FMT_GRAY14BE => Pixel::GRAY14BE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_PIX_FMT_GRAY14LE => Pixel::GRAY14LE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_PIX_FMT_GRAYF32BE => Pixel::GRAYF32BE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_PIX_FMT_GRAYF32LE => Pixel::GRAYF32LE,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -906,8 +926,18 @@ impl Into<AVPixelFormat> for Pixel {
|
|||||||
Pixel::GBRAPF32BE => AV_PIX_FMT_GBRAPF32BE,
|
Pixel::GBRAPF32BE => AV_PIX_FMT_GBRAPF32BE,
|
||||||
Pixel::GBRAPF32LE => AV_PIX_FMT_GBRAPF32LE,
|
Pixel::GBRAPF32LE => AV_PIX_FMT_GBRAPF32LE,
|
||||||
Pixel::DRM_PRIME => AV_PIX_FMT_DRM_PRIME,
|
Pixel::DRM_PRIME => AV_PIX_FMT_DRM_PRIME,
|
||||||
|
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
Pixel::OPENCL => AV_PIX_FMT_OPENCL,
|
Pixel::OPENCL => AV_PIX_FMT_OPENCL,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Pixel::GRAY14BE => AV_PIX_FMT_GRAY14BE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Pixel::GRAY14LE => AV_PIX_FMT_GRAY14LE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Pixel::GRAYF32BE => AV_PIX_FMT_GRAYF32BE,
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Pixel::GRAYF32LE => AV_PIX_FMT_GRAYF32LE,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,9 @@ pub enum Type {
|
|||||||
QPTableProperties,
|
QPTableProperties,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
QPTableData,
|
QPTableData,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
S12M_TIMECODE,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Type {
|
impl Type {
|
||||||
@ -69,6 +72,9 @@ impl From<AVFrameSideDataType> for Type {
|
|||||||
AV_FRAME_DATA_QP_TABLE_PROPERTIES => Type::QPTableProperties,
|
AV_FRAME_DATA_QP_TABLE_PROPERTIES => Type::QPTableProperties,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
AV_FRAME_DATA_QP_TABLE_DATA => Type::QPTableData,
|
AV_FRAME_DATA_QP_TABLE_DATA => Type::QPTableData,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
AV_FRAME_DATA_S12M_TIMECODE => Type::S12M_TIMECODE,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -99,6 +105,9 @@ impl Into<AVFrameSideDataType> for Type {
|
|||||||
Type::QPTableProperties => AV_FRAME_DATA_QP_TABLE_PROPERTIES,
|
Type::QPTableProperties => AV_FRAME_DATA_QP_TABLE_PROPERTIES,
|
||||||
#[cfg(feature = "ffmpeg4")]
|
#[cfg(feature = "ffmpeg4")]
|
||||||
Type::QPTableData => AV_FRAME_DATA_QP_TABLE_DATA,
|
Type::QPTableData => AV_FRAME_DATA_QP_TABLE_DATA,
|
||||||
|
|
||||||
|
#[cfg(feature = "ffmpeg41")]
|
||||||
|
Type::S12M_TIMECODE => AV_FRAME_DATA_S12M_TIMECODE,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user