diff --git a/Cargo.toml b/Cargo.toml index 6e5c568..1b4ee4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -95,5 +95,5 @@ version = "0.4" optional = true [dependencies.ffmpeg-sys] -version = "2.8" +version = "3.2" default-features = false diff --git a/src/codec/capabilities.rs b/src/codec/capabilities.rs index 17980bf..6613b04 100644 --- a/src/codec/capabilities.rs +++ b/src/codec/capabilities.rs @@ -6,14 +6,12 @@ bitflags! { const DRAW_HORIZ_BAND = AV_CODEC_CAP_DRAW_HORIZ_BAND, const DR1 = AV_CODEC_CAP_DR1, const TRUNCATED = AV_CODEC_CAP_TRUNCATED, - const HWACCEL = AV_CODEC_CAP_HWACCEL, const DELAY = AV_CODEC_CAP_DELAY, const SMALL_LAST_FRAME = AV_CODEC_CAP_SMALL_LAST_FRAME, const HWACCEL_VDPAU = AV_CODEC_CAP_HWACCEL_VDPAU, const SUBFRAMES = AV_CODEC_CAP_SUBFRAMES, const EXPERIMENTAL = AV_CODEC_CAP_EXPERIMENTAL, const CHANNEL_CONF = AV_CODEC_CAP_CHANNEL_CONF, - const NEG_LINESIZES = AV_CODEC_CAP_NEG_LINESIZES, const FRAME_THREADS = AV_CODEC_CAP_FRAME_THREADS, const SLICE_THREADS = AV_CODEC_CAP_SLICE_THREADS, const PARAM_CHANGE = AV_CODEC_CAP_PARAM_CHANGE, diff --git a/src/codec/encoder/encoder.rs b/src/codec/encoder/encoder.rs index d64dc79..bdeb439 100644 --- a/src/codec/encoder/encoder.rs +++ b/src/codec/encoder/encoder.rs @@ -1,6 +1,6 @@ use std::ops::{Deref, DerefMut}; -use libc::c_int; +use libc::{c_int, int64_t}; use codec::Context; use ::{Error, Rational, media}; use super::{video, audio, subtitle}; @@ -70,13 +70,13 @@ impl Encoder { pub fn set_bit_rate(&mut self, value: usize) { unsafe { - (*self.as_mut_ptr()).bit_rate = value as c_int; + (*self.as_mut_ptr()).bit_rate = value as int64_t; } } pub fn set_max_bit_rate(&mut self, value: usize) { unsafe { - (*self.as_mut_ptr()).rc_max_rate = value as c_int; + (*self.as_mut_ptr()).rc_max_rate = value as int64_t; } } diff --git a/src/codec/flag.rs b/src/codec/flag.rs index ed1ca50..3ea976a 100644 --- a/src/codec/flag.rs +++ b/src/codec/flag.rs @@ -8,16 +8,11 @@ bitflags! { const _4MV = AV_CODEC_FLAG_4MV, const OUTPUT_CORRUPT = AV_CODEC_FLAG_OUTPUT_CORRUPT, const QPEL = AV_CODEC_FLAG_QPEL, - const GMC = AV_CODEC_FLAG_GMC, - const MV0 = AV_CODEC_FLAG_MV0, - const INPUT_PRESERVED = AV_CODEC_FLAG_INPUT_PRESERVED, const PASS1 = AV_CODEC_FLAG_PASS1, const PASS2 = AV_CODEC_FLAG_PASS2, const GRAY = AV_CODEC_FLAG_GRAY, - const EMU_EDGE = AV_CODEC_FLAG_EMU_EDGE, const PSNR = AV_CODEC_FLAG_PSNR, const TRUNCATED = AV_CODEC_FLAG_TRUNCATED, - const NORMALIZE_AQP = AV_CODEC_FLAG_NORMALIZE_AQP, const INTERLACED_DCT = AV_CODEC_FLAG_INTERLACED_DCT, const LOW_DELAY = AV_CODEC_FLAG_LOW_DELAY, const GLOBAL_HEADER = AV_CODEC_FLAG_GLOBAL_HEADER, diff --git a/src/codec/id.rs b/src/codec/id.rs index a1abfb9..a7cfcb0 100644 --- a/src/codec/id.rs +++ b/src/codec/id.rs @@ -181,55 +181,53 @@ pub enum Id { MSS2, VP9, AIC, - ESCAPE130_DEPRECATED, - G2M_DEPRECATED, - WEBP_DEPRECATED, + ESCAPE130, + G2M, + WEBP, HNM4_VIDEO, - HEVC_DEPRECATED, + HEVC, + H265, FIC, ALIAS_PIX, - BRENDER_PIX_DEPRECATED, - PAF_VIDEO_DEPRECATED, - EXR_DEPRECATED, - VP7_DEPRECATED, - SANM_DEPRECATED, - SGIRLE_DEPRECATED, - MVC1_DEPRECATED, - MVC2_DEPRECATED, + BRENDER_PIX, + PAF_VIDEO, + EXR, + VP7, + SANM, + SGIRLE, + MVC1, + MVC2, HQX, TDSC, HQ_HQA, HAP, DDS, + DXV, + SCREENPRESSO, + RSCC, - BRENDER_PIX, Y41P, - ESCAPE130, - EXR, AVRP, - V012, - G2M, AVUI, AYUV, TARGA_Y216, V308, V408, YUV4, - SANM, - PAF_VIDEO, AVRN, CPIA, XFACE, - SGIRLE, - MVC1, - MVC2, SNOW, - WEBP, SMVJPEG, - HEVC, - VP7, APNG, + DAALA, + CFHD, + TRUEMOTION2RT, + M101, + MAGICYUV, + SHEERVIDEO, + YLC, // various PCM "codecs" PCM_S16LE, @@ -260,13 +258,13 @@ pub enum Id { PCM_LXF, S302M, PCM_S8_PLANAR, - PCM_S24LE_PLANAR_DEPRECATED, - PCM_S32LE_PLANAR_DEPRECATED, - PCM_S16BE_PLANAR_DEPRECATED, PCM_S24LE_PLANAR, PCM_S32LE_PLANAR, PCM_S16BE_PLANAR, + PCM_S64LE, + PCM_S64BE, + // various ADPCM codecs ADPCM_IMA_QT, ADPCM_IMA_WAV, @@ -298,15 +296,19 @@ pub enum Id { ADPCM_IMA_ISS, ADPCM_G722, ADPCM_IMA_APC, - ADPCM_VIMA_DEPRECATED, ADPCM_VIMA, VIMA, + ADPCM_AFC, ADPCM_IMA_OKI, ADPCM_DTK, ADPCM_IMA_RAD, ADPCM_G726LE, ADPCM_THP_LE, + ADPCM_PSX, + ADPCM_AICA, + ADPCM_IMA_DAT4, + ADPCM_MTAF, // AMR AMR_NB, @@ -322,6 +324,8 @@ pub enum Id { XAN_DPCM, SOL_DPCM, + SDX2_DPCM, + // audio codecs MP2, MP3, @@ -385,19 +389,17 @@ pub enum Id { RALF, IAC, ILBC, - OPUS_DEPRECATED, + OPUS, COMFORT_NOISE, - TAK_DEPRECATED, + TAK, METASOUND, - PAF_AUDIO_DEPRECATED, + PAF_AUDIO, ON2AVC, DSS_SP, + FFWAVESYNTH, SONIC, SONIC_LS, - PAF_AUDIO, - OPUS, - TAK, EVRC, SMV, DSD_LSBF, @@ -405,6 +407,10 @@ pub enum Id { DSD_LSBF_PLANAR, DSD_MSBF_PLANAR, _4GV, + INTERPLAY_ACM, + XMA1, + XMA2, + DST, // subtitle codecs DVD_SUBTITLE, @@ -416,6 +422,7 @@ pub enum Id { HDMV_PGS_SUBTITLE, DVB_TELETEXT, SRT, + MICRODVD, EIA_608, JACOSUB, @@ -434,6 +441,8 @@ pub enum Id { // other specific kind of codecs (generally used for attachments) TTF, + + SCTE_35, BINTEXT, XBIN, IDF, @@ -448,6 +457,7 @@ pub enum Id { MPEG2TS, MPEG4SYSTEMS, FFMETADATA, + WRAPPED_AVFRAME, } impl Id { @@ -608,7 +618,6 @@ impl From for Id { AV_CODEC_ID_ANM => Id::ANM, AV_CODEC_ID_BINKVIDEO => Id::BINKVIDEO, AV_CODEC_ID_IFF_ILBM => Id::IFF_ILBM, - AV_CODEC_ID_IFF_BYTERUN1 => Id::IFF_BYTERUN1, AV_CODEC_ID_KGV1 => Id::KGV1, AV_CODEC_ID_YOP => Id::YOP, AV_CODEC_ID_VP8 => Id::VP8, @@ -641,55 +650,52 @@ impl From for Id { AV_CODEC_ID_MSS2 => Id::MSS2, AV_CODEC_ID_VP9 => Id::VP9, AV_CODEC_ID_AIC => Id::AIC, - AV_CODEC_ID_ESCAPE130_DEPRECATED => Id::ESCAPE130_DEPRECATED, - AV_CODEC_ID_G2M_DEPRECATED => Id::G2M_DEPRECATED, - AV_CODEC_ID_WEBP_DEPRECATED => Id::WEBP_DEPRECATED, + AV_CODEC_ID_ESCAPE130 => Id::ESCAPE130, + AV_CODEC_ID_G2M => Id::G2M, + AV_CODEC_ID_WEBP => Id::WEBP, AV_CODEC_ID_HNM4_VIDEO => Id::HNM4_VIDEO, - AV_CODEC_ID_HEVC_DEPRECATED => Id::HEVC_DEPRECATED, + AV_CODEC_ID_HEVC => Id::HEVC, AV_CODEC_ID_FIC => Id::FIC, AV_CODEC_ID_ALIAS_PIX => Id::ALIAS_PIX, - AV_CODEC_ID_BRENDER_PIX_DEPRECATED => Id::BRENDER_PIX_DEPRECATED, - AV_CODEC_ID_PAF_VIDEO_DEPRECATED => Id::PAF_VIDEO_DEPRECATED, - AV_CODEC_ID_EXR_DEPRECATED => Id::EXR_DEPRECATED, - AV_CODEC_ID_VP7_DEPRECATED => Id::VP7_DEPRECATED, - AV_CODEC_ID_SANM_DEPRECATED => Id::SANM_DEPRECATED, - AV_CODEC_ID_SGIRLE_DEPRECATED => Id::SGIRLE_DEPRECATED, - AV_CODEC_ID_MVC1_DEPRECATED => Id::MVC1_DEPRECATED, - AV_CODEC_ID_MVC2_DEPRECATED => Id::MVC2_DEPRECATED, + AV_CODEC_ID_BRENDER_PIX => Id::BRENDER_PIX, + AV_CODEC_ID_PAF_VIDEO => Id::PAF_VIDEO, + AV_CODEC_ID_EXR => Id::EXR, + AV_CODEC_ID_VP7 => Id::VP7, + AV_CODEC_ID_SANM => Id::SANM, + AV_CODEC_ID_SGIRLE => Id::SGIRLE, + AV_CODEC_ID_MVC1 => Id::MVC1, + AV_CODEC_ID_MVC2 => Id::MVC2, AV_CODEC_ID_HQX => Id::HQX, AV_CODEC_ID_TDSC => Id::TDSC, AV_CODEC_ID_HQ_HQA => Id::HQ_HQA, AV_CODEC_ID_HAP => Id::HAP, AV_CODEC_ID_DDS => Id::DDS, + AV_CODEC_ID_DXV => Id::DXV, + AV_CODEC_ID_SCREENPRESSO => Id::SCREENPRESSO, + AV_CODEC_ID_RSCC => Id::RSCC, - AV_CODEC_ID_BRENDER_PIX => Id::BRENDER_PIX, - AV_CODEC_ID_Y41P => Id::Y41P, - AV_CODEC_ID_ESCAPE130 => Id::ESCAPE130, - AV_CODEC_ID_EXR => Id::EXR, - AV_CODEC_ID_AVRP => Id::AVRP, - - AV_CODEC_ID_012V => Id::V012, - AV_CODEC_ID_G2M => Id::G2M, - AV_CODEC_ID_AVUI => Id::AVUI, - AV_CODEC_ID_AYUV => Id::AYUV, - AV_CODEC_ID_TARGA_Y216 => Id::TARGA_Y216, - AV_CODEC_ID_V308 => Id::V308, - AV_CODEC_ID_V408 => Id::V408, - AV_CODEC_ID_YUV4 => Id::YUV4, - AV_CODEC_ID_SANM => Id::SANM, - AV_CODEC_ID_PAF_VIDEO => Id::PAF_VIDEO, - AV_CODEC_ID_AVRN => Id::AVRN, - AV_CODEC_ID_CPIA => Id::CPIA, - AV_CODEC_ID_XFACE => Id::XFACE, - AV_CODEC_ID_SGIRLE => Id::SGIRLE, - AV_CODEC_ID_MVC1 => Id::MVC1, - AV_CODEC_ID_MVC2 => Id::MVC2, - AV_CODEC_ID_SNOW => Id::SNOW, - AV_CODEC_ID_WEBP => Id::WEBP, - AV_CODEC_ID_SMVJPEG => Id::SMVJPEG, - AV_CODEC_ID_HEVC => Id::HEVC, - AV_CODEC_ID_VP7 => Id::VP7, - AV_CODEC_ID_APNG => Id::APNG, + AV_CODEC_ID_Y41P => Id::Y41P, + AV_CODEC_ID_AVRP => Id::AVRP, + AV_CODEC_ID_012V => Id::V012, + AV_CODEC_ID_AVUI => Id::AVUI, + AV_CODEC_ID_AYUV => Id::AYUV, + AV_CODEC_ID_TARGA_Y216 => Id::TARGA_Y216, + AV_CODEC_ID_V308 => Id::V308, + AV_CODEC_ID_V408 => Id::V408, + AV_CODEC_ID_YUV4 => Id::YUV4, + AV_CODEC_ID_AVRN => Id::AVRN, + AV_CODEC_ID_CPIA => Id::CPIA, + AV_CODEC_ID_XFACE => Id::XFACE, + AV_CODEC_ID_SNOW => Id::SNOW, + AV_CODEC_ID_SMVJPEG => Id::SMVJPEG, + AV_CODEC_ID_APNG => Id::APNG, + AV_CODEC_ID_DAALA => Id::DAALA, + AV_CODEC_ID_CFHD => Id::CFHD, + AV_CODEC_ID_TRUEMOTION2RT => Id::TRUEMOTION2RT, + AV_CODEC_ID_M101 => Id::M101, + AV_CODEC_ID_MAGICYUV => Id::MAGICYUV, + AV_CODEC_ID_SHEERVIDEO => Id::SHEERVIDEO, + AV_CODEC_ID_YLC => Id::YLC, /* various PCM "codecs" */ AV_CODEC_ID_PCM_S16LE => Id::PCM_S16LE, @@ -720,14 +726,13 @@ impl From for Id { AV_CODEC_ID_PCM_LXF => Id::PCM_LXF, AV_CODEC_ID_S302M => Id::S302M, AV_CODEC_ID_PCM_S8_PLANAR => Id::PCM_S8_PLANAR, - AV_CODEC_ID_PCM_S24LE_PLANAR_DEPRECATED => Id::PCM_S24LE_PLANAR_DEPRECATED, - AV_CODEC_ID_PCM_S32LE_PLANAR_DEPRECATED => Id::PCM_S32LE_PLANAR_DEPRECATED, - AV_CODEC_ID_PCM_S16BE_PLANAR_DEPRECATED => Id::PCM_S16BE_PLANAR_DEPRECATED, - AV_CODEC_ID_PCM_S24LE_PLANAR => Id::PCM_S24LE_PLANAR, AV_CODEC_ID_PCM_S32LE_PLANAR => Id::PCM_S32LE_PLANAR, AV_CODEC_ID_PCM_S16BE_PLANAR => Id::PCM_S16BE_PLANAR, + AV_CODEC_ID_PCM_S64LE => Id::PCM_S64LE, + AV_CODEC_ID_PCM_S64BE => Id::PCM_S64BE, + /* various ADPCM codecs */ AV_CODEC_ID_ADPCM_IMA_QT => Id::ADPCM_IMA_QT, AV_CODEC_ID_ADPCM_IMA_WAV => Id::ADPCM_IMA_WAV, @@ -759,14 +764,18 @@ impl From for Id { AV_CODEC_ID_ADPCM_IMA_ISS => Id::ADPCM_IMA_ISS, AV_CODEC_ID_ADPCM_G722 => Id::ADPCM_G722, AV_CODEC_ID_ADPCM_IMA_APC => Id::ADPCM_IMA_APC, - AV_CODEC_ID_ADPCM_VIMA_DEPRECATED => Id::ADPCM_VIMA_DEPRECATED, AV_CODEC_ID_ADPCM_VIMA => Id::ADPCM_VIMA, + AV_CODEC_ID_ADPCM_AFC => Id::ADPCM_AFC, AV_CODEC_ID_ADPCM_IMA_OKI => Id::ADPCM_IMA_OKI, AV_CODEC_ID_ADPCM_DTK => Id::ADPCM_DTK, AV_CODEC_ID_ADPCM_IMA_RAD => Id::ADPCM_IMA_RAD, AV_CODEC_ID_ADPCM_G726LE => Id::ADPCM_G726LE, AV_CODEC_ID_ADPCM_THP_LE => Id::ADPCM_THP_LE, + AV_CODEC_ID_ADPCM_PSX => Id::ADPCM_PSX, + AV_CODEC_ID_ADPCM_AICA => Id::ADPCM_AICA, + AV_CODEC_ID_ADPCM_IMA_DAT4 => Id::ADPCM_IMA_DAT4, + AV_CODEC_ID_ADPCM_MTAF => Id::ADPCM_MTAF, /* AMR */ AV_CODEC_ID_AMR_NB => Id::AMR_NB, @@ -782,6 +791,8 @@ impl From for Id { AV_CODEC_ID_XAN_DPCM => Id::XAN_DPCM, AV_CODEC_ID_SOL_DPCM => Id::SOL_DPCM, + AV_CODEC_ID_SDX2_DPCM => Id::SDX2_DPCM, + /* audio codecs */ AV_CODEC_ID_MP2 => Id::MP2, AV_CODEC_ID_MP3 => Id::MP3, @@ -845,19 +856,17 @@ impl From for Id { AV_CODEC_ID_RALF => Id::RALF, AV_CODEC_ID_IAC => Id::IAC, AV_CODEC_ID_ILBC => Id::ILBC, - AV_CODEC_ID_OPUS_DEPRECATED => Id::OPUS_DEPRECATED, + AV_CODEC_ID_OPUS => Id::OPUS, AV_CODEC_ID_COMFORT_NOISE => Id::COMFORT_NOISE, - AV_CODEC_ID_TAK_DEPRECATED => Id::TAK_DEPRECATED, + AV_CODEC_ID_TAK => Id::TAK, AV_CODEC_ID_METASOUND => Id::METASOUND, - AV_CODEC_ID_PAF_AUDIO_DEPRECATED => Id::PAF_AUDIO_DEPRECATED, + AV_CODEC_ID_PAF_AUDIO => Id::PAF_AUDIO, AV_CODEC_ID_ON2AVC => Id::ON2AVC, AV_CODEC_ID_DSS_SP => Id::DSS_SP, + AV_CODEC_ID_FFWAVESYNTH => Id::FFWAVESYNTH, AV_CODEC_ID_SONIC => Id::SONIC, AV_CODEC_ID_SONIC_LS => Id::SONIC_LS, - AV_CODEC_ID_PAF_AUDIO => Id::PAF_AUDIO, - AV_CODEC_ID_OPUS => Id::OPUS, - AV_CODEC_ID_TAK => Id::TAK, AV_CODEC_ID_EVRC => Id::EVRC, AV_CODEC_ID_SMV => Id::SMV, AV_CODEC_ID_DSD_LSBF => Id::DSD_LSBF, @@ -865,6 +874,10 @@ impl From for Id { AV_CODEC_ID_DSD_LSBF_PLANAR => Id::DSD_LSBF_PLANAR, AV_CODEC_ID_DSD_MSBF_PLANAR => Id::DSD_MSBF_PLANAR, AV_CODEC_ID_4GV => Id::_4GV, + AV_CODEC_ID_INTERPLAY_ACM => Id::INTERPLAY_ACM, + AV_CODEC_ID_XMA1 => Id::XMA1, + AV_CODEC_ID_XMA2 => Id::XMA2, + AV_CODEC_ID_DST => Id::DST, /* subtitle codecs */ AV_CODEC_ID_DVD_SUBTITLE => Id::DVD_SUBTITLE, @@ -876,6 +889,7 @@ impl From for Id { AV_CODEC_ID_HDMV_PGS_SUBTITLE => Id::HDMV_PGS_SUBTITLE, AV_CODEC_ID_DVB_TELETEXT => Id::DVB_TELETEXT, AV_CODEC_ID_SRT => Id::SRT, + AV_CODEC_ID_MICRODVD => Id::MICRODVD, AV_CODEC_ID_EIA_608 => Id::EIA_608, AV_CODEC_ID_JACOSUB => Id::JACOSUB, @@ -894,6 +908,8 @@ impl From for Id { /* other specific kind of codecs (generally used for attachments) */ AV_CODEC_ID_TTF => Id::TTF, + + AV_CODEC_ID_SCTE_35 => Id::SCTE_35, AV_CODEC_ID_BINTEXT => Id::BINTEXT, AV_CODEC_ID_XBIN => Id::XBIN, AV_CODEC_ID_IDF => Id::IDF, @@ -905,9 +921,10 @@ impl From for Id { AV_CODEC_ID_PROBE => Id::PROBE, - AV_CODEC_ID_MPEG2TS => Id::MPEG2TS, - AV_CODEC_ID_MPEG4SYSTEMS => Id::MPEG4SYSTEMS, - AV_CODEC_ID_FFMETADATA => Id::FFMETADATA + AV_CODEC_ID_MPEG2TS => Id::MPEG2TS, + AV_CODEC_ID_MPEG4SYSTEMS => Id::MPEG4SYSTEMS, + AV_CODEC_ID_FFMETADATA => Id::FFMETADATA, + AV_CODEC_ID_WRAPPED_AVFRAME => Id::WRAPPED_AVFRAME, } } } @@ -1089,55 +1106,53 @@ impl Into for Id { Id::MSS2 => AV_CODEC_ID_MSS2, Id::VP9 => AV_CODEC_ID_VP9, Id::AIC => AV_CODEC_ID_AIC, - Id::ESCAPE130_DEPRECATED => AV_CODEC_ID_ESCAPE130_DEPRECATED, - Id::G2M_DEPRECATED => AV_CODEC_ID_G2M_DEPRECATED, - Id::WEBP_DEPRECATED => AV_CODEC_ID_WEBP_DEPRECATED, + Id::ESCAPE130 => AV_CODEC_ID_ESCAPE130, + Id::G2M => AV_CODEC_ID_G2M, + Id::WEBP => AV_CODEC_ID_WEBP, Id::HNM4_VIDEO => AV_CODEC_ID_HNM4_VIDEO, - Id::HEVC_DEPRECATED => AV_CODEC_ID_HEVC_DEPRECATED, + Id::HEVC => AV_CODEC_ID_HEVC, + Id::H265 => AV_CODEC_ID_H265, Id::FIC => AV_CODEC_ID_FIC, Id::ALIAS_PIX => AV_CODEC_ID_ALIAS_PIX, - Id::BRENDER_PIX_DEPRECATED => AV_CODEC_ID_BRENDER_PIX_DEPRECATED, - Id::PAF_VIDEO_DEPRECATED => AV_CODEC_ID_PAF_VIDEO_DEPRECATED, - Id::EXR_DEPRECATED => AV_CODEC_ID_EXR_DEPRECATED, - Id::VP7_DEPRECATED => AV_CODEC_ID_VP7_DEPRECATED, - Id::SANM_DEPRECATED => AV_CODEC_ID_SANM_DEPRECATED, - Id::SGIRLE_DEPRECATED => AV_CODEC_ID_SGIRLE_DEPRECATED, - Id::MVC1_DEPRECATED => AV_CODEC_ID_MVC1_DEPRECATED, - Id::MVC2_DEPRECATED => AV_CODEC_ID_MVC2_DEPRECATED, + Id::BRENDER_PIX => AV_CODEC_ID_BRENDER_PIX, + Id::PAF_VIDEO => AV_CODEC_ID_PAF_VIDEO, + Id::EXR => AV_CODEC_ID_EXR, + Id::VP7 => AV_CODEC_ID_VP7, + Id::SANM => AV_CODEC_ID_SANM, + Id::SGIRLE => AV_CODEC_ID_SGIRLE, + Id::MVC1 => AV_CODEC_ID_MVC1, + Id::MVC2 => AV_CODEC_ID_MVC2, Id::HQX => AV_CODEC_ID_HQX, Id::TDSC => AV_CODEC_ID_TDSC, Id::HQ_HQA => AV_CODEC_ID_HQ_HQA, Id::HAP => AV_CODEC_ID_HAP, Id::DDS => AV_CODEC_ID_DDS, + Id::DXV => AV_CODEC_ID_DXV, + Id::SCREENPRESSO => AV_CODEC_ID_SCREENPRESSO, + Id::RSCC => AV_CODEC_ID_RSCC, - Id::BRENDER_PIX => AV_CODEC_ID_BRENDER_PIX, - Id::Y41P => AV_CODEC_ID_Y41P, - Id::ESCAPE130 => AV_CODEC_ID_ESCAPE130, - Id::EXR => AV_CODEC_ID_EXR, - Id::AVRP => AV_CODEC_ID_AVRP, - - Id::V012 => AV_CODEC_ID_012V, - Id::G2M => AV_CODEC_ID_G2M, - Id::AVUI => AV_CODEC_ID_AVUI, - Id::AYUV => AV_CODEC_ID_AYUV, - Id::TARGA_Y216 => AV_CODEC_ID_TARGA_Y216, - Id::V308 => AV_CODEC_ID_V308, - Id::V408 => AV_CODEC_ID_V408, - Id::YUV4 => AV_CODEC_ID_YUV4, - Id::SANM => AV_CODEC_ID_SANM, - Id::PAF_VIDEO => AV_CODEC_ID_PAF_VIDEO, - Id::AVRN => AV_CODEC_ID_AVRN, - Id::CPIA => AV_CODEC_ID_CPIA, - Id::XFACE => AV_CODEC_ID_XFACE, - Id::SGIRLE => AV_CODEC_ID_SGIRLE, - Id::MVC1 => AV_CODEC_ID_MVC1, - Id::MVC2 => AV_CODEC_ID_MVC2, - Id::SNOW => AV_CODEC_ID_SNOW, - Id::WEBP => AV_CODEC_ID_WEBP, - Id::SMVJPEG => AV_CODEC_ID_SMVJPEG, - Id::HEVC => AV_CODEC_ID_HEVC, - Id::VP7 => AV_CODEC_ID_VP7, - Id::APNG => AV_CODEC_ID_APNG, + Id::Y41P => AV_CODEC_ID_Y41P, + Id::AVRP => AV_CODEC_ID_AVRP, + Id::V012 => AV_CODEC_ID_012V, + Id::AVUI => AV_CODEC_ID_AVUI, + Id::AYUV => AV_CODEC_ID_AYUV, + Id::TARGA_Y216 => AV_CODEC_ID_TARGA_Y216, + Id::V308 => AV_CODEC_ID_V308, + Id::V408 => AV_CODEC_ID_V408, + Id::YUV4 => AV_CODEC_ID_YUV4, + Id::AVRN => AV_CODEC_ID_AVRN, + Id::CPIA => AV_CODEC_ID_CPIA, + Id::XFACE => AV_CODEC_ID_XFACE, + Id::SNOW => AV_CODEC_ID_SNOW, + Id::SMVJPEG => AV_CODEC_ID_SMVJPEG, + Id::APNG => AV_CODEC_ID_APNG, + Id::DAALA => AV_CODEC_ID_DAALA, + Id::CFHD => AV_CODEC_ID_CFHD, + Id::TRUEMOTION2RT => AV_CODEC_ID_TRUEMOTION2RT, + Id::M101 => AV_CODEC_ID_M101, + Id::MAGICYUV => AV_CODEC_ID_MAGICYUV, + Id::SHEERVIDEO => AV_CODEC_ID_SHEERVIDEO, + Id::YLC => AV_CODEC_ID_YLC, /* various PCM "codecs" */ Id::PCM_S16LE => AV_CODEC_ID_PCM_S16LE, @@ -1168,13 +1183,13 @@ impl Into for Id { Id::PCM_LXF => AV_CODEC_ID_PCM_LXF, Id::S302M => AV_CODEC_ID_S302M, Id::PCM_S8_PLANAR => AV_CODEC_ID_PCM_S8_PLANAR, - Id::PCM_S24LE_PLANAR_DEPRECATED => AV_CODEC_ID_PCM_S24LE_PLANAR_DEPRECATED, - Id::PCM_S32LE_PLANAR_DEPRECATED => AV_CODEC_ID_PCM_S32LE_PLANAR_DEPRECATED, - Id::PCM_S16BE_PLANAR_DEPRECATED => AV_CODEC_ID_PCM_S16BE_PLANAR_DEPRECATED, Id::PCM_S24LE_PLANAR => AV_CODEC_ID_PCM_S24LE_PLANAR, Id::PCM_S32LE_PLANAR => AV_CODEC_ID_PCM_S32LE_PLANAR, Id::PCM_S16BE_PLANAR => AV_CODEC_ID_PCM_S16BE_PLANAR, + Id::PCM_S64LE => AV_CODEC_ID_PCM_S64LE, + Id::PCM_S64BE => AV_CODEC_ID_PCM_S64BE, + /* various ADPCM codecs */ Id::ADPCM_IMA_QT => AV_CODEC_ID_ADPCM_IMA_QT, Id::ADPCM_IMA_WAV => AV_CODEC_ID_ADPCM_IMA_WAV, @@ -1206,15 +1221,19 @@ impl Into for Id { Id::ADPCM_IMA_ISS => AV_CODEC_ID_ADPCM_IMA_ISS, Id::ADPCM_G722 => AV_CODEC_ID_ADPCM_G722, Id::ADPCM_IMA_APC => AV_CODEC_ID_ADPCM_IMA_APC, - Id::ADPCM_VIMA_DEPRECATED => AV_CODEC_ID_ADPCM_VIMA_DEPRECATED, Id::ADPCM_VIMA => AV_CODEC_ID_ADPCM_VIMA, Id::VIMA => AV_CODEC_ID_VIMA, + Id::ADPCM_AFC => AV_CODEC_ID_ADPCM_AFC, Id::ADPCM_IMA_OKI => AV_CODEC_ID_ADPCM_IMA_OKI, Id::ADPCM_DTK => AV_CODEC_ID_ADPCM_DTK, Id::ADPCM_IMA_RAD => AV_CODEC_ID_ADPCM_IMA_RAD, Id::ADPCM_G726LE => AV_CODEC_ID_ADPCM_G726LE, Id::ADPCM_THP_LE => AV_CODEC_ID_ADPCM_THP_LE, + Id::ADPCM_PSX => AV_CODEC_ID_ADPCM_PSX, + Id::ADPCM_AICA => AV_CODEC_ID_ADPCM_AICA, + Id::ADPCM_IMA_DAT4 => AV_CODEC_ID_ADPCM_IMA_DAT4, + Id::ADPCM_MTAF => AV_CODEC_ID_ADPCM_MTAF, /* AMR */ Id::AMR_NB => AV_CODEC_ID_AMR_NB, @@ -1230,6 +1249,8 @@ impl Into for Id { Id::XAN_DPCM => AV_CODEC_ID_XAN_DPCM, Id::SOL_DPCM => AV_CODEC_ID_SOL_DPCM, + Id::SDX2_DPCM => AV_CODEC_ID_SDX2_DPCM, + /* audio codecs */ Id::MP2 => AV_CODEC_ID_MP2, Id::MP3 => AV_CODEC_ID_MP3, @@ -1293,19 +1314,17 @@ impl Into for Id { Id::RALF => AV_CODEC_ID_RALF, Id::IAC => AV_CODEC_ID_IAC, Id::ILBC => AV_CODEC_ID_ILBC, - Id::OPUS_DEPRECATED => AV_CODEC_ID_OPUS_DEPRECATED, + Id::OPUS => AV_CODEC_ID_OPUS, Id::COMFORT_NOISE => AV_CODEC_ID_COMFORT_NOISE, - Id::TAK_DEPRECATED => AV_CODEC_ID_TAK_DEPRECATED, + Id::TAK => AV_CODEC_ID_TAK, Id::METASOUND => AV_CODEC_ID_METASOUND, - Id::PAF_AUDIO_DEPRECATED => AV_CODEC_ID_PAF_AUDIO_DEPRECATED, + Id::PAF_AUDIO => AV_CODEC_ID_PAF_AUDIO, Id::ON2AVC => AV_CODEC_ID_ON2AVC, Id::DSS_SP => AV_CODEC_ID_DSS_SP, + Id::FFWAVESYNTH => AV_CODEC_ID_FFWAVESYNTH, Id::SONIC => AV_CODEC_ID_SONIC, Id::SONIC_LS => AV_CODEC_ID_SONIC_LS, - Id::PAF_AUDIO => AV_CODEC_ID_PAF_AUDIO, - Id::OPUS => AV_CODEC_ID_OPUS, - Id::TAK => AV_CODEC_ID_TAK, Id::EVRC => AV_CODEC_ID_EVRC, Id::SMV => AV_CODEC_ID_SMV, Id::DSD_LSBF => AV_CODEC_ID_DSD_LSBF, @@ -1313,6 +1332,10 @@ impl Into for Id { Id::DSD_LSBF_PLANAR => AV_CODEC_ID_DSD_LSBF_PLANAR, Id::DSD_MSBF_PLANAR => AV_CODEC_ID_DSD_MSBF_PLANAR, Id::_4GV => AV_CODEC_ID_4GV, + Id::INTERPLAY_ACM => AV_CODEC_ID_INTERPLAY_ACM, + Id::XMA1 => AV_CODEC_ID_XMA1, + Id::XMA2 => AV_CODEC_ID_XMA2, + Id::DST => AV_CODEC_ID_DST, /* subtitle codecs */ Id::DVD_SUBTITLE => AV_CODEC_ID_DVD_SUBTITLE, @@ -1324,6 +1347,7 @@ impl Into for Id { Id::HDMV_PGS_SUBTITLE => AV_CODEC_ID_HDMV_PGS_SUBTITLE, Id::DVB_TELETEXT => AV_CODEC_ID_DVB_TELETEXT, Id::SRT => AV_CODEC_ID_SRT, + Id::MICRODVD => AV_CODEC_ID_MICRODVD, Id::EIA_608 => AV_CODEC_ID_EIA_608, Id::JACOSUB => AV_CODEC_ID_JACOSUB, @@ -1342,6 +1366,8 @@ impl Into for Id { /* other specific kind of codecs (generally used for attachments) */ Id::TTF => AV_CODEC_ID_TTF, + + Id::SCTE_35 => AV_CODEC_ID_SCTE_35, Id::BINTEXT => AV_CODEC_ID_BINTEXT, Id::XBIN => AV_CODEC_ID_XBIN, Id::IDF => AV_CODEC_ID_IDF, @@ -1353,9 +1379,10 @@ impl Into for Id { Id::PROBE => AV_CODEC_ID_PROBE, - Id::MPEG2TS => AV_CODEC_ID_MPEG2TS, - Id::MPEG4SYSTEMS => AV_CODEC_ID_MPEG4SYSTEMS, - Id::FFMETADATA => AV_CODEC_ID_FFMETADATA + Id::MPEG2TS => AV_CODEC_ID_MPEG2TS, + Id::MPEG4SYSTEMS => AV_CODEC_ID_MPEG4SYSTEMS, + Id::FFMETADATA => AV_CODEC_ID_FFMETADATA, + Id::WRAPPED_AVFRAME => AV_CODEC_ID_WRAPPED_AVFRAME, } } } diff --git a/src/codec/packet/side_data.rs b/src/codec/packet/side_data.rs index 1366de7..5ecaf2e 100644 --- a/src/codec/packet/side_data.rs +++ b/src/codec/packet/side_data.rs @@ -15,6 +15,8 @@ pub enum Type { Stereo3d, AudioServiceType, QualityStats, + FallbackTrack, + CBPProperties, SkipSamples, JpDualMono, StringsMetadata, @@ -23,28 +25,34 @@ pub enum Type { WebVTTIdentifier, WebVTTSettings, MetadataUpdate, + MPEGTSStreamID, + MasteringDisplayMetadata } impl From for Type { fn from(value: AVPacketSideDataType) -> Self { match value { - AV_PKT_DATA_PALETTE => Type::Palette, - AV_PKT_DATA_NEW_EXTRADATA => Type::NewExtraData, - AV_PKT_DATA_PARAM_CHANGE => Type::ParamChange, - AV_PKT_DATA_H263_MB_INFO => Type::H263MbInfo, - AV_PKT_DATA_REPLAYGAIN => Type::ReplayGain, - AV_PKT_DATA_DISPLAYMATRIX => Type::DisplayMatrix, - AV_PKT_DATA_STEREO3D => Type::Stereo3d, - AV_PKT_DATA_AUDIO_SERVICE_TYPE => Type::AudioServiceType, - AV_PKT_DATA_QUALITY_STATS => Type::QualityStats, - AV_PKT_DATA_SKIP_SAMPLES => Type::SkipSamples, - AV_PKT_DATA_JP_DUALMONO => Type::JpDualMono, - AV_PKT_DATA_STRINGS_METADATA => Type::StringsMetadata, - AV_PKT_DATA_SUBTITLE_POSITION => Type::SubtitlePosition, - AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL => Type::MatroskaBlockAdditional, - AV_PKT_DATA_WEBVTT_IDENTIFIER => Type::WebVTTIdentifier, - AV_PKT_DATA_WEBVTT_SETTINGS => Type::WebVTTSettings, - AV_PKT_DATA_METADATA_UPDATE => Type::MetadataUpdate + AV_PKT_DATA_PALETTE => Type::Palette, + AV_PKT_DATA_NEW_EXTRADATA => Type::NewExtraData, + AV_PKT_DATA_PARAM_CHANGE => Type::ParamChange, + AV_PKT_DATA_H263_MB_INFO => Type::H263MbInfo, + AV_PKT_DATA_REPLAYGAIN => Type::ReplayGain, + AV_PKT_DATA_DISPLAYMATRIX => Type::DisplayMatrix, + AV_PKT_DATA_STEREO3D => Type::Stereo3d, + AV_PKT_DATA_AUDIO_SERVICE_TYPE => Type::AudioServiceType, + AV_PKT_DATA_QUALITY_STATS => Type::QualityStats, + AV_PKT_DATA_FALLBACK_TRACK => Type::FallbackTrack, + AV_PKT_DATA_CPB_PROPERTIES => Type::CBPProperties, + AV_PKT_DATA_SKIP_SAMPLES => Type::SkipSamples, + AV_PKT_DATA_JP_DUALMONO => Type::JpDualMono, + AV_PKT_DATA_STRINGS_METADATA => Type::StringsMetadata, + AV_PKT_DATA_SUBTITLE_POSITION => Type::SubtitlePosition, + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL => Type::MatroskaBlockAdditional, + AV_PKT_DATA_WEBVTT_IDENTIFIER => Type::WebVTTIdentifier, + AV_PKT_DATA_WEBVTT_SETTINGS => Type::WebVTTSettings, + AV_PKT_DATA_METADATA_UPDATE => Type::MetadataUpdate, + AV_PKT_DATA_MPEGTS_STREAM_ID => Type::MPEGTSStreamID, + AV_PKT_DATA_MASTERING_DISPLAY_METADATA => Type::MasteringDisplayMetadata } } } @@ -52,23 +60,27 @@ impl From for Type { impl Into for Type { fn into(self) -> AVPacketSideDataType { match self { - Type::Palette => AV_PKT_DATA_PALETTE, - Type::NewExtraData => AV_PKT_DATA_NEW_EXTRADATA, - Type::ParamChange => AV_PKT_DATA_PARAM_CHANGE, - Type::H263MbInfo => AV_PKT_DATA_H263_MB_INFO, - Type::ReplayGain => AV_PKT_DATA_REPLAYGAIN, - Type::DisplayMatrix => AV_PKT_DATA_DISPLAYMATRIX, - Type::Stereo3d => AV_PKT_DATA_STEREO3D, - Type::AudioServiceType => AV_PKT_DATA_AUDIO_SERVICE_TYPE, - Type::QualityStats => AV_PKT_DATA_QUALITY_STATS, - Type::SkipSamples => AV_PKT_DATA_SKIP_SAMPLES, - Type::JpDualMono => AV_PKT_DATA_JP_DUALMONO, - Type::StringsMetadata => AV_PKT_DATA_STRINGS_METADATA, - Type::SubtitlePosition => AV_PKT_DATA_SUBTITLE_POSITION, - Type::MatroskaBlockAdditional => AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, - Type::WebVTTIdentifier => AV_PKT_DATA_WEBVTT_IDENTIFIER, - Type::WebVTTSettings => AV_PKT_DATA_WEBVTT_SETTINGS, - Type::MetadataUpdate => AV_PKT_DATA_METADATA_UPDATE + Type::Palette => AV_PKT_DATA_PALETTE, + Type::NewExtraData => AV_PKT_DATA_NEW_EXTRADATA, + Type::ParamChange => AV_PKT_DATA_PARAM_CHANGE, + Type::H263MbInfo => AV_PKT_DATA_H263_MB_INFO, + Type::ReplayGain => AV_PKT_DATA_REPLAYGAIN, + Type::DisplayMatrix => AV_PKT_DATA_DISPLAYMATRIX, + Type::Stereo3d => AV_PKT_DATA_STEREO3D, + Type::AudioServiceType => AV_PKT_DATA_AUDIO_SERVICE_TYPE, + Type::QualityStats => AV_PKT_DATA_QUALITY_STATS, + Type::FallbackTrack => AV_PKT_DATA_FALLBACK_TRACK, + Type::CBPProperties => AV_PKT_DATA_CPB_PROPERTIES, + Type::SkipSamples => AV_PKT_DATA_SKIP_SAMPLES, + Type::JpDualMono => AV_PKT_DATA_JP_DUALMONO, + Type::StringsMetadata => AV_PKT_DATA_STRINGS_METADATA, + Type::SubtitlePosition => AV_PKT_DATA_SUBTITLE_POSITION, + Type::MatroskaBlockAdditional => AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + Type::WebVTTIdentifier => AV_PKT_DATA_WEBVTT_IDENTIFIER, + Type::WebVTTSettings => AV_PKT_DATA_WEBVTT_SETTINGS, + Type::MetadataUpdate => AV_PKT_DATA_METADATA_UPDATE, + Type::MPEGTSStreamID => AV_PKT_DATA_MPEGTS_STREAM_ID, + Type::MasteringDisplayMetadata => AV_PKT_DATA_MASTERING_DISPLAY_METADATA } } } diff --git a/src/software/resampling/dither.rs b/src/software/resampling/dither.rs index 6279a8e..df71ef8 100644 --- a/src/software/resampling/dither.rs +++ b/src/software/resampling/dither.rs @@ -19,20 +19,20 @@ pub enum Dither { impl From for Dither { fn from(value: SwrDitherType) -> Dither { match value { - SWR_DITHER_NONE => Dither::None, - SWR_DITHER_RECTANGULAR => Dither::Rectangular, - SWR_DITHER_TRIANGULAR => Dither::Triangular, - SWR_DITHER_TRIANGULAR_HIGHPASS => Dither::TriangularHighPass, - - SWR_DITHER_NS => Dither::None, - SWR_DITHER_NS_LIPSHITZ => Dither::NoiseShapingLipshitz, - SWR_DITHER_NS_F_WEIGHTED => Dither::NoiseShapingFWeighted, - SWR_DITHER_NS_MODIFIED_E_WEIGHTED => Dither::NoiseShapingModifiedEWeighted, - SWR_DITHER_NS_IMPROVED_E_WEIGHTED => Dither::NoiseShapingImprovedEWeighted, - SWR_DITHER_NS_SHIBATA => Dither::NoiseShapingShibata, - SWR_DITHER_NS_LOW_SHIBATA => Dither::NoiseShapingLowShibata, - SWR_DITHER_NS_HIGH_SHIBATA => Dither::NoiseShapingHighShibata, - SWR_DITHER_NB => Dither::None, + SWR_DITHER_NONE => Dither::None, + SWR_DITHER_RECTANGULAR => Dither::Rectangular, + SWR_DITHER_TRIANGULAR => Dither::Triangular, + SWR_DITHER_TRIANGULAR_HIGHPASS => Dither::TriangularHighPass, + + SWR_DITHER_NS => Dither::None, + SWR_DITHER_NS_LIPSHITZ => Dither::NoiseShapingLipshitz, + SWR_DITHER_NS_F_WEIGHTED => Dither::NoiseShapingFWeighted, + SWR_DITHER_NS_MODIFIED_E_WEIGHTED => Dither::NoiseShapingModifiedEWeighted, + SWR_DITHER_NS_IMPROVED_E_WEIGHTED => Dither::NoiseShapingImprovedEWeighted, + SWR_DITHER_NS_SHIBATA => Dither::NoiseShapingShibata, + SWR_DITHER_NS_LOW_SHIBATA => Dither::NoiseShapingLowShibata, + SWR_DITHER_NS_HIGH_SHIBATA => Dither::NoiseShapingHighShibata, + SWR_DITHER_NB => Dither::None, } } } @@ -40,18 +40,18 @@ impl From for Dither { impl Into for Dither { fn into(self) -> SwrDitherType { match self { - Dither::None => SWR_DITHER_NONE, - Dither::Rectangular => SWR_DITHER_RECTANGULAR, - Dither::Triangular => SWR_DITHER_TRIANGULAR, - Dither::TriangularHighPass => SWR_DITHER_TRIANGULAR_HIGHPASS, - - Dither::NoiseShapingLipshitz => SWR_DITHER_NS_LIPSHITZ, - Dither::NoiseShapingFWeighted => SWR_DITHER_NS_F_WEIGHTED, - Dither::NoiseShapingModifiedEWeighted => SWR_DITHER_NS_MODIFIED_E_WEIGHTED, - Dither::NoiseShapingImprovedEWeighted => SWR_DITHER_NS_IMPROVED_E_WEIGHTED, - Dither::NoiseShapingShibata => SWR_DITHER_NS_SHIBATA, - Dither::NoiseShapingLowShibata => SWR_DITHER_NS_LOW_SHIBATA, - Dither::NoiseShapingHighShibata => SWR_DITHER_NS_HIGH_SHIBATA, + Dither::None => SWR_DITHER_NONE, + Dither::Rectangular => SWR_DITHER_RECTANGULAR, + Dither::Triangular => SWR_DITHER_TRIANGULAR, + Dither::TriangularHighPass => SWR_DITHER_TRIANGULAR_HIGHPASS, + + Dither::NoiseShapingLipshitz => SWR_DITHER_NS_LIPSHITZ, + Dither::NoiseShapingFWeighted => SWR_DITHER_NS_F_WEIGHTED, + Dither::NoiseShapingModifiedEWeighted => SWR_DITHER_NS_MODIFIED_E_WEIGHTED, + Dither::NoiseShapingImprovedEWeighted => SWR_DITHER_NS_IMPROVED_E_WEIGHTED, + Dither::NoiseShapingShibata => SWR_DITHER_NS_SHIBATA, + Dither::NoiseShapingLowShibata => SWR_DITHER_NS_LOW_SHIBATA, + Dither::NoiseShapingHighShibata => SWR_DITHER_NS_HIGH_SHIBATA, } } } diff --git a/src/software/resampling/filter.rs b/src/software/resampling/filter.rs index 871132f..6b182bb 100644 --- a/src/software/resampling/filter.rs +++ b/src/software/resampling/filter.rs @@ -10,9 +10,9 @@ pub enum Filter { impl From for Filter { fn from(value: SwrFilterType) -> Filter { match value { - SWR_FILTER_TYPE_CUBIC => Filter::Cubic, - SWR_FILTER_TYPE_BLACKMAN_NUTTALL => Filter::BlackmanNuttall, - SWR_FILTER_TYPE_KAISER => Filter::Kaiser, + SWR_FILTER_TYPE_CUBIC => Filter::Cubic, + SWR_FILTER_TYPE_BLACKMAN_NUTTALL => Filter::BlackmanNuttall, + SWR_FILTER_TYPE_KAISER => Filter::Kaiser, } } } @@ -20,9 +20,9 @@ impl From for Filter { impl Into for Filter { fn into(self) -> SwrFilterType { match self { - Filter::Cubic => SWR_FILTER_TYPE_CUBIC, - Filter::BlackmanNuttall => SWR_FILTER_TYPE_BLACKMAN_NUTTALL, - Filter::Kaiser => SWR_FILTER_TYPE_KAISER, + Filter::Cubic => SWR_FILTER_TYPE_CUBIC, + Filter::BlackmanNuttall => SWR_FILTER_TYPE_BLACKMAN_NUTTALL, + Filter::Kaiser => SWR_FILTER_TYPE_KAISER, } } } diff --git a/src/util/frame/side_data.rs b/src/util/frame/side_data.rs index 9e16dde..50af82b 100644 --- a/src/util/frame/side_data.rs +++ b/src/util/frame/side_data.rs @@ -20,6 +20,8 @@ pub enum Type { MotionVectors, SkipSamples, AudioServiceType, + MasteringDisplayMetadata, + GOPTimecode, } impl Type { @@ -45,7 +47,9 @@ impl From for Type { AV_FRAME_DATA_AFD => Type::AFD, AV_FRAME_DATA_MOTION_VECTORS => Type::MotionVectors, AV_FRAME_DATA_SKIP_SAMPLES => Type::SkipSamples, - AV_FRAME_DATA_AUDIO_SERVICE_TYPE => Type::AudioServiceType + AV_FRAME_DATA_AUDIO_SERVICE_TYPE => Type::AudioServiceType, + AV_FRAME_DATA_MASTERING_DISPLAY_METADATA => Type::MasteringDisplayMetadata, + AV_FRAME_DATA_GOP_TIMECODE => Type::GOPTimecode, } } } @@ -64,7 +68,9 @@ impl Into for Type { Type::AFD => AV_FRAME_DATA_AFD, Type::MotionVectors => AV_FRAME_DATA_MOTION_VECTORS, Type::SkipSamples => AV_FRAME_DATA_SKIP_SAMPLES, - Type::AudioServiceType => AV_FRAME_DATA_AUDIO_SERVICE_TYPE + Type::AudioServiceType => AV_FRAME_DATA_AUDIO_SERVICE_TYPE, + Type::MasteringDisplayMetadata => AV_FRAME_DATA_MASTERING_DISPLAY_METADATA, + Type::GOPTimecode => AV_FRAME_DATA_GOP_TIMECODE, } } }