Skip to main content

ffmpeg_the_third/codec/
id.rs

1use crate::ffi::*;
2use crate::util::media;
3use crate::utils;
4#[cfg(feature = "serialize")]
5use serde::{Deserialize, Serialize};
6
7#[allow(non_camel_case_types)]
8#[derive(Eq, PartialEq, Clone, Copy, Debug)]
9#[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
10pub enum Id {
11    None,
12
13    // video codecs
14    MPEG1VIDEO,
15    MPEG2VIDEO,
16    H261,
17    H263,
18    RV10,
19    RV20,
20    MJPEG,
21    MJPEGB,
22    LJPEG,
23    SP5X,
24    JPEGLS,
25    MPEG4,
26    RAWVIDEO,
27    MSMPEG4V1,
28    MSMPEG4V2,
29    MSMPEG4V3,
30    WMV1,
31    WMV2,
32    H263P,
33    H263I,
34    FLV1,
35    SVQ1,
36    SVQ3,
37    DVVIDEO,
38    HUFFYUV,
39    CYUV,
40    H264,
41    INDEO3,
42    VP3,
43    THEORA,
44    ASV1,
45    ASV2,
46    FFV1,
47    XM4,
48    VCR1,
49    CLJR,
50    MDEC,
51    ROQ,
52    INTERPLAY_VIDEO,
53    XAN_WC3,
54    XAN_WC4,
55    RPZA,
56    CINEPAK,
57    WS_VQA,
58    MSRLE,
59    MSVIDEO1,
60    IDCIN,
61    BPS8,
62    SMC,
63    FLIC,
64    TRUEMOTION1,
65    VMDVIDEO,
66    MSZH,
67    ZLIB,
68    QTRLE,
69    TSCC,
70    ULTI,
71    QDRAW,
72    VIXL,
73    QPEG,
74    PNG,
75    PPM,
76    PBM,
77    PGM,
78    PGMYUV,
79    PAM,
80    FFVHUFF,
81    RV30,
82    RV40,
83    VC1,
84    WMV3,
85    LOCO,
86    WNV1,
87    AASC,
88    INDEO2,
89    FRAPS,
90    TRUEMOTION2,
91    BMP,
92    CSCD,
93    MMVIDEO,
94    ZMBV,
95    AVS,
96    SMACKVIDEO,
97    NUV,
98    KMVC,
99    FLASHSV,
100    CAVS,
101    JPEG2000,
102    VMNC,
103    VP5,
104    VP6,
105    VP6F,
106    TARGA,
107    DSICINVIDEO,
108    TIERTEXSEQVIDEO,
109    TIFF,
110    GIF,
111    DXA,
112    DNXHD,
113    THP,
114    SGI,
115    C93,
116    BETHSOFTVID,
117    PTX,
118    TXD,
119    VP6A,
120    AMV,
121    VB,
122    PCX,
123    SUNRAST,
124    INDEO4,
125    INDEO5,
126    MIMIC,
127    RL2,
128    ESCAPE124,
129    DIRAC,
130    BFI,
131    CMV,
132    MOTIONPIXELS,
133    TGV,
134    TGQ,
135    TQI,
136    AURA,
137    AURA2,
138    V210X,
139    TMV,
140    V210,
141    DPX,
142    MAD,
143    FRWU,
144    FLASHSV2,
145    CDGRAPHICS,
146    R210,
147    ANM,
148    BINKVIDEO,
149    IFF_ILBM,
150    IFF_BYTERUN1,
151    KGV1,
152    YOP,
153    VP8,
154    PICTOR,
155    ANSI,
156    A64_MULTI,
157    A64_MULTI5,
158    R10K,
159    MXPEG,
160    LAGARITH,
161    PRORES,
162    JV,
163    DFA,
164    WMV3IMAGE,
165    VC1IMAGE,
166    UTVIDEO,
167    BMV_VIDEO,
168    VBLE,
169    DXTORY,
170    #[cfg(not(feature = "ffmpeg_9_0"))]
171    V410,
172    XWD,
173    CDXL,
174    XBM,
175    ZEROCODEC,
176    MSS1,
177    MSA1,
178    TSCC2,
179    MTS2,
180    CLLC,
181    MSS2,
182    VP9,
183    AIC,
184    ESCAPE130,
185    G2M,
186    WEBP,
187    HNM4_VIDEO,
188    HEVC,
189    H265,
190    FIC,
191    ALIAS_PIX,
192    BRENDER_PIX,
193    PAF_VIDEO,
194    EXR,
195    VP7,
196    SANM,
197    SGIRLE,
198    MVC1,
199    MVC2,
200    HQX,
201    TDSC,
202    HQ_HQA,
203    HAP,
204    DDS,
205    DXV,
206    SCREENPRESSO,
207    RSCC,
208
209    Y41P,
210    AVRP,
211    V012,
212    AVUI,
213    #[cfg(not(feature = "ffmpeg_7_0"))]
214    AYUV,
215    TARGA_Y216,
216    #[cfg(not(feature = "ffmpeg_9_0"))]
217    V308,
218    #[cfg(not(feature = "ffmpeg_9_0"))]
219    V408,
220    YUV4,
221    AVRN,
222    CPIA,
223    XFACE,
224    SNOW,
225    SMVJPEG,
226    APNG,
227    DAALA,
228    CFHD,
229    TRUEMOTION2RT,
230    M101,
231    MAGICYUV,
232    SHEERVIDEO,
233    YLC,
234
235    // various PCM "codecs"
236    PCM_S16LE,
237    PCM_S16BE,
238    PCM_U16LE,
239    PCM_U16BE,
240    PCM_S8,
241    PCM_U8,
242    PCM_MULAW,
243    PCM_ALAW,
244    PCM_S32LE,
245    PCM_S32BE,
246    PCM_U32LE,
247    PCM_U32BE,
248    PCM_S24LE,
249    PCM_S24BE,
250    PCM_U24LE,
251    PCM_U24BE,
252    PCM_S24DAUD,
253    PCM_ZORK,
254    PCM_S16LE_PLANAR,
255    PCM_DVD,
256    PCM_F32BE,
257    PCM_F32LE,
258    PCM_F64BE,
259    PCM_F64LE,
260    PCM_BLURAY,
261    PCM_LXF,
262    S302M,
263    PCM_S8_PLANAR,
264    PCM_S24LE_PLANAR,
265    PCM_S32LE_PLANAR,
266    PCM_S16BE_PLANAR,
267
268    PCM_S64LE,
269    PCM_S64BE,
270
271    // various ADPCM codecs
272    ADPCM_IMA_QT,
273    ADPCM_IMA_WAV,
274    ADPCM_IMA_DK3,
275    ADPCM_IMA_DK4,
276    ADPCM_IMA_WS,
277    ADPCM_IMA_SMJPEG,
278    ADPCM_MS,
279    ADPCM_4XM,
280    ADPCM_XA,
281    ADPCM_ADX,
282    ADPCM_EA,
283    ADPCM_G726,
284    ADPCM_CT,
285    ADPCM_SWF,
286    ADPCM_YAMAHA,
287    ADPCM_SBPRO_4,
288    ADPCM_SBPRO_3,
289    ADPCM_SBPRO_2,
290    ADPCM_THP,
291    ADPCM_IMA_AMV,
292    ADPCM_EA_R1,
293    ADPCM_EA_R3,
294    ADPCM_EA_R2,
295    ADPCM_IMA_EA_SEAD,
296    ADPCM_IMA_EA_EACS,
297    ADPCM_EA_XAS,
298    ADPCM_EA_MAXIS_XA,
299    ADPCM_IMA_ISS,
300    ADPCM_G722,
301    ADPCM_IMA_APC,
302    ADPCM_VIMA,
303
304    ADPCM_AFC,
305    ADPCM_IMA_OKI,
306    ADPCM_DTK,
307    ADPCM_IMA_RAD,
308    ADPCM_G726LE,
309    ADPCM_THP_LE,
310    ADPCM_PSX,
311    ADPCM_AICA,
312    ADPCM_IMA_DAT4,
313    ADPCM_MTAF,
314
315    // AMR
316    AMR_NB,
317    AMR_WB,
318
319    // RealAudio codecs
320    RA_144,
321    RA_288,
322
323    // various DPCM codecs
324    ROQ_DPCM,
325    INTERPLAY_DPCM,
326    XAN_DPCM,
327    SOL_DPCM,
328
329    SDX2_DPCM,
330
331    // audio codecs
332    MP2,
333    MP3,
334    AAC,
335    AC3,
336    DTS,
337    VORBIS,
338    DVAUDIO,
339    WMAV1,
340    WMAV2,
341    MACE3,
342    MACE6,
343    VMDAUDIO,
344    FLAC,
345    MP3ADU,
346    MP3ON4,
347    SHORTEN,
348    ALAC,
349    WESTWOOD_SND1,
350    GSM,
351    QDM2,
352    COOK,
353    TRUESPEECH,
354    TTA,
355    SMACKAUDIO,
356    QCELP,
357    WAVPACK,
358    DSICINAUDIO,
359    IMC,
360    MUSEPACK7,
361    MLP,
362    GSM_MS,
363    ATRAC3,
364    APE,
365    NELLYMOSER,
366    MUSEPACK8,
367    SPEEX,
368    WMAVOICE,
369    WMAPRO,
370    WMALOSSLESS,
371    ATRAC3P,
372    EAC3,
373    SIPR,
374    MP1,
375    TWINVQ,
376    TRUEHD,
377    MP4ALS,
378    ATRAC1,
379    BINKAUDIO_RDFT,
380    BINKAUDIO_DCT,
381    AAC_LATM,
382    QDMC,
383    CELT,
384    G723_1,
385    G729,
386    SVX_EXP8,
387    SVX_FIB8,
388    BMV_AUDIO,
389    RALF,
390    IAC,
391    ILBC,
392    OPUS,
393    COMFORT_NOISE,
394    TAK,
395    METASOUND,
396    PAF_AUDIO,
397    ON2AVC,
398    DSS_SP,
399
400    CODEC2,
401    FFWAVESYNTH,
402    SONIC,
403    SONIC_LS,
404    EVRC,
405    SMV,
406    DSD_LSBF,
407    DSD_MSBF,
408    DSD_LSBF_PLANAR,
409    DSD_MSBF_PLANAR,
410    _4GV,
411    INTERPLAY_ACM,
412    XMA1,
413    XMA2,
414    DST,
415
416    // subtitle codecs
417    DVD_SUBTITLE,
418    DVB_SUBTITLE,
419    TEXT,
420    XSUB,
421    SSA,
422    MOV_TEXT,
423    HDMV_PGS_SUBTITLE,
424    DVB_TELETEXT,
425    SRT,
426
427    MICRODVD,
428    EIA_608,
429    JACOSUB,
430    SAMI,
431    REALTEXT,
432    STL,
433    SUBVIEWER1,
434    SUBVIEWER,
435    SUBRIP,
436    WEBVTT,
437    MPL2,
438    VPLAYER,
439    PJS,
440    ASS,
441    HDMV_TEXT_SUBTITLE,
442
443    // other specific kind of codecs (generally used for attachments)
444    TTF,
445
446    SCTE_35,
447    BINTEXT,
448    XBIN,
449    IDF,
450    OTF,
451    SMPTE_KLV,
452    DVD_NAV,
453    TIMED_ID3,
454    BIN_DATA,
455
456    PROBE,
457
458    MPEG2TS,
459    MPEG4SYSTEMS,
460    FFMETADATA,
461    WRAPPED_AVFRAME,
462
463    PSD,
464    PIXLET,
465    SPEEDHQ,
466    CLEARVIDEO,
467    FMVC,
468    SCPR,
469    XPM,
470    AV1,
471    PCM_F16LE,
472    PCM_F24LE,
473    ATRAC3AL,
474    ATRAC3PAL,
475
476    BITPACKED,
477    MSCC,
478    SRGC,
479    SVG,
480    GDV,
481    FITS,
482    GREMLIN_DPCM,
483    DOLBY_E,
484
485    APTX,
486    APTX_HD,
487    SBC,
488
489    AVS2,
490    IMM4,
491    PROSUMER,
492    MWSC,
493    WCMV,
494    RASC,
495    PCM_VIDC,
496    ATRAC9,
497    TTML,
498
499    HYMT,
500    ARBC,
501    AGM,
502    LSCR,
503    VP4,
504    ADPCM_AGM,
505    HCOM,
506    ARIB_CAPTION,
507
508    IMM5,
509    MVDV,
510    MVHA,
511    CDTOONS,
512    MV30,
513    NOTCHLC,
514    PFM,
515    ADPCM_ARGO,
516    ADPCM_IMA_SSI,
517    ADPCM_ZORK,
518    ADPCM_IMA_APM,
519    ADPCM_IMA_ALP,
520    ADPCM_IMA_MTF,
521    ADPCM_IMA_CUNNING,
522    DERF_DPCM,
523    ACELP_KELVIN,
524    MPEGH_3D_AUDIO,
525    SIREN,
526    HCA,
527    EPG,
528
529    AVS3,
530    PGX,
531    MSP2,
532    VVC,
533    MOBICLIP,
534    PHOTOCD,
535    ARGO,
536    CRI,
537    IPU,
538    SIMBIOSIS_IMX,
539    SGA_VIDEO,
540    PCM_SGA,
541    ADPCM_IMA_MOFLEX,
542    FASTAUDIO,
543
544    GEM,
545    ADPCM_IMA_ACORN,
546    MSNSIREN,
547
548    VBN,
549    JPEGXL,
550    QOI,
551    PHM,
552    DFPWM,
553
554    #[cfg(feature = "ffmpeg_6_0")]
555    RADIANCE_HDR,
556    #[cfg(feature = "ffmpeg_6_0")]
557    WBMP,
558    #[cfg(feature = "ffmpeg_6_0")]
559    MEDIA100,
560    #[cfg(feature = "ffmpeg_6_0")]
561    VQC,
562    #[cfg(feature = "ffmpeg_6_0")]
563    ADPCM_XMD,
564    #[cfg(feature = "ffmpeg_6_0")]
565    WADY_DPCM,
566    #[cfg(feature = "ffmpeg_6_0")]
567    CBD2_DPCM,
568    #[cfg(feature = "ffmpeg_6_0")]
569    BONK,
570    #[cfg(feature = "ffmpeg_6_0")]
571    MISC4,
572    #[cfg(feature = "ffmpeg_6_0")]
573    APAC,
574    #[cfg(feature = "ffmpeg_6_0")]
575    FTR,
576    #[cfg(feature = "ffmpeg_6_0")]
577    WAVARC,
578    #[cfg(feature = "ffmpeg_6_0")]
579    RKA,
580    #[cfg(feature = "ffmpeg_6_0")]
581    VNULL,
582    #[cfg(feature = "ffmpeg_6_0")]
583    ANULL,
584
585    #[cfg(feature = "ffmpeg_6_1")]
586    PDV,
587    #[cfg(feature = "ffmpeg_6_1")]
588    EVC,
589    #[cfg(feature = "ffmpeg_6_1")]
590    RTV1,
591    #[cfg(feature = "ffmpeg_6_1")]
592    VMIX,
593    #[cfg(feature = "ffmpeg_7_0")]
594    LEAD,
595    #[cfg(feature = "ffmpeg_6_1")]
596    AC4,
597    #[cfg(feature = "ffmpeg_6_1")]
598    OSQ,
599    #[cfg(feature = "ffmpeg_7_0")]
600    QOA,
601    #[cfg(feature = "ffmpeg_7_1")]
602    LC3,
603    #[cfg(feature = "ffmpeg_6_1")]
604    SMPTE_2038,
605    #[cfg(feature = "ffmpeg_7_1")]
606    LCEVC,
607
608    #[cfg(feature = "ffmpeg_8_0")]
609    DNXUC,
610    #[cfg(feature = "ffmpeg_8_0")]
611    RV60,
612    #[cfg(feature = "ffmpeg_8_0")]
613    JPEGXL_ANIM,
614    #[cfg(feature = "ffmpeg_8_0")]
615    APV,
616    #[cfg(feature = "ffmpeg_8_0")]
617    PRORES_RAW,
618    #[cfg(feature = "ffmpeg_8_0")]
619    ADPCM_IMA_XBOX,
620    #[cfg(feature = "ffmpeg_8_0")]
621    ADPCM_SANYO,
622    #[cfg(feature = "ffmpeg_8_0")]
623    G728,
624    #[cfg(feature = "ffmpeg_8_0")]
625    IVTV_VBI,
626    #[cfg(feature = "ffmpeg_8_0")]
627    SMPTE_436M_ANC,
628
629    #[cfg(feature = "ffmpeg_8_1")]
630    JPEGXS,
631    #[cfg(feature = "ffmpeg_8_1")]
632    ADPCM_IMA_HVQM4,
633    #[cfg(feature = "ffmpeg_8_1")]
634    ADPCM_IMA_PDA,
635    #[cfg(feature = "ffmpeg_8_1")]
636    ADPCM_N64,
637    #[cfg(feature = "ffmpeg_8_1")]
638    ADPCM_IMA_HVQM2,
639    #[cfg(feature = "ffmpeg_8_1")]
640    ADPCM_IMA_MAGIX,
641    #[cfg(feature = "ffmpeg_8_1")]
642    ADPCM_PSXC,
643    #[cfg(feature = "ffmpeg_8_1")]
644    ADPCM_CIRCUS,
645    #[cfg(feature = "ffmpeg_8_1")]
646    ADPCM_IMA_ESCAPE,
647    #[cfg(feature = "ffmpeg_8_1")]
648    AHX,
649
650    #[cfg(feature = "ffmpeg_9_0")]
651    WEBP_ANIM,
652    #[cfg(feature = "ffmpeg_9_0")]
653    APPLE_APAC,
654}
655
656impl Id {
657    pub fn medium(&self) -> media::Type {
658        unsafe { media::Type::from(avcodec_get_type((*self).into())) }
659    }
660
661    pub fn name(&self) -> &'static str {
662        unsafe { utils::str_from_c_ptr(avcodec_get_name((*self).into())) }
663    }
664}
665
666impl From<AVCodecID> for Id {
667    fn from(value: AVCodecID) -> Self {
668        use AVCodecID as AV;
669
670        match value {
671            AV::NONE => Id::None,
672
673            /* video codecs */
674            AV::MPEG1VIDEO => Id::MPEG1VIDEO,
675            AV::MPEG2VIDEO => Id::MPEG2VIDEO,
676            AV::H261 => Id::H261,
677            AV::H263 => Id::H263,
678            AV::RV10 => Id::RV10,
679            AV::RV20 => Id::RV20,
680            AV::MJPEG => Id::MJPEG,
681            AV::MJPEGB => Id::MJPEGB,
682            AV::LJPEG => Id::LJPEG,
683            AV::SP5X => Id::SP5X,
684            AV::JPEGLS => Id::JPEGLS,
685            AV::MPEG4 => Id::MPEG4,
686            AV::RAWVIDEO => Id::RAWVIDEO,
687            AV::MSMPEG4V1 => Id::MSMPEG4V1,
688            AV::MSMPEG4V2 => Id::MSMPEG4V2,
689            AV::MSMPEG4V3 => Id::MSMPEG4V3,
690            AV::WMV1 => Id::WMV1,
691            AV::WMV2 => Id::WMV2,
692            AV::H263P => Id::H263P,
693            AV::H263I => Id::H263I,
694            AV::FLV1 => Id::FLV1,
695            AV::SVQ1 => Id::SVQ1,
696            AV::SVQ3 => Id::SVQ3,
697            AV::DVVIDEO => Id::DVVIDEO,
698            AV::HUFFYUV => Id::HUFFYUV,
699            AV::CYUV => Id::CYUV,
700            AV::H264 => Id::H264,
701            AV::INDEO3 => Id::INDEO3,
702            AV::VP3 => Id::VP3,
703            AV::THEORA => Id::THEORA,
704            AV::ASV1 => Id::ASV1,
705            AV::ASV2 => Id::ASV2,
706            AV::FFV1 => Id::FFV1,
707            AV::_4XM => Id::XM4,
708            AV::VCR1 => Id::VCR1,
709            AV::CLJR => Id::CLJR,
710            AV::MDEC => Id::MDEC,
711            AV::ROQ => Id::ROQ,
712            AV::INTERPLAY_VIDEO => Id::INTERPLAY_VIDEO,
713            AV::XAN_WC3 => Id::XAN_WC3,
714            AV::XAN_WC4 => Id::XAN_WC4,
715            AV::RPZA => Id::RPZA,
716            AV::CINEPAK => Id::CINEPAK,
717            AV::WS_VQA => Id::WS_VQA,
718            AV::MSRLE => Id::MSRLE,
719            AV::MSVIDEO1 => Id::MSVIDEO1,
720            AV::IDCIN => Id::IDCIN,
721            AV::_8BPS => Id::BPS8,
722            AV::SMC => Id::SMC,
723            AV::FLIC => Id::FLIC,
724            AV::TRUEMOTION1 => Id::TRUEMOTION1,
725            AV::VMDVIDEO => Id::VMDVIDEO,
726            AV::MSZH => Id::MSZH,
727            AV::ZLIB => Id::ZLIB,
728            AV::QTRLE => Id::QTRLE,
729            AV::TSCC => Id::TSCC,
730            AV::ULTI => Id::ULTI,
731            AV::QDRAW => Id::QDRAW,
732            AV::VIXL => Id::VIXL,
733            AV::QPEG => Id::QPEG,
734            AV::PNG => Id::PNG,
735            AV::PPM => Id::PPM,
736            AV::PBM => Id::PBM,
737            AV::PGM => Id::PGM,
738            AV::PGMYUV => Id::PGMYUV,
739            AV::PAM => Id::PAM,
740            AV::FFVHUFF => Id::FFVHUFF,
741            AV::RV30 => Id::RV30,
742            AV::RV40 => Id::RV40,
743            AV::VC1 => Id::VC1,
744            AV::WMV3 => Id::WMV3,
745            AV::LOCO => Id::LOCO,
746            AV::WNV1 => Id::WNV1,
747            AV::AASC => Id::AASC,
748            AV::INDEO2 => Id::INDEO2,
749            AV::FRAPS => Id::FRAPS,
750            AV::TRUEMOTION2 => Id::TRUEMOTION2,
751            AV::BMP => Id::BMP,
752            AV::CSCD => Id::CSCD,
753            AV::MMVIDEO => Id::MMVIDEO,
754            AV::ZMBV => Id::ZMBV,
755            AV::AVS => Id::AVS,
756            AV::SMACKVIDEO => Id::SMACKVIDEO,
757            AV::NUV => Id::NUV,
758            AV::KMVC => Id::KMVC,
759            AV::FLASHSV => Id::FLASHSV,
760            AV::CAVS => Id::CAVS,
761            AV::JPEG2000 => Id::JPEG2000,
762            AV::VMNC => Id::VMNC,
763            AV::VP5 => Id::VP5,
764            AV::VP6 => Id::VP6,
765            AV::VP6F => Id::VP6F,
766            AV::TARGA => Id::TARGA,
767            AV::DSICINVIDEO => Id::DSICINVIDEO,
768            AV::TIERTEXSEQVIDEO => Id::TIERTEXSEQVIDEO,
769            AV::TIFF => Id::TIFF,
770            AV::GIF => Id::GIF,
771            AV::DXA => Id::DXA,
772            AV::DNXHD => Id::DNXHD,
773            AV::THP => Id::THP,
774            AV::SGI => Id::SGI,
775            AV::C93 => Id::C93,
776            AV::BETHSOFTVID => Id::BETHSOFTVID,
777            AV::PTX => Id::PTX,
778            AV::TXD => Id::TXD,
779            AV::VP6A => Id::VP6A,
780            AV::AMV => Id::AMV,
781            AV::VB => Id::VB,
782            AV::PCX => Id::PCX,
783            AV::SUNRAST => Id::SUNRAST,
784            AV::INDEO4 => Id::INDEO4,
785            AV::INDEO5 => Id::INDEO5,
786            AV::MIMIC => Id::MIMIC,
787            AV::RL2 => Id::RL2,
788            AV::ESCAPE124 => Id::ESCAPE124,
789            AV::DIRAC => Id::DIRAC,
790            AV::BFI => Id::BFI,
791            AV::CMV => Id::CMV,
792            AV::MOTIONPIXELS => Id::MOTIONPIXELS,
793            AV::TGV => Id::TGV,
794            AV::TGQ => Id::TGQ,
795            AV::TQI => Id::TQI,
796            AV::AURA => Id::AURA,
797            AV::AURA2 => Id::AURA2,
798            AV::V210X => Id::V210X,
799            AV::TMV => Id::TMV,
800            AV::V210 => Id::V210,
801            AV::DPX => Id::DPX,
802            AV::MAD => Id::MAD,
803            AV::FRWU => Id::FRWU,
804            AV::FLASHSV2 => Id::FLASHSV2,
805            AV::CDGRAPHICS => Id::CDGRAPHICS,
806            AV::R210 => Id::R210,
807            AV::ANM => Id::ANM,
808            AV::BINKVIDEO => Id::BINKVIDEO,
809            AV::IFF_ILBM => Id::IFF_ILBM,
810            AV::KGV1 => Id::KGV1,
811            AV::YOP => Id::YOP,
812            AV::VP8 => Id::VP8,
813            AV::PICTOR => Id::PICTOR,
814            AV::ANSI => Id::ANSI,
815            AV::A64_MULTI => Id::A64_MULTI,
816            AV::A64_MULTI5 => Id::A64_MULTI5,
817            AV::R10K => Id::R10K,
818            AV::MXPEG => Id::MXPEG,
819            AV::LAGARITH => Id::LAGARITH,
820            AV::PRORES => Id::PRORES,
821            AV::JV => Id::JV,
822            AV::DFA => Id::DFA,
823            AV::WMV3IMAGE => Id::WMV3IMAGE,
824            AV::VC1IMAGE => Id::VC1IMAGE,
825            AV::UTVIDEO => Id::UTVIDEO,
826            AV::BMV_VIDEO => Id::BMV_VIDEO,
827            AV::VBLE => Id::VBLE,
828            AV::DXTORY => Id::DXTORY,
829            #[cfg(not(feature = "ffmpeg_9_0"))]
830            AV::V410 => Id::V410,
831            AV::XWD => Id::XWD,
832            AV::CDXL => Id::CDXL,
833            AV::XBM => Id::XBM,
834            AV::ZEROCODEC => Id::ZEROCODEC,
835            AV::MSS1 => Id::MSS1,
836            AV::MSA1 => Id::MSA1,
837            AV::TSCC2 => Id::TSCC2,
838            AV::MTS2 => Id::MTS2,
839            AV::CLLC => Id::CLLC,
840            AV::MSS2 => Id::MSS2,
841            AV::VP9 => Id::VP9,
842            AV::AIC => Id::AIC,
843            AV::ESCAPE130 => Id::ESCAPE130,
844            AV::G2M => Id::G2M,
845            AV::WEBP => Id::WEBP,
846            AV::HNM4_VIDEO => Id::HNM4_VIDEO,
847            AV::HEVC => Id::HEVC,
848            AV::FIC => Id::FIC,
849            AV::ALIAS_PIX => Id::ALIAS_PIX,
850            AV::BRENDER_PIX => Id::BRENDER_PIX,
851            AV::PAF_VIDEO => Id::PAF_VIDEO,
852            AV::EXR => Id::EXR,
853            AV::VP7 => Id::VP7,
854            AV::SANM => Id::SANM,
855            AV::SGIRLE => Id::SGIRLE,
856            AV::MVC1 => Id::MVC1,
857            AV::MVC2 => Id::MVC2,
858            AV::HQX => Id::HQX,
859            AV::TDSC => Id::TDSC,
860            AV::HQ_HQA => Id::HQ_HQA,
861            AV::HAP => Id::HAP,
862            AV::DDS => Id::DDS,
863            AV::DXV => Id::DXV,
864            AV::SCREENPRESSO => Id::SCREENPRESSO,
865            AV::RSCC => Id::RSCC,
866
867            AV::Y41P => Id::Y41P,
868            AV::AVRP => Id::AVRP,
869            AV::_012V => Id::V012,
870            AV::AVUI => Id::AVUI,
871            #[cfg(not(feature = "ffmpeg_7_0"))]
872            AV::AYUV => Id::AYUV,
873            AV::TARGA_Y216 => Id::TARGA_Y216,
874            #[cfg(not(feature = "ffmpeg_9_0"))]
875            AV::V308 => Id::V308,
876            #[cfg(not(feature = "ffmpeg_9_0"))]
877            AV::V408 => Id::V408,
878            AV::YUV4 => Id::YUV4,
879            AV::AVRN => Id::AVRN,
880            AV::CPIA => Id::CPIA,
881            AV::XFACE => Id::XFACE,
882            AV::SNOW => Id::SNOW,
883            AV::SMVJPEG => Id::SMVJPEG,
884            AV::APNG => Id::APNG,
885            AV::DAALA => Id::DAALA,
886            AV::CFHD => Id::CFHD,
887            AV::TRUEMOTION2RT => Id::TRUEMOTION2RT,
888            AV::M101 => Id::M101,
889            AV::MAGICYUV => Id::MAGICYUV,
890            AV::SHEERVIDEO => Id::SHEERVIDEO,
891            AV::YLC => Id::YLC,
892
893            /* various PCM "codecs" */
894            AV::PCM_S16LE => Id::PCM_S16LE,
895            AV::PCM_S16BE => Id::PCM_S16BE,
896            AV::PCM_U16LE => Id::PCM_U16LE,
897            AV::PCM_U16BE => Id::PCM_U16BE,
898            AV::PCM_S8 => Id::PCM_S8,
899            AV::PCM_U8 => Id::PCM_U8,
900            AV::PCM_MULAW => Id::PCM_MULAW,
901            AV::PCM_ALAW => Id::PCM_ALAW,
902            AV::PCM_S32LE => Id::PCM_S32LE,
903            AV::PCM_S32BE => Id::PCM_S32BE,
904            AV::PCM_U32LE => Id::PCM_U32LE,
905            AV::PCM_U32BE => Id::PCM_U32BE,
906            AV::PCM_S24LE => Id::PCM_S24LE,
907            AV::PCM_S24BE => Id::PCM_S24BE,
908            AV::PCM_U24LE => Id::PCM_U24LE,
909            AV::PCM_U24BE => Id::PCM_U24BE,
910            AV::PCM_S24DAUD => Id::PCM_S24DAUD,
911            AV::PCM_ZORK => Id::PCM_ZORK,
912            AV::PCM_S16LE_PLANAR => Id::PCM_S16LE_PLANAR,
913            AV::PCM_DVD => Id::PCM_DVD,
914            AV::PCM_F32BE => Id::PCM_F32BE,
915            AV::PCM_F32LE => Id::PCM_F32LE,
916            AV::PCM_F64BE => Id::PCM_F64BE,
917            AV::PCM_F64LE => Id::PCM_F64LE,
918            AV::PCM_BLURAY => Id::PCM_BLURAY,
919            AV::PCM_LXF => Id::PCM_LXF,
920            AV::S302M => Id::S302M,
921            AV::PCM_S8_PLANAR => Id::PCM_S8_PLANAR,
922            AV::PCM_S24LE_PLANAR => Id::PCM_S24LE_PLANAR,
923            AV::PCM_S32LE_PLANAR => Id::PCM_S32LE_PLANAR,
924            AV::PCM_S16BE_PLANAR => Id::PCM_S16BE_PLANAR,
925
926            AV::PCM_S64LE => Id::PCM_S64LE,
927            AV::PCM_S64BE => Id::PCM_S64BE,
928
929            /* various ADPCM codecs */
930            AV::ADPCM_IMA_QT => Id::ADPCM_IMA_QT,
931            AV::ADPCM_IMA_WAV => Id::ADPCM_IMA_WAV,
932            AV::ADPCM_IMA_DK3 => Id::ADPCM_IMA_DK3,
933            AV::ADPCM_IMA_DK4 => Id::ADPCM_IMA_DK4,
934            AV::ADPCM_IMA_WS => Id::ADPCM_IMA_WS,
935            AV::ADPCM_IMA_SMJPEG => Id::ADPCM_IMA_SMJPEG,
936            AV::ADPCM_MS => Id::ADPCM_MS,
937            AV::ADPCM_4XM => Id::ADPCM_4XM,
938            AV::ADPCM_XA => Id::ADPCM_XA,
939            AV::ADPCM_ADX => Id::ADPCM_ADX,
940            AV::ADPCM_EA => Id::ADPCM_EA,
941            AV::ADPCM_G726 => Id::ADPCM_G726,
942            AV::ADPCM_CT => Id::ADPCM_CT,
943            AV::ADPCM_SWF => Id::ADPCM_SWF,
944            AV::ADPCM_YAMAHA => Id::ADPCM_YAMAHA,
945            AV::ADPCM_SBPRO_4 => Id::ADPCM_SBPRO_4,
946            AV::ADPCM_SBPRO_3 => Id::ADPCM_SBPRO_3,
947            AV::ADPCM_SBPRO_2 => Id::ADPCM_SBPRO_2,
948            AV::ADPCM_THP => Id::ADPCM_THP,
949            AV::ADPCM_IMA_AMV => Id::ADPCM_IMA_AMV,
950            AV::ADPCM_EA_R1 => Id::ADPCM_EA_R1,
951            AV::ADPCM_EA_R3 => Id::ADPCM_EA_R3,
952            AV::ADPCM_EA_R2 => Id::ADPCM_EA_R2,
953            AV::ADPCM_IMA_EA_SEAD => Id::ADPCM_IMA_EA_SEAD,
954            AV::ADPCM_IMA_EA_EACS => Id::ADPCM_IMA_EA_EACS,
955            AV::ADPCM_EA_XAS => Id::ADPCM_EA_XAS,
956            AV::ADPCM_EA_MAXIS_XA => Id::ADPCM_EA_MAXIS_XA,
957            AV::ADPCM_IMA_ISS => Id::ADPCM_IMA_ISS,
958            AV::ADPCM_G722 => Id::ADPCM_G722,
959            AV::ADPCM_IMA_APC => Id::ADPCM_IMA_APC,
960            AV::ADPCM_VIMA => Id::ADPCM_VIMA,
961
962            AV::ADPCM_AFC => Id::ADPCM_AFC,
963            AV::ADPCM_IMA_OKI => Id::ADPCM_IMA_OKI,
964            AV::ADPCM_DTK => Id::ADPCM_DTK,
965            AV::ADPCM_IMA_RAD => Id::ADPCM_IMA_RAD,
966            AV::ADPCM_G726LE => Id::ADPCM_G726LE,
967            AV::ADPCM_THP_LE => Id::ADPCM_THP_LE,
968            AV::ADPCM_PSX => Id::ADPCM_PSX,
969            AV::ADPCM_AICA => Id::ADPCM_AICA,
970            AV::ADPCM_IMA_DAT4 => Id::ADPCM_IMA_DAT4,
971            AV::ADPCM_MTAF => Id::ADPCM_MTAF,
972
973            /* AMR */
974            AV::AMR_NB => Id::AMR_NB,
975            AV::AMR_WB => Id::AMR_WB,
976
977            /* RealAudio codecs*/
978            AV::RA_144 => Id::RA_144,
979            AV::RA_288 => Id::RA_288,
980
981            /* various DPCM codecs */
982            AV::ROQ_DPCM => Id::ROQ_DPCM,
983            AV::INTERPLAY_DPCM => Id::INTERPLAY_DPCM,
984            AV::XAN_DPCM => Id::XAN_DPCM,
985            AV::SOL_DPCM => Id::SOL_DPCM,
986
987            AV::SDX2_DPCM => Id::SDX2_DPCM,
988
989            /* audio codecs */
990            AV::MP2 => Id::MP2,
991            AV::MP3 => Id::MP3,
992            AV::AAC => Id::AAC,
993            AV::AC3 => Id::AC3,
994            AV::DTS => Id::DTS,
995            AV::VORBIS => Id::VORBIS,
996            AV::DVAUDIO => Id::DVAUDIO,
997            AV::WMAV1 => Id::WMAV1,
998            AV::WMAV2 => Id::WMAV2,
999            AV::MACE3 => Id::MACE3,
1000            AV::MACE6 => Id::MACE6,
1001            AV::VMDAUDIO => Id::VMDAUDIO,
1002            AV::FLAC => Id::FLAC,
1003            AV::MP3ADU => Id::MP3ADU,
1004            AV::MP3ON4 => Id::MP3ON4,
1005            AV::SHORTEN => Id::SHORTEN,
1006            AV::ALAC => Id::ALAC,
1007            AV::WESTWOOD_SND1 => Id::WESTWOOD_SND1,
1008            AV::GSM => Id::GSM,
1009            AV::QDM2 => Id::QDM2,
1010            AV::COOK => Id::COOK,
1011            AV::TRUESPEECH => Id::TRUESPEECH,
1012            AV::TTA => Id::TTA,
1013            AV::SMACKAUDIO => Id::SMACKAUDIO,
1014            AV::QCELP => Id::QCELP,
1015            AV::WAVPACK => Id::WAVPACK,
1016            AV::DSICINAUDIO => Id::DSICINAUDIO,
1017            AV::IMC => Id::IMC,
1018            AV::MUSEPACK7 => Id::MUSEPACK7,
1019            AV::MLP => Id::MLP,
1020            AV::GSM_MS => Id::GSM_MS,
1021            AV::ATRAC3 => Id::ATRAC3,
1022            AV::APE => Id::APE,
1023            AV::NELLYMOSER => Id::NELLYMOSER,
1024            AV::MUSEPACK8 => Id::MUSEPACK8,
1025            AV::SPEEX => Id::SPEEX,
1026            AV::WMAVOICE => Id::WMAVOICE,
1027            AV::WMAPRO => Id::WMAPRO,
1028            AV::WMALOSSLESS => Id::WMALOSSLESS,
1029            AV::ATRAC3P => Id::ATRAC3P,
1030            AV::EAC3 => Id::EAC3,
1031            AV::SIPR => Id::SIPR,
1032            AV::MP1 => Id::MP1,
1033            AV::TWINVQ => Id::TWINVQ,
1034            AV::TRUEHD => Id::TRUEHD,
1035            AV::MP4ALS => Id::MP4ALS,
1036            AV::ATRAC1 => Id::ATRAC1,
1037            AV::BINKAUDIO_RDFT => Id::BINKAUDIO_RDFT,
1038            AV::BINKAUDIO_DCT => Id::BINKAUDIO_DCT,
1039            AV::AAC_LATM => Id::AAC_LATM,
1040            AV::QDMC => Id::QDMC,
1041            AV::CELT => Id::CELT,
1042            AV::G723_1 => Id::G723_1,
1043            AV::G729 => Id::G729,
1044            AV::_8SVX_EXP => Id::SVX_EXP8,
1045            AV::_8SVX_FIB => Id::SVX_FIB8,
1046            AV::BMV_AUDIO => Id::BMV_AUDIO,
1047            AV::RALF => Id::RALF,
1048            AV::IAC => Id::IAC,
1049            AV::ILBC => Id::ILBC,
1050            AV::OPUS => Id::OPUS,
1051            AV::COMFORT_NOISE => Id::COMFORT_NOISE,
1052            AV::TAK => Id::TAK,
1053            AV::METASOUND => Id::METASOUND,
1054            AV::PAF_AUDIO => Id::PAF_AUDIO,
1055            AV::ON2AVC => Id::ON2AVC,
1056            AV::DSS_SP => Id::DSS_SP,
1057
1058            AV::CODEC2 => Id::CODEC2,
1059            AV::FFWAVESYNTH => Id::FFWAVESYNTH,
1060            AV::SONIC => Id::SONIC,
1061            AV::SONIC_LS => Id::SONIC_LS,
1062            AV::EVRC => Id::EVRC,
1063            AV::SMV => Id::SMV,
1064            AV::DSD_LSBF => Id::DSD_LSBF,
1065            AV::DSD_MSBF => Id::DSD_MSBF,
1066            AV::DSD_LSBF_PLANAR => Id::DSD_LSBF_PLANAR,
1067            AV::DSD_MSBF_PLANAR => Id::DSD_MSBF_PLANAR,
1068            AV::_4GV => Id::_4GV,
1069            AV::INTERPLAY_ACM => Id::INTERPLAY_ACM,
1070            AV::XMA1 => Id::XMA1,
1071            AV::XMA2 => Id::XMA2,
1072            AV::DST => Id::DST,
1073
1074            /* subtitle codecs */
1075            AV::DVD_SUBTITLE => Id::DVD_SUBTITLE,
1076            AV::DVB_SUBTITLE => Id::DVB_SUBTITLE,
1077            AV::TEXT => Id::TEXT,
1078            AV::XSUB => Id::XSUB,
1079            AV::SSA => Id::SSA,
1080            AV::MOV_TEXT => Id::MOV_TEXT,
1081            AV::HDMV_PGS_SUBTITLE => Id::HDMV_PGS_SUBTITLE,
1082            AV::DVB_TELETEXT => Id::DVB_TELETEXT,
1083            AV::SRT => Id::SRT,
1084
1085            AV::MICRODVD => Id::MICRODVD,
1086            AV::EIA_608 => Id::EIA_608,
1087            AV::JACOSUB => Id::JACOSUB,
1088            AV::SAMI => Id::SAMI,
1089            AV::REALTEXT => Id::REALTEXT,
1090            AV::STL => Id::STL,
1091            AV::SUBVIEWER1 => Id::SUBVIEWER1,
1092            AV::SUBVIEWER => Id::SUBVIEWER,
1093            AV::SUBRIP => Id::SUBRIP,
1094            AV::WEBVTT => Id::WEBVTT,
1095            AV::MPL2 => Id::MPL2,
1096            AV::VPLAYER => Id::VPLAYER,
1097            AV::PJS => Id::PJS,
1098            AV::ASS => Id::ASS,
1099            AV::HDMV_TEXT_SUBTITLE => Id::HDMV_TEXT_SUBTITLE,
1100
1101            /* other specific kind of codecs (generally used for attachments) */
1102            AV::TTF => Id::TTF,
1103
1104            AV::SCTE_35 => Id::SCTE_35,
1105            AV::BINTEXT => Id::BINTEXT,
1106            AV::XBIN => Id::XBIN,
1107            AV::IDF => Id::IDF,
1108            AV::OTF => Id::OTF,
1109            AV::SMPTE_KLV => Id::SMPTE_KLV,
1110            AV::DVD_NAV => Id::DVD_NAV,
1111            AV::TIMED_ID3 => Id::TIMED_ID3,
1112            AV::BIN_DATA => Id::BIN_DATA,
1113
1114            AV::PROBE => Id::PROBE,
1115
1116            AV::MPEG2TS => Id::MPEG2TS,
1117            AV::MPEG4SYSTEMS => Id::MPEG4SYSTEMS,
1118            AV::FFMETADATA => Id::FFMETADATA,
1119            AV::WRAPPED_AVFRAME => Id::WRAPPED_AVFRAME,
1120            AV::PSD => Id::PSD,
1121            AV::PIXLET => Id::PIXLET,
1122            AV::SPEEDHQ => Id::SPEEDHQ,
1123            AV::CLEARVIDEO => Id::CLEARVIDEO,
1124            AV::FMVC => Id::FMVC,
1125            AV::SCPR => Id::SCPR,
1126            AV::XPM => Id::XPM,
1127            AV::AV1 => Id::AV1,
1128            AV::PCM_F16LE => Id::PCM_F16LE,
1129            AV::PCM_F24LE => Id::PCM_F24LE,
1130            AV::ATRAC3AL => Id::ATRAC3AL,
1131            AV::ATRAC3PAL => Id::ATRAC3PAL,
1132
1133            AV::BITPACKED => Id::BITPACKED,
1134            AV::MSCC => Id::MSCC,
1135            AV::SRGC => Id::SRGC,
1136            AV::SVG => Id::SVG,
1137            AV::GDV => Id::GDV,
1138            AV::FITS => Id::FITS,
1139            AV::GREMLIN_DPCM => Id::GREMLIN_DPCM,
1140            AV::DOLBY_E => Id::DOLBY_E,
1141
1142            AV::APTX => Id::APTX,
1143            AV::APTX_HD => Id::APTX_HD,
1144            AV::SBC => Id::SBC,
1145
1146            AV::AVS2 => Id::AVS2,
1147            AV::IMM4 => Id::IMM4,
1148            AV::PROSUMER => Id::PROSUMER,
1149            AV::MWSC => Id::MWSC,
1150            AV::WCMV => Id::WCMV,
1151            AV::RASC => Id::RASC,
1152            AV::PCM_VIDC => Id::PCM_VIDC,
1153            AV::ATRAC9 => Id::ATRAC9,
1154            AV::TTML => Id::TTML,
1155
1156            AV::HYMT => Id::HYMT,
1157            AV::ARBC => Id::ARBC,
1158            AV::AGM => Id::AGM,
1159            AV::LSCR => Id::LSCR,
1160            AV::VP4 => Id::VP4,
1161            AV::ADPCM_AGM => Id::ADPCM_AGM,
1162            AV::HCOM => Id::HCOM,
1163            AV::ARIB_CAPTION => Id::ARIB_CAPTION,
1164
1165            AV::IMM5 => Id::IMM5,
1166            AV::MVDV => Id::MVDV,
1167            AV::MVHA => Id::MVHA,
1168            AV::CDTOONS => Id::CDTOONS,
1169            AV::MV30 => Id::MV30,
1170            AV::NOTCHLC => Id::NOTCHLC,
1171            AV::PFM => Id::PFM,
1172            AV::ADPCM_ARGO => Id::ADPCM_ARGO,
1173            AV::ADPCM_IMA_SSI => Id::ADPCM_IMA_SSI,
1174            AV::ADPCM_ZORK => Id::ADPCM_ZORK,
1175            AV::ADPCM_IMA_APM => Id::ADPCM_IMA_APM,
1176            AV::ADPCM_IMA_ALP => Id::ADPCM_IMA_ALP,
1177            AV::ADPCM_IMA_MTF => Id::ADPCM_IMA_MTF,
1178            AV::ADPCM_IMA_CUNNING => Id::ADPCM_IMA_CUNNING,
1179            AV::DERF_DPCM => Id::DERF_DPCM,
1180            AV::ACELP_KELVIN => Id::ACELP_KELVIN,
1181            AV::MPEGH_3D_AUDIO => Id::MPEGH_3D_AUDIO,
1182            AV::SIREN => Id::SIREN,
1183            AV::HCA => Id::HCA,
1184            AV::EPG => Id::EPG,
1185
1186            AV::PGX => Id::PGX,
1187            AV::AVS3 => Id::AVS3,
1188            AV::MSP2 => Id::MSP2,
1189            AV::VVC => Id::VVC,
1190            AV::MOBICLIP => Id::MOBICLIP,
1191            AV::PHOTOCD => Id::PHOTOCD,
1192            AV::IPU => Id::IPU,
1193            AV::ARGO => Id::ARGO,
1194            AV::CRI => Id::CRI,
1195            AV::SIMBIOSIS_IMX => Id::SIMBIOSIS_IMX,
1196            AV::SGA_VIDEO => Id::SGA_VIDEO,
1197            AV::PCM_SGA => Id::PCM_SGA,
1198            AV::ADPCM_IMA_MOFLEX => Id::ADPCM_IMA_MOFLEX,
1199            AV::FASTAUDIO => Id::FASTAUDIO,
1200
1201            AV::GEM => Id::GEM,
1202            AV::ADPCM_IMA_ACORN => Id::ADPCM_IMA_ACORN,
1203            AV::MSNSIREN => Id::MSNSIREN,
1204
1205            AV::VBN => Id::VBN,
1206            AV::JPEGXL => Id::JPEGXL,
1207            AV::QOI => Id::QOI,
1208            AV::PHM => Id::PHM,
1209            AV::DFPWM => Id::DFPWM,
1210
1211            #[cfg(feature = "ffmpeg_6_0")]
1212            AV::RADIANCE_HDR => Id::RADIANCE_HDR,
1213            #[cfg(feature = "ffmpeg_6_0")]
1214            AV::WBMP => Id::WBMP,
1215            #[cfg(feature = "ffmpeg_6_0")]
1216            AV::MEDIA100 => Id::MEDIA100,
1217            #[cfg(feature = "ffmpeg_6_0")]
1218            AV::VQC => Id::VQC,
1219            #[cfg(feature = "ffmpeg_6_0")]
1220            AV::ADPCM_XMD => Id::ADPCM_XMD,
1221            #[cfg(feature = "ffmpeg_6_0")]
1222            AV::WADY_DPCM => Id::WADY_DPCM,
1223            #[cfg(feature = "ffmpeg_6_0")]
1224            AV::CBD2_DPCM => Id::CBD2_DPCM,
1225            #[cfg(feature = "ffmpeg_6_0")]
1226            AV::BONK => Id::BONK,
1227            #[cfg(feature = "ffmpeg_6_0")]
1228            AV::MISC4 => Id::MISC4,
1229            #[cfg(feature = "ffmpeg_6_0")]
1230            AV::APAC => Id::APAC,
1231            #[cfg(feature = "ffmpeg_6_0")]
1232            AV::FTR => Id::FTR,
1233            #[cfg(feature = "ffmpeg_6_0")]
1234            AV::WAVARC => Id::WAVARC,
1235            #[cfg(feature = "ffmpeg_6_0")]
1236            AV::RKA => Id::RKA,
1237            #[cfg(feature = "ffmpeg_6_0")]
1238            AV::VNULL => Id::VNULL,
1239            #[cfg(feature = "ffmpeg_6_0")]
1240            AV::ANULL => Id::ANULL,
1241
1242            #[cfg(feature = "ffmpeg_6_1")]
1243            AV::PDV => Id::PDV,
1244            #[cfg(feature = "ffmpeg_6_1")]
1245            AV::EVC => Id::EVC,
1246            #[cfg(feature = "ffmpeg_6_1")]
1247            AV::RTV1 => Id::RTV1,
1248            #[cfg(feature = "ffmpeg_6_1")]
1249            AV::VMIX => Id::VMIX,
1250            #[cfg(feature = "ffmpeg_7_0")]
1251            AV::LEAD => Id::LEAD,
1252            #[cfg(feature = "ffmpeg_6_1")]
1253            AV::AC4 => Id::AC4,
1254            #[cfg(feature = "ffmpeg_6_1")]
1255            AV::OSQ => Id::OSQ,
1256            #[cfg(feature = "ffmpeg_7_0")]
1257            AV::QOA => Id::QOA,
1258            #[cfg(feature = "ffmpeg_7_1")]
1259            AV::LC3 => Id::LC3,
1260            #[cfg(feature = "ffmpeg_6_1")]
1261            AV::SMPTE_2038 => Id::SMPTE_2038,
1262            #[cfg(feature = "ffmpeg_7_1")]
1263            AV::LCEVC => Id::LCEVC,
1264
1265            #[cfg(feature = "ffmpeg_8_0")]
1266            AV::DNXUC => Id::DNXUC,
1267            #[cfg(feature = "ffmpeg_8_0")]
1268            AV::RV60 => Id::RV60,
1269            #[cfg(feature = "ffmpeg_8_0")]
1270            AV::JPEGXL_ANIM => Id::JPEGXL_ANIM,
1271            #[cfg(feature = "ffmpeg_8_0")]
1272            AV::APV => Id::APV,
1273            #[cfg(feature = "ffmpeg_8_0")]
1274            AV::PRORES_RAW => Id::PRORES_RAW,
1275            #[cfg(feature = "ffmpeg_8_0")]
1276            AV::ADPCM_IMA_XBOX => Id::ADPCM_IMA_XBOX,
1277            #[cfg(feature = "ffmpeg_8_0")]
1278            AV::ADPCM_SANYO => Id::ADPCM_SANYO,
1279            #[cfg(feature = "ffmpeg_8_0")]
1280            AV::G728 => Id::G728,
1281            #[cfg(feature = "ffmpeg_8_0")]
1282            AV::IVTV_VBI => Id::IVTV_VBI,
1283            #[cfg(feature = "ffmpeg_8_0")]
1284            AV::SMPTE_436M_ANC => Id::SMPTE_436M_ANC,
1285
1286            #[cfg(feature = "ffmpeg_8_1")]
1287            AV::JPEGXS => Id::JPEGXS,
1288            #[cfg(feature = "ffmpeg_8_1")]
1289            AV::ADPCM_IMA_HVQM4 => Id::ADPCM_IMA_HVQM4,
1290            #[cfg(feature = "ffmpeg_8_1")]
1291            AV::ADPCM_IMA_PDA => Id::ADPCM_IMA_PDA,
1292            #[cfg(feature = "ffmpeg_8_1")]
1293            AV::ADPCM_N64 => Id::ADPCM_N64,
1294            #[cfg(feature = "ffmpeg_8_1")]
1295            AV::ADPCM_IMA_HVQM2 => Id::ADPCM_IMA_HVQM2,
1296            #[cfg(feature = "ffmpeg_8_1")]
1297            AV::ADPCM_IMA_MAGIX => Id::ADPCM_IMA_MAGIX,
1298            #[cfg(feature = "ffmpeg_8_1")]
1299            AV::ADPCM_PSXC => Id::ADPCM_PSXC,
1300            #[cfg(feature = "ffmpeg_8_1")]
1301            AV::ADPCM_CIRCUS => Id::ADPCM_CIRCUS,
1302            #[cfg(feature = "ffmpeg_8_1")]
1303            AV::ADPCM_IMA_ESCAPE => Id::ADPCM_IMA_ESCAPE,
1304            #[cfg(feature = "ffmpeg_8_1")]
1305            AV::AHX => Id::AHX,
1306
1307            #[cfg(feature = "ffmpeg_9_0")]
1308            AV::WEBP_ANIM => Id::WEBP_ANIM,
1309            #[cfg(feature = "ffmpeg_9_0")]
1310            AV::APPLE_APAC => Id::APPLE_APAC,
1311
1312            _ => unimplemented!(),
1313        }
1314    }
1315}
1316
1317impl From<Id> for AVCodecID {
1318    fn from(value: Id) -> AVCodecID {
1319        use AVCodecID as AV;
1320
1321        match value {
1322            Id::None => AV::NONE,
1323
1324            /* video codecs */
1325            Id::MPEG1VIDEO => AV::MPEG1VIDEO,
1326            Id::MPEG2VIDEO => AV::MPEG2VIDEO,
1327            Id::H261 => AV::H261,
1328            Id::H263 => AV::H263,
1329            Id::RV10 => AV::RV10,
1330            Id::RV20 => AV::RV20,
1331            Id::MJPEG => AV::MJPEG,
1332            Id::MJPEGB => AV::MJPEGB,
1333            Id::LJPEG => AV::LJPEG,
1334            Id::SP5X => AV::SP5X,
1335            Id::JPEGLS => AV::JPEGLS,
1336            Id::MPEG4 => AV::MPEG4,
1337            Id::RAWVIDEO => AV::RAWVIDEO,
1338            Id::MSMPEG4V1 => AV::MSMPEG4V1,
1339            Id::MSMPEG4V2 => AV::MSMPEG4V2,
1340            Id::MSMPEG4V3 => AV::MSMPEG4V3,
1341            Id::WMV1 => AV::WMV1,
1342            Id::WMV2 => AV::WMV2,
1343            Id::H263P => AV::H263P,
1344            Id::H263I => AV::H263I,
1345            Id::FLV1 => AV::FLV1,
1346            Id::SVQ1 => AV::SVQ1,
1347            Id::SVQ3 => AV::SVQ3,
1348            Id::DVVIDEO => AV::DVVIDEO,
1349            Id::HUFFYUV => AV::HUFFYUV,
1350            Id::CYUV => AV::CYUV,
1351            Id::H264 => AV::H264,
1352            Id::INDEO3 => AV::INDEO3,
1353            Id::VP3 => AV::VP3,
1354            Id::THEORA => AV::THEORA,
1355            Id::ASV1 => AV::ASV1,
1356            Id::ASV2 => AV::ASV2,
1357            Id::FFV1 => AV::FFV1,
1358            Id::XM4 => AV::_4XM,
1359            Id::VCR1 => AV::VCR1,
1360            Id::CLJR => AV::CLJR,
1361            Id::MDEC => AV::MDEC,
1362            Id::ROQ => AV::ROQ,
1363            Id::INTERPLAY_VIDEO => AV::INTERPLAY_VIDEO,
1364            Id::XAN_WC3 => AV::XAN_WC3,
1365            Id::XAN_WC4 => AV::XAN_WC4,
1366            Id::RPZA => AV::RPZA,
1367            Id::CINEPAK => AV::CINEPAK,
1368            Id::WS_VQA => AV::WS_VQA,
1369            Id::MSRLE => AV::MSRLE,
1370            Id::MSVIDEO1 => AV::MSVIDEO1,
1371            Id::IDCIN => AV::IDCIN,
1372            Id::BPS8 => AV::_8BPS,
1373            Id::SMC => AV::SMC,
1374            Id::FLIC => AV::FLIC,
1375            Id::TRUEMOTION1 => AV::TRUEMOTION1,
1376            Id::VMDVIDEO => AV::VMDVIDEO,
1377            Id::MSZH => AV::MSZH,
1378            Id::ZLIB => AV::ZLIB,
1379            Id::QTRLE => AV::QTRLE,
1380            Id::TSCC => AV::TSCC,
1381            Id::ULTI => AV::ULTI,
1382            Id::QDRAW => AV::QDRAW,
1383            Id::VIXL => AV::VIXL,
1384            Id::QPEG => AV::QPEG,
1385            Id::PNG => AV::PNG,
1386            Id::PPM => AV::PPM,
1387            Id::PBM => AV::PBM,
1388            Id::PGM => AV::PGM,
1389            Id::PGMYUV => AV::PGMYUV,
1390            Id::PAM => AV::PAM,
1391            Id::FFVHUFF => AV::FFVHUFF,
1392            Id::RV30 => AV::RV30,
1393            Id::RV40 => AV::RV40,
1394            Id::VC1 => AV::VC1,
1395            Id::WMV3 => AV::WMV3,
1396            Id::LOCO => AV::LOCO,
1397            Id::WNV1 => AV::WNV1,
1398            Id::AASC => AV::AASC,
1399            Id::INDEO2 => AV::INDEO2,
1400            Id::FRAPS => AV::FRAPS,
1401            Id::TRUEMOTION2 => AV::TRUEMOTION2,
1402            Id::BMP => AV::BMP,
1403            Id::CSCD => AV::CSCD,
1404            Id::MMVIDEO => AV::MMVIDEO,
1405            Id::ZMBV => AV::ZMBV,
1406            Id::AVS => AV::AVS,
1407            Id::SMACKVIDEO => AV::SMACKVIDEO,
1408            Id::NUV => AV::NUV,
1409            Id::KMVC => AV::KMVC,
1410            Id::FLASHSV => AV::FLASHSV,
1411            Id::CAVS => AV::CAVS,
1412            Id::JPEG2000 => AV::JPEG2000,
1413            Id::VMNC => AV::VMNC,
1414            Id::VP5 => AV::VP5,
1415            Id::VP6 => AV::VP6,
1416            Id::VP6F => AV::VP6F,
1417            Id::TARGA => AV::TARGA,
1418            Id::DSICINVIDEO => AV::DSICINVIDEO,
1419            Id::TIERTEXSEQVIDEO => AV::TIERTEXSEQVIDEO,
1420            Id::TIFF => AV::TIFF,
1421            Id::GIF => AV::GIF,
1422            Id::DXA => AV::DXA,
1423            Id::DNXHD => AV::DNXHD,
1424            Id::THP => AV::THP,
1425            Id::SGI => AV::SGI,
1426            Id::C93 => AV::C93,
1427            Id::BETHSOFTVID => AV::BETHSOFTVID,
1428            Id::PTX => AV::PTX,
1429            Id::TXD => AV::TXD,
1430            Id::VP6A => AV::VP6A,
1431            Id::AMV => AV::AMV,
1432            Id::VB => AV::VB,
1433            Id::PCX => AV::PCX,
1434            Id::SUNRAST => AV::SUNRAST,
1435            Id::INDEO4 => AV::INDEO4,
1436            Id::INDEO5 => AV::INDEO5,
1437            Id::MIMIC => AV::MIMIC,
1438            Id::RL2 => AV::RL2,
1439            Id::ESCAPE124 => AV::ESCAPE124,
1440            Id::DIRAC => AV::DIRAC,
1441            Id::BFI => AV::BFI,
1442            Id::CMV => AV::CMV,
1443            Id::MOTIONPIXELS => AV::MOTIONPIXELS,
1444            Id::TGV => AV::TGV,
1445            Id::TGQ => AV::TGQ,
1446            Id::TQI => AV::TQI,
1447            Id::AURA => AV::AURA,
1448            Id::AURA2 => AV::AURA2,
1449            Id::V210X => AV::V210X,
1450            Id::TMV => AV::TMV,
1451            Id::V210 => AV::V210,
1452            Id::DPX => AV::DPX,
1453            Id::MAD => AV::MAD,
1454            Id::FRWU => AV::FRWU,
1455            Id::FLASHSV2 => AV::FLASHSV2,
1456            Id::CDGRAPHICS => AV::CDGRAPHICS,
1457            Id::R210 => AV::R210,
1458            Id::ANM => AV::ANM,
1459            Id::BINKVIDEO => AV::BINKVIDEO,
1460            Id::IFF_ILBM => AV::IFF_ILBM,
1461            Id::IFF_BYTERUN1 => AV::IFF_ILBM,
1462            Id::KGV1 => AV::KGV1,
1463            Id::YOP => AV::YOP,
1464            Id::VP8 => AV::VP8,
1465            Id::PICTOR => AV::PICTOR,
1466            Id::ANSI => AV::ANSI,
1467            Id::A64_MULTI => AV::A64_MULTI,
1468            Id::A64_MULTI5 => AV::A64_MULTI5,
1469            Id::R10K => AV::R10K,
1470            Id::MXPEG => AV::MXPEG,
1471            Id::LAGARITH => AV::LAGARITH,
1472            Id::PRORES => AV::PRORES,
1473            Id::JV => AV::JV,
1474            Id::DFA => AV::DFA,
1475            Id::WMV3IMAGE => AV::WMV3IMAGE,
1476            Id::VC1IMAGE => AV::VC1IMAGE,
1477            Id::UTVIDEO => AV::UTVIDEO,
1478            Id::BMV_VIDEO => AV::BMV_VIDEO,
1479            Id::VBLE => AV::VBLE,
1480            Id::DXTORY => AV::DXTORY,
1481            #[cfg(not(feature = "ffmpeg_9_0"))]
1482            Id::V410 => AV::V410,
1483            Id::XWD => AV::XWD,
1484            Id::CDXL => AV::CDXL,
1485            Id::XBM => AV::XBM,
1486            Id::ZEROCODEC => AV::ZEROCODEC,
1487            Id::MSS1 => AV::MSS1,
1488            Id::MSA1 => AV::MSA1,
1489            Id::TSCC2 => AV::TSCC2,
1490            Id::MTS2 => AV::MTS2,
1491            Id::CLLC => AV::CLLC,
1492            Id::MSS2 => AV::MSS2,
1493            Id::VP9 => AV::VP9,
1494            Id::AIC => AV::AIC,
1495            Id::ESCAPE130 => AV::ESCAPE130,
1496            Id::G2M => AV::G2M,
1497            Id::WEBP => AV::WEBP,
1498            Id::HNM4_VIDEO => AV::HNM4_VIDEO,
1499            Id::HEVC => AV::HEVC,
1500            Id::H265 => AV::HEVC,
1501            Id::FIC => AV::FIC,
1502            Id::ALIAS_PIX => AV::ALIAS_PIX,
1503            Id::BRENDER_PIX => AV::BRENDER_PIX,
1504            Id::PAF_VIDEO => AV::PAF_VIDEO,
1505            Id::EXR => AV::EXR,
1506            Id::VP7 => AV::VP7,
1507            Id::SANM => AV::SANM,
1508            Id::SGIRLE => AV::SGIRLE,
1509            Id::MVC1 => AV::MVC1,
1510            Id::MVC2 => AV::MVC2,
1511            Id::HQX => AV::HQX,
1512            Id::TDSC => AV::TDSC,
1513            Id::HQ_HQA => AV::HQ_HQA,
1514            Id::HAP => AV::HAP,
1515            Id::DDS => AV::DDS,
1516            Id::DXV => AV::DXV,
1517            Id::SCREENPRESSO => AV::SCREENPRESSO,
1518            Id::RSCC => AV::RSCC,
1519
1520            Id::Y41P => AV::Y41P,
1521            Id::AVRP => AV::AVRP,
1522            Id::V012 => AV::_012V,
1523            Id::AVUI => AV::AVUI,
1524            #[cfg(not(feature = "ffmpeg_7_0"))]
1525            Id::AYUV => AV::AYUV,
1526            Id::TARGA_Y216 => AV::TARGA_Y216,
1527            #[cfg(not(feature = "ffmpeg_9_0"))]
1528            Id::V308 => AV::V308,
1529            #[cfg(not(feature = "ffmpeg_9_0"))]
1530            Id::V408 => AV::V408,
1531            Id::YUV4 => AV::YUV4,
1532            Id::AVRN => AV::AVRN,
1533            Id::CPIA => AV::CPIA,
1534            Id::XFACE => AV::XFACE,
1535            Id::SNOW => AV::SNOW,
1536            Id::SMVJPEG => AV::SMVJPEG,
1537            Id::APNG => AV::APNG,
1538            Id::DAALA => AV::DAALA,
1539            Id::CFHD => AV::CFHD,
1540            Id::TRUEMOTION2RT => AV::TRUEMOTION2RT,
1541            Id::M101 => AV::M101,
1542            Id::MAGICYUV => AV::MAGICYUV,
1543            Id::SHEERVIDEO => AV::SHEERVIDEO,
1544            Id::YLC => AV::YLC,
1545
1546            /* various PCM "codecs" */
1547            Id::PCM_S16LE => AV::PCM_S16LE,
1548            Id::PCM_S16BE => AV::PCM_S16BE,
1549            Id::PCM_U16LE => AV::PCM_U16LE,
1550            Id::PCM_U16BE => AV::PCM_U16BE,
1551            Id::PCM_S8 => AV::PCM_S8,
1552            Id::PCM_U8 => AV::PCM_U8,
1553            Id::PCM_MULAW => AV::PCM_MULAW,
1554            Id::PCM_ALAW => AV::PCM_ALAW,
1555            Id::PCM_S32LE => AV::PCM_S32LE,
1556            Id::PCM_S32BE => AV::PCM_S32BE,
1557            Id::PCM_U32LE => AV::PCM_U32LE,
1558            Id::PCM_U32BE => AV::PCM_U32BE,
1559            Id::PCM_S24LE => AV::PCM_S24LE,
1560            Id::PCM_S24BE => AV::PCM_S24BE,
1561            Id::PCM_U24LE => AV::PCM_U24LE,
1562            Id::PCM_U24BE => AV::PCM_U24BE,
1563            Id::PCM_S24DAUD => AV::PCM_S24DAUD,
1564            Id::PCM_ZORK => AV::PCM_ZORK,
1565            Id::PCM_S16LE_PLANAR => AV::PCM_S16LE_PLANAR,
1566            Id::PCM_DVD => AV::PCM_DVD,
1567            Id::PCM_F32BE => AV::PCM_F32BE,
1568            Id::PCM_F32LE => AV::PCM_F32LE,
1569            Id::PCM_F64BE => AV::PCM_F64BE,
1570            Id::PCM_F64LE => AV::PCM_F64LE,
1571            Id::PCM_BLURAY => AV::PCM_BLURAY,
1572            Id::PCM_LXF => AV::PCM_LXF,
1573            Id::S302M => AV::S302M,
1574            Id::PCM_S8_PLANAR => AV::PCM_S8_PLANAR,
1575            Id::PCM_S24LE_PLANAR => AV::PCM_S24LE_PLANAR,
1576            Id::PCM_S32LE_PLANAR => AV::PCM_S32LE_PLANAR,
1577            Id::PCM_S16BE_PLANAR => AV::PCM_S16BE_PLANAR,
1578
1579            Id::PCM_S64LE => AV::PCM_S64LE,
1580            Id::PCM_S64BE => AV::PCM_S64BE,
1581
1582            /* various ADPCM codecs */
1583            Id::ADPCM_IMA_QT => AV::ADPCM_IMA_QT,
1584            Id::ADPCM_IMA_WAV => AV::ADPCM_IMA_WAV,
1585            Id::ADPCM_IMA_DK3 => AV::ADPCM_IMA_DK3,
1586            Id::ADPCM_IMA_DK4 => AV::ADPCM_IMA_DK4,
1587            Id::ADPCM_IMA_WS => AV::ADPCM_IMA_WS,
1588            Id::ADPCM_IMA_SMJPEG => AV::ADPCM_IMA_SMJPEG,
1589            Id::ADPCM_MS => AV::ADPCM_MS,
1590            Id::ADPCM_4XM => AV::ADPCM_4XM,
1591            Id::ADPCM_XA => AV::ADPCM_XA,
1592            Id::ADPCM_ADX => AV::ADPCM_ADX,
1593            Id::ADPCM_EA => AV::ADPCM_EA,
1594            Id::ADPCM_G726 => AV::ADPCM_G726,
1595            Id::ADPCM_CT => AV::ADPCM_CT,
1596            Id::ADPCM_SWF => AV::ADPCM_SWF,
1597            Id::ADPCM_YAMAHA => AV::ADPCM_YAMAHA,
1598            Id::ADPCM_SBPRO_4 => AV::ADPCM_SBPRO_4,
1599            Id::ADPCM_SBPRO_3 => AV::ADPCM_SBPRO_3,
1600            Id::ADPCM_SBPRO_2 => AV::ADPCM_SBPRO_2,
1601            Id::ADPCM_THP => AV::ADPCM_THP,
1602            Id::ADPCM_IMA_AMV => AV::ADPCM_IMA_AMV,
1603            Id::ADPCM_EA_R1 => AV::ADPCM_EA_R1,
1604            Id::ADPCM_EA_R3 => AV::ADPCM_EA_R3,
1605            Id::ADPCM_EA_R2 => AV::ADPCM_EA_R2,
1606            Id::ADPCM_IMA_EA_SEAD => AV::ADPCM_IMA_EA_SEAD,
1607            Id::ADPCM_IMA_EA_EACS => AV::ADPCM_IMA_EA_EACS,
1608            Id::ADPCM_EA_XAS => AV::ADPCM_EA_XAS,
1609            Id::ADPCM_EA_MAXIS_XA => AV::ADPCM_EA_MAXIS_XA,
1610            Id::ADPCM_IMA_ISS => AV::ADPCM_IMA_ISS,
1611            Id::ADPCM_G722 => AV::ADPCM_G722,
1612            Id::ADPCM_IMA_APC => AV::ADPCM_IMA_APC,
1613            Id::ADPCM_VIMA => AV::ADPCM_VIMA,
1614
1615            Id::ADPCM_AFC => AV::ADPCM_AFC,
1616            Id::ADPCM_IMA_OKI => AV::ADPCM_IMA_OKI,
1617            Id::ADPCM_DTK => AV::ADPCM_DTK,
1618            Id::ADPCM_IMA_RAD => AV::ADPCM_IMA_RAD,
1619            Id::ADPCM_G726LE => AV::ADPCM_G726LE,
1620            Id::ADPCM_THP_LE => AV::ADPCM_THP_LE,
1621            Id::ADPCM_PSX => AV::ADPCM_PSX,
1622            Id::ADPCM_AICA => AV::ADPCM_AICA,
1623            Id::ADPCM_IMA_DAT4 => AV::ADPCM_IMA_DAT4,
1624            Id::ADPCM_MTAF => AV::ADPCM_MTAF,
1625
1626            /* AMR */
1627            Id::AMR_NB => AV::AMR_NB,
1628            Id::AMR_WB => AV::AMR_WB,
1629
1630            /* RealAudio codecs*/
1631            Id::RA_144 => AV::RA_144,
1632            Id::RA_288 => AV::RA_288,
1633
1634            /* various DPCM codecs */
1635            Id::ROQ_DPCM => AV::ROQ_DPCM,
1636            Id::INTERPLAY_DPCM => AV::INTERPLAY_DPCM,
1637            Id::XAN_DPCM => AV::XAN_DPCM,
1638            Id::SOL_DPCM => AV::SOL_DPCM,
1639
1640            Id::SDX2_DPCM => AV::SDX2_DPCM,
1641
1642            /* audio codecs */
1643            Id::MP2 => AV::MP2,
1644            Id::MP3 => AV::MP3,
1645            Id::AAC => AV::AAC,
1646            Id::AC3 => AV::AC3,
1647            Id::DTS => AV::DTS,
1648            Id::VORBIS => AV::VORBIS,
1649            Id::DVAUDIO => AV::DVAUDIO,
1650            Id::WMAV1 => AV::WMAV1,
1651            Id::WMAV2 => AV::WMAV2,
1652            Id::MACE3 => AV::MACE3,
1653            Id::MACE6 => AV::MACE6,
1654            Id::VMDAUDIO => AV::VMDAUDIO,
1655            Id::FLAC => AV::FLAC,
1656            Id::MP3ADU => AV::MP3ADU,
1657            Id::MP3ON4 => AV::MP3ON4,
1658            Id::SHORTEN => AV::SHORTEN,
1659            Id::ALAC => AV::ALAC,
1660            Id::WESTWOOD_SND1 => AV::WESTWOOD_SND1,
1661            Id::GSM => AV::GSM,
1662            Id::QDM2 => AV::QDM2,
1663            Id::COOK => AV::COOK,
1664            Id::TRUESPEECH => AV::TRUESPEECH,
1665            Id::TTA => AV::TTA,
1666            Id::SMACKAUDIO => AV::SMACKAUDIO,
1667            Id::QCELP => AV::QCELP,
1668            Id::WAVPACK => AV::WAVPACK,
1669            Id::DSICINAUDIO => AV::DSICINAUDIO,
1670            Id::IMC => AV::IMC,
1671            Id::MUSEPACK7 => AV::MUSEPACK7,
1672            Id::MLP => AV::MLP,
1673            Id::GSM_MS => AV::GSM_MS,
1674            Id::ATRAC3 => AV::ATRAC3,
1675            Id::APE => AV::APE,
1676            Id::NELLYMOSER => AV::NELLYMOSER,
1677            Id::MUSEPACK8 => AV::MUSEPACK8,
1678            Id::SPEEX => AV::SPEEX,
1679            Id::WMAVOICE => AV::WMAVOICE,
1680            Id::WMAPRO => AV::WMAPRO,
1681            Id::WMALOSSLESS => AV::WMALOSSLESS,
1682            Id::ATRAC3P => AV::ATRAC3P,
1683            Id::EAC3 => AV::EAC3,
1684            Id::SIPR => AV::SIPR,
1685            Id::MP1 => AV::MP1,
1686            Id::TWINVQ => AV::TWINVQ,
1687            Id::TRUEHD => AV::TRUEHD,
1688            Id::MP4ALS => AV::MP4ALS,
1689            Id::ATRAC1 => AV::ATRAC1,
1690            Id::BINKAUDIO_RDFT => AV::BINKAUDIO_RDFT,
1691            Id::BINKAUDIO_DCT => AV::BINKAUDIO_DCT,
1692            Id::AAC_LATM => AV::AAC_LATM,
1693            Id::QDMC => AV::QDMC,
1694            Id::CELT => AV::CELT,
1695            Id::G723_1 => AV::G723_1,
1696            Id::G729 => AV::G729,
1697            Id::SVX_EXP8 => AV::_8SVX_EXP,
1698            Id::SVX_FIB8 => AV::_8SVX_FIB,
1699            Id::BMV_AUDIO => AV::BMV_AUDIO,
1700            Id::RALF => AV::RALF,
1701            Id::IAC => AV::IAC,
1702            Id::ILBC => AV::ILBC,
1703            Id::OPUS => AV::OPUS,
1704            Id::COMFORT_NOISE => AV::COMFORT_NOISE,
1705            Id::TAK => AV::TAK,
1706            Id::METASOUND => AV::METASOUND,
1707            Id::PAF_AUDIO => AV::PAF_AUDIO,
1708            Id::ON2AVC => AV::ON2AVC,
1709            Id::DSS_SP => AV::DSS_SP,
1710
1711            Id::CODEC2 => AV::CODEC2,
1712            Id::FFWAVESYNTH => AV::FFWAVESYNTH,
1713            Id::SONIC => AV::SONIC,
1714            Id::SONIC_LS => AV::SONIC_LS,
1715            Id::EVRC => AV::EVRC,
1716            Id::SMV => AV::SMV,
1717            Id::DSD_LSBF => AV::DSD_LSBF,
1718            Id::DSD_MSBF => AV::DSD_MSBF,
1719            Id::DSD_LSBF_PLANAR => AV::DSD_LSBF_PLANAR,
1720            Id::DSD_MSBF_PLANAR => AV::DSD_MSBF_PLANAR,
1721            Id::_4GV => AV::_4GV,
1722            Id::INTERPLAY_ACM => AV::INTERPLAY_ACM,
1723            Id::XMA1 => AV::XMA1,
1724            Id::XMA2 => AV::XMA2,
1725            Id::DST => AV::DST,
1726
1727            /* subtitle codecs */
1728            Id::DVD_SUBTITLE => AV::DVD_SUBTITLE,
1729            Id::DVB_SUBTITLE => AV::DVB_SUBTITLE,
1730            Id::TEXT => AV::TEXT,
1731            Id::XSUB => AV::XSUB,
1732            Id::SSA => AV::SSA,
1733            Id::MOV_TEXT => AV::MOV_TEXT,
1734            Id::HDMV_PGS_SUBTITLE => AV::HDMV_PGS_SUBTITLE,
1735            Id::DVB_TELETEXT => AV::DVB_TELETEXT,
1736            Id::SRT => AV::SRT,
1737
1738            Id::MICRODVD => AV::MICRODVD,
1739            Id::EIA_608 => AV::EIA_608,
1740            Id::JACOSUB => AV::JACOSUB,
1741            Id::SAMI => AV::SAMI,
1742            Id::REALTEXT => AV::REALTEXT,
1743            Id::STL => AV::STL,
1744            Id::SUBVIEWER1 => AV::SUBVIEWER1,
1745            Id::SUBVIEWER => AV::SUBVIEWER,
1746            Id::SUBRIP => AV::SUBRIP,
1747            Id::WEBVTT => AV::WEBVTT,
1748            Id::MPL2 => AV::MPL2,
1749            Id::VPLAYER => AV::VPLAYER,
1750            Id::PJS => AV::PJS,
1751            Id::ASS => AV::ASS,
1752            Id::HDMV_TEXT_SUBTITLE => AV::HDMV_TEXT_SUBTITLE,
1753
1754            /* other specific kind of codecs (generally used for attachments) */
1755            Id::TTF => AV::TTF,
1756
1757            Id::SCTE_35 => AV::SCTE_35,
1758            Id::BINTEXT => AV::BINTEXT,
1759            Id::XBIN => AV::XBIN,
1760            Id::IDF => AV::IDF,
1761            Id::OTF => AV::OTF,
1762            Id::SMPTE_KLV => AV::SMPTE_KLV,
1763            Id::DVD_NAV => AV::DVD_NAV,
1764            Id::TIMED_ID3 => AV::TIMED_ID3,
1765            Id::BIN_DATA => AV::BIN_DATA,
1766
1767            Id::PROBE => AV::PROBE,
1768
1769            Id::MPEG2TS => AV::MPEG2TS,
1770            Id::MPEG4SYSTEMS => AV::MPEG4SYSTEMS,
1771            Id::FFMETADATA => AV::FFMETADATA,
1772            Id::WRAPPED_AVFRAME => AV::WRAPPED_AVFRAME,
1773
1774            Id::PSD => AV::PSD,
1775            Id::PIXLET => AV::PIXLET,
1776            Id::SPEEDHQ => AV::SPEEDHQ,
1777            Id::FMVC => AV::FMVC,
1778            Id::CLEARVIDEO => AV::CLEARVIDEO,
1779            Id::SCPR => AV::SCPR,
1780            Id::XPM => AV::XPM,
1781            Id::AV1 => AV::AV1,
1782            Id::PCM_F16LE => AV::PCM_F16LE,
1783            Id::PCM_F24LE => AV::PCM_F24LE,
1784            Id::ATRAC3AL => AV::ATRAC3AL,
1785            Id::ATRAC3PAL => AV::ATRAC3PAL,
1786
1787            Id::BITPACKED => AV::BITPACKED,
1788            Id::MSCC => AV::MSCC,
1789            Id::SRGC => AV::SRGC,
1790            Id::SVG => AV::SVG,
1791            Id::GDV => AV::GDV,
1792            Id::FITS => AV::FITS,
1793            Id::GREMLIN_DPCM => AV::GREMLIN_DPCM,
1794            Id::DOLBY_E => AV::DOLBY_E,
1795
1796            Id::APTX => AV::APTX,
1797            Id::APTX_HD => AV::APTX_HD,
1798            Id::SBC => AV::SBC,
1799
1800            Id::AVS2 => AV::AVS2,
1801            Id::IMM4 => AV::IMM4,
1802            Id::PROSUMER => AV::PROSUMER,
1803            Id::MWSC => AV::MWSC,
1804            Id::WCMV => AV::WCMV,
1805            Id::RASC => AV::RASC,
1806            Id::PCM_VIDC => AV::PCM_VIDC,
1807            Id::ATRAC9 => AV::ATRAC9,
1808            Id::TTML => AV::TTML,
1809
1810            Id::HYMT => AV::HYMT,
1811            Id::ARBC => AV::ARBC,
1812            Id::AGM => AV::AGM,
1813            Id::LSCR => AV::LSCR,
1814            Id::VP4 => AV::VP4,
1815            Id::ADPCM_AGM => AV::ADPCM_AGM,
1816            Id::HCOM => AV::HCOM,
1817            Id::ARIB_CAPTION => AV::ARIB_CAPTION,
1818
1819            Id::IMM5 => AV::IMM5,
1820            Id::MVDV => AV::MVDV,
1821            Id::MVHA => AV::MVHA,
1822            Id::CDTOONS => AV::CDTOONS,
1823            Id::MV30 => AV::MV30,
1824            Id::NOTCHLC => AV::NOTCHLC,
1825            Id::PFM => AV::PFM,
1826            Id::ADPCM_ARGO => AV::ADPCM_ARGO,
1827            Id::ADPCM_IMA_SSI => AV::ADPCM_IMA_SSI,
1828            Id::ADPCM_ZORK => AV::ADPCM_ZORK,
1829            Id::ADPCM_IMA_APM => AV::ADPCM_IMA_APM,
1830            Id::ADPCM_IMA_ALP => AV::ADPCM_IMA_ALP,
1831            Id::ADPCM_IMA_MTF => AV::ADPCM_IMA_MTF,
1832            Id::ADPCM_IMA_CUNNING => AV::ADPCM_IMA_CUNNING,
1833            Id::DERF_DPCM => AV::DERF_DPCM,
1834            Id::ACELP_KELVIN => AV::ACELP_KELVIN,
1835            Id::MPEGH_3D_AUDIO => AV::MPEGH_3D_AUDIO,
1836            Id::SIREN => AV::SIREN,
1837            Id::HCA => AV::HCA,
1838            Id::EPG => AV::EPG,
1839
1840            Id::PGX => AV::PGX,
1841            Id::AVS3 => AV::AVS3,
1842            Id::MSP2 => AV::MSP2,
1843            Id::VVC => AV::VVC,
1844            Id::MOBICLIP => AV::MOBICLIP,
1845            Id::PHOTOCD => AV::PHOTOCD,
1846            Id::IPU => AV::IPU,
1847            Id::ARGO => AV::ARGO,
1848            Id::CRI => AV::CRI,
1849            Id::SIMBIOSIS_IMX => AV::SIMBIOSIS_IMX,
1850            Id::SGA_VIDEO => AV::SGA_VIDEO,
1851            Id::PCM_SGA => AV::PCM_SGA,
1852            Id::ADPCM_IMA_MOFLEX => AV::ADPCM_IMA_MOFLEX,
1853            Id::FASTAUDIO => AV::FASTAUDIO,
1854
1855            Id::GEM => AV::GEM,
1856            Id::ADPCM_IMA_ACORN => AV::ADPCM_IMA_ACORN,
1857            Id::MSNSIREN => AV::MSNSIREN,
1858
1859            Id::VBN => AV::VBN,
1860            Id::JPEGXL => AV::JPEGXL,
1861            Id::QOI => AV::QOI,
1862            Id::PHM => AV::PHM,
1863            Id::DFPWM => AV::DFPWM,
1864
1865            #[cfg(feature = "ffmpeg_6_0")]
1866            Id::RADIANCE_HDR => AV::RADIANCE_HDR,
1867            #[cfg(feature = "ffmpeg_6_0")]
1868            Id::WBMP => AV::WBMP,
1869            #[cfg(feature = "ffmpeg_6_0")]
1870            Id::MEDIA100 => AV::MEDIA100,
1871            #[cfg(feature = "ffmpeg_6_0")]
1872            Id::VQC => AV::VQC,
1873            #[cfg(feature = "ffmpeg_6_0")]
1874            Id::ADPCM_XMD => AV::ADPCM_XMD,
1875            #[cfg(feature = "ffmpeg_6_0")]
1876            Id::WADY_DPCM => AV::WADY_DPCM,
1877            #[cfg(feature = "ffmpeg_6_0")]
1878            Id::CBD2_DPCM => AV::CBD2_DPCM,
1879            #[cfg(feature = "ffmpeg_6_0")]
1880            Id::BONK => AV::BONK,
1881            #[cfg(feature = "ffmpeg_6_0")]
1882            Id::MISC4 => AV::MISC4,
1883            #[cfg(feature = "ffmpeg_6_0")]
1884            Id::APAC => AV::APAC,
1885            #[cfg(feature = "ffmpeg_6_0")]
1886            Id::FTR => AV::FTR,
1887            #[cfg(feature = "ffmpeg_6_0")]
1888            Id::WAVARC => AV::WAVARC,
1889            #[cfg(feature = "ffmpeg_6_0")]
1890            Id::RKA => AV::RKA,
1891            #[cfg(feature = "ffmpeg_6_0")]
1892            Id::VNULL => AV::VNULL,
1893            #[cfg(feature = "ffmpeg_6_0")]
1894            Id::ANULL => AV::ANULL,
1895            #[cfg(feature = "ffmpeg_6_1")]
1896            Id::PDV => AV::PDV,
1897            #[cfg(feature = "ffmpeg_6_1")]
1898            Id::EVC => AV::EVC,
1899            #[cfg(feature = "ffmpeg_6_1")]
1900            Id::RTV1 => AV::RTV1,
1901            #[cfg(feature = "ffmpeg_6_1")]
1902            Id::VMIX => AV::VMIX,
1903            #[cfg(feature = "ffmpeg_7_0")]
1904            Id::LEAD => AV::LEAD,
1905            #[cfg(feature = "ffmpeg_6_1")]
1906            Id::AC4 => AV::AC4,
1907            #[cfg(feature = "ffmpeg_6_1")]
1908            Id::OSQ => AV::OSQ,
1909            #[cfg(feature = "ffmpeg_7_0")]
1910            Id::QOA => AV::QOA,
1911            #[cfg(feature = "ffmpeg_7_1")]
1912            Id::LC3 => AV::LC3,
1913            #[cfg(feature = "ffmpeg_6_1")]
1914            Id::SMPTE_2038 => AV::SMPTE_2038,
1915            #[cfg(feature = "ffmpeg_7_1")]
1916            Id::LCEVC => AV::LCEVC,
1917
1918            #[cfg(feature = "ffmpeg_8_0")]
1919            Id::DNXUC => AV::DNXUC,
1920            #[cfg(feature = "ffmpeg_8_0")]
1921            Id::RV60 => AV::RV60,
1922            #[cfg(feature = "ffmpeg_8_0")]
1923            Id::JPEGXL_ANIM => AV::JPEGXL_ANIM,
1924            #[cfg(feature = "ffmpeg_8_0")]
1925            Id::APV => AV::APV,
1926            #[cfg(feature = "ffmpeg_8_0")]
1927            Id::PRORES_RAW => AV::PRORES_RAW,
1928            #[cfg(feature = "ffmpeg_8_0")]
1929            Id::ADPCM_IMA_XBOX => AV::ADPCM_IMA_XBOX,
1930            #[cfg(feature = "ffmpeg_8_0")]
1931            Id::ADPCM_SANYO => AV::ADPCM_SANYO,
1932            #[cfg(feature = "ffmpeg_8_0")]
1933            Id::G728 => AV::G728,
1934            #[cfg(feature = "ffmpeg_8_0")]
1935            Id::IVTV_VBI => AV::IVTV_VBI,
1936            #[cfg(feature = "ffmpeg_8_0")]
1937            Id::SMPTE_436M_ANC => AV::SMPTE_436M_ANC,
1938
1939            #[cfg(feature = "ffmpeg_8_1")]
1940            Id::JPEGXS => AV::JPEGXS,
1941            #[cfg(feature = "ffmpeg_8_1")]
1942            Id::ADPCM_IMA_HVQM4 => AV::ADPCM_IMA_HVQM4,
1943            #[cfg(feature = "ffmpeg_8_1")]
1944            Id::ADPCM_IMA_PDA => AV::ADPCM_IMA_PDA,
1945            #[cfg(feature = "ffmpeg_8_1")]
1946            Id::ADPCM_N64 => AV::ADPCM_N64,
1947            #[cfg(feature = "ffmpeg_8_1")]
1948            Id::ADPCM_IMA_HVQM2 => AV::ADPCM_IMA_HVQM2,
1949            #[cfg(feature = "ffmpeg_8_1")]
1950            Id::ADPCM_IMA_MAGIX => AV::ADPCM_IMA_MAGIX,
1951            #[cfg(feature = "ffmpeg_8_1")]
1952            Id::ADPCM_PSXC => AV::ADPCM_PSXC,
1953            #[cfg(feature = "ffmpeg_8_1")]
1954            Id::ADPCM_CIRCUS => AV::ADPCM_CIRCUS,
1955            #[cfg(feature = "ffmpeg_8_1")]
1956            Id::ADPCM_IMA_ESCAPE => AV::ADPCM_IMA_ESCAPE,
1957            #[cfg(feature = "ffmpeg_8_1")]
1958            Id::AHX => AV::AHX,
1959
1960            #[cfg(feature = "ffmpeg_9_0")]
1961            Id::WEBP_ANIM => AV::WEBP_ANIM,
1962            #[cfg(feature = "ffmpeg_9_0")]
1963            Id::APPLE_APAC => AV::APPLE_APAC,
1964        }
1965    }
1966}
1967
1968#[cfg(all(test, feature = "ffmpeg_9_0"))]
1969mod tests {
1970    use super::*;
1971
1972    #[test]
1973    fn ffmpeg_9_codec_ids_round_trip() {
1974        for id in [Id::WEBP_ANIM, Id::APPLE_APAC] {
1975            let raw: AVCodecID = id.into();
1976            assert_eq!(Id::from(raw), id);
1977        }
1978    }
1979}