001/* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (http://www.swig.org).
003 * Version 4.0.2
004 *
005 * Do not make changes to this file unless you know what you are doing--modify
006 * the SWIG interface file instead.
007 * ----------------------------------------------------------------------------- */
008
009package com.avpkit.core;
010import com.avpkit.ferry.*;
011/**
012 * A "key" to an {IStreamCoder} that tells it how to encode or decode data.<br>
013 * <br>
014 * Use these objects to tell a IStreamCoder you want to use MP3 or NellyMoser<br>
015 * for example.
016 */
017public class ICodec extends RefCounted {
018  // JNIHelper.swg: Start generated code
019  // >>>>>>>>>>>>>>>>>>>>>>>>>>>
020  /**
021   * This method is only here to use some references and remove
022   * a Eclipse compiler warning.
023   */
024  @SuppressWarnings("unused")
025  private void noop()
026  {
027    IBuffer.make(null, 1);
028  }
029   
030  private volatile long swigCPtr;
031
032  /**
033   * Internal Only.
034   */
035  protected ICodec(long cPtr, boolean cMemoryOwn) {
036    super(AVPKitJNI.ICodec_SWIGUpcast(cPtr), cMemoryOwn);
037    swigCPtr = cPtr;
038  }
039  
040  /**
041   * Internal Only.
042   */
043  protected ICodec(long cPtr, boolean cMemoryOwn,
044      java.util.concurrent.atomic.AtomicLong ref)
045  {
046    super(AVPKitJNI.ICodec_SWIGUpcast(cPtr),
047     cMemoryOwn, ref);
048    swigCPtr = cPtr;
049  }
050    
051  /**
052   * Internal Only.  Not part of public API.
053   *
054   * Get the raw value of the native object that obj is proxying for.
055   *   
056   * @param obj The java proxy object for a native object.
057   * @return The raw pointer obj is proxying for.
058   */
059  public static long getCPtr(ICodec obj) {
060    if (obj == null) return 0;
061    return obj.getMyCPtr();
062  }
063
064  /**
065   * Internal Only.  Not part of public API.
066   *
067   * Get the raw value of the native object that we're proxying for.
068   *   
069   * @return The raw pointer we're proxying for.
070   */  
071  public long getMyCPtr() {
072    if (swigCPtr == 0) throw new IllegalStateException("underlying native object already deleted");
073    return swigCPtr;
074  }
075  
076  /**
077   * Create a new ICodec object that is actually referring to the
078   * exact same underlying native object.
079   *
080   * @return the new Java object.
081   */
082  @Override
083  public ICodec copyReference() {
084    if (swigCPtr == 0)
085      return null;
086    else
087      return new ICodec(swigCPtr, swigCMemOwn, getJavaRefCount());
088  }
089
090  /**
091   * Compares two values, returning true if the underlying objects in native code are the same object.
092   *
093   * That means you can have two different Java objects, but when you do a comparison, you'll find out
094   * they are the EXACT same object.
095   *
096   * @return True if the underlying native object is the same.  False otherwise.
097   */
098  public boolean equals(Object obj) {
099    boolean equal = false;
100    if (obj instanceof ICodec)
101      equal = (((ICodec)obj).swigCPtr == this.swigCPtr);
102    return equal;
103  }
104  
105  /**
106   * Get a hashable value for this object.
107   *
108   * @return the hashable value.
109   */
110  public int hashCode() {
111     return (int)swigCPtr;
112  }
113  
114  // <<<<<<<<<<<<<<<<<<<<<<<<<<<
115  // JNIHelper.swg: End generated code
116  
117
118  /**
119   * Prints the type and id of this codec
120   * @return the type and id
121   */
122   
123  @Override
124  public String toString()
125  {
126    StringBuilder result = new StringBuilder();
127    
128    result.append(this.getClass().getName()+"@"+hashCode()+"[");
129    result.append("type="+getType()+";");
130    result.append("id="+getID()+";");
131    result.append("name="+getName()+";");
132    result.append("]");
133    return result.toString();
134  }
135
136  /**
137   * Gets a collection of ALL codecs installed on this
138   * system. 
139   * 
140   * @return A collection of all installed codecs.
141   */
142
143  public static java.util.Collection<ICodec>
144  getInstalledCodecs()
145  {
146    java.util.Collection<ICodec> retval = new java.util.HashSet<ICodec>();
147    int count = getNumInstalledCodecs();
148    for(int i=0;i<count;i++)
149    {
150      ICodec codec = getInstalledCodec(i);
151      if (codec != null)
152        retval.add(codec);
153    }
154    return retval;
155  }
156
157  /**
158   * Returns a list of supported frame-rates this codec can encode
159   * video to.
160   * 
161   * <p>
162   * 
163   * Not all codecs support reporting this, in which case the returned list
164   * will be empty.
165   * 
166   * </p>
167   * 
168   * @return a list
169   */
170
171  public java.util.List<IRational>
172  getSupportedVideoFrameRates()
173  {
174    java.util.List<IRational> retval =
175      new java.util.LinkedList<IRational>();
176    int count = getNumSupportedVideoFrameRates();
177    for(int i=0;i<count;i++)
178    {
179      IRational rate = getSupportedVideoFrameRate(i);
180      if (rate != null)
181        retval.add(rate);
182    }
183    return retval;
184  }
185
186  /**
187   * Returns a list of supported pixel formats this codec can encode
188   * video in.
189   * 
190   * <p>
191   * 
192   * Not all codecs support reporting this, in which case the returned list
193   * will be empty.
194   * 
195   * </p>
196   * 
197   * @return a list
198   */
199
200  public java.util.List<IPixelFormat.Type>
201  getSupportedVideoPixelFormats()
202  {
203    java.util.List<IPixelFormat.Type> retval =
204      new java.util.LinkedList<IPixelFormat.Type>();
205    int count = getNumSupportedVideoPixelFormats();
206    for(int i=0;i<count;i++)
207    {
208      IPixelFormat.Type type = getSupportedVideoPixelFormat(i);
209      if (type != null && type != IPixelFormat.Type.NONE)
210        retval.add(type);
211    }
212    return retval;
213  }
214
215  /**
216   * Returns a list of supported audio sample rates this codec can encode
217   * audio in.
218   * 
219   * <p>
220   * 
221   * Not all codecs support reporting this, in which case the returned list
222   * will be empty.
223   * 
224   * </p>
225   * 
226   * @return a list
227   */
228
229  public java.util.List<Integer>
230  getSupportedAudioSampleRates()
231  {
232    java.util.List<Integer> retval =
233      new java.util.LinkedList<Integer>();
234    int count = getNumSupportedAudioSampleRates();
235    for(int i=0;i<count;i++)
236    {
237      int rate = getSupportedAudioSampleRate(i);
238      if (rate != 0)
239        retval.add(rate);
240    }
241    return retval;
242  }
243
244  /**
245   * Returns a list of supported audio sample formats this codec can encode
246   * audio in.
247   * 
248   * <p>
249   * 
250   * Not all codecs support reporting this, in which case the returned list
251   * will be empty.
252   * 
253   * </p>
254   * 
255   * @return a list
256   */
257
258  public java.util.List<IAudioSamples.Format>
259  getSupportedAudioSampleFormats()
260  {
261    java.util.List<IAudioSamples.Format> retval =
262      new java.util.LinkedList<IAudioSamples.Format>();
263    int count = getNumSupportedAudioSampleFormats();
264    for(int i=0;i<count;i++)
265    {
266      IAudioSamples.Format fmt = getSupportedAudioSampleFormat(i);
267      if (fmt != null && fmt != IAudioSamples.Format.FMT_NONE)
268        retval.add(fmt);
269    }
270    return retval;
271  }
272
273  /**
274   * Returns a list of supported audio channel layouts this codec can encode
275   * audio in.
276   * 
277   * <p>
278   * 
279   * Not all codecs support reporting this, in which case the returned list
280   * will be empty.
281   * 
282   * </p>
283   * 
284   * @return a list
285   */
286
287  public java.util.List<Long>
288  getSupportedAudioChannelLayouts()
289  {
290    java.util.List<Long> retval =
291      new java.util.LinkedList<Long>();
292    int count = getNumSupportedAudioChannelLayouts();
293    for(int i=0;i<count;i++)
294    {
295      long layout = getSupportedAudioChannelLayout(i);
296      if (layout != 0)
297        retval.add(layout);
298    }
299    return retval;
300  }
301
302
303  /**
304   * Get the name of the codec.<br>
305   * @return The name of this Codec.
306   */
307  public String getName() {
308    return AVPKitJNI.ICodec_getName(swigCPtr, this);
309  }
310
311  /**
312   * Get the ID of this codec, as an integer.<br>
313   * @return the ID of this codec, as an integer.
314   */
315  public int getIDAsInt() {
316    return AVPKitJNI.ICodec_getIDAsInt(swigCPtr, this);
317  }
318
319  /**
320   * Get the ID of this codec as an enumeration.<br>
321   * @return the ID of this codec, an enum ID
322   */
323  public ICodec.ID getID() {
324    return ICodec.ID.swigToEnum(AVPKitJNI.ICodec_getID(swigCPtr, this));
325  }
326
327  /**
328   * Get the type of this codec.<br>
329   * @return The type of this Codec, as a enum Type
330   */
331  public ICodec.Type getType() {
332    return ICodec.Type.swigToEnum(AVPKitJNI.ICodec_getType(swigCPtr, this));
333  }
334
335  /**
336   * Can this codec be used for decoding?<br>
337   * @return Can this Codec decode?
338   */
339  public boolean canDecode() {
340    return AVPKitJNI.ICodec_canDecode(swigCPtr, this);
341  }
342
343  /**
344   * Can this codec be used for encoding?<br>
345   * @return Can this Codec encode?
346   */
347  public boolean canEncode() {
348    return AVPKitJNI.ICodec_canEncode(swigCPtr, this);
349  }
350
351  /**
352   * Find a codec that can be used for encoding or<br>
353   * find a HW codec that can be used for encoding.<br>
354   * @param id The id of the codec<br>
355   * <br>
356   * @return the codec, or null if we can't find it.
357   */
358  public static ICodec findEncodingCodec(ICodec.ID id, IPixelFormat.Type arg1) {
359    long cPtr = AVPKitJNI.ICodec_findEncodingCodec__SWIG_0(id.swigValue(), arg1.swigValue());
360    return (cPtr == 0) ? null : new ICodec(cPtr, false);
361  }
362
363  /**
364   * Find a codec that can be used for encoding or<br>
365   * find a HW codec that can be used for encoding.<br>
366   * @param id The id of the codec<br>
367   * <br>
368   * @return the codec, or null if we can't find it.
369   */
370  public static ICodec findEncodingCodec(ICodec.ID id) {
371    long cPtr = AVPKitJNI.ICodec_findEncodingCodec__SWIG_1(id.swigValue());
372    return (cPtr == 0) ? null : new ICodec(cPtr, false);
373  }
374
375  /**
376   * Find a codec that can be used for encoding.<br>
377   * @param id The id of the codec, as an integer.<br>
378   * @return the codec, or null if we can't find it.
379   */
380  public static ICodec findEncodingCodecByIntID(int id) {
381    long cPtr = AVPKitJNI.ICodec_findEncodingCodecByIntID(id);
382    return (cPtr == 0) ? null : new ICodec(cPtr, false);
383  }
384
385  /**
386   * Find a codec that can be used for encoding.<br>
387   * @param id The id of the codec, as a FFMPEG short-name string<br>
388   *   (for example, "mpeg4").<br>
389   * @return the codec, or null if we can't find it.
390   */
391  public static ICodec findEncodingCodecByName(String id) {
392    long cPtr = AVPKitJNI.ICodec_findEncodingCodecByName(id);
393    return (cPtr == 0) ? null : new ICodec(cPtr, false);
394  }
395
396  /**
397   * Find a codec that can be used for decoding or<br>
398   * find a HW codec that can be used for decoding.<br>
399   * @param id The id of the codec<br>
400   * <br>
401   * @return the codec, or null if we can't find it.
402   */
403  public static ICodec findDecodingCodec(ICodec.ID id, IPixelFormat.Type arg1) {
404    long cPtr = AVPKitJNI.ICodec_findDecodingCodec__SWIG_0(id.swigValue(), arg1.swigValue());
405    return (cPtr == 0) ? null : new ICodec(cPtr, false);
406  }
407
408  /**
409   * Find a codec that can be used for decoding or<br>
410   * find a HW codec that can be used for decoding.<br>
411   * @param id The id of the codec<br>
412   * <br>
413   * @return the codec, or null if we can't find it.
414   */
415  public static ICodec findDecodingCodec(ICodec.ID id) {
416    long cPtr = AVPKitJNI.ICodec_findDecodingCodec__SWIG_1(id.swigValue());
417    return (cPtr == 0) ? null : new ICodec(cPtr, false);
418  }
419
420  /**
421   * Find a codec that can be used for decoding.<br>
422   * @param id The id of the codec, as an integer<br>
423   * @return the codec, or null if we can't find it.
424   */
425  public static ICodec findDecodingCodecByIntID(int id) {
426    long cPtr = AVPKitJNI.ICodec_findDecodingCodecByIntID(id);
427    return (cPtr == 0) ? null : new ICodec(cPtr, false);
428  }
429
430  /**
431   * Find a codec that can be used for decoding.<br>
432   * @param id The id of the codec, as a FFMPEG short-name string<br>
433   *   (for example, "mpeg4")<br>
434   * @return the codec, or null if we can't find it.
435   */
436  public static ICodec findDecodingCodecByName(String id) {
437    long cPtr = AVPKitJNI.ICodec_findDecodingCodecByName(id);
438    return (cPtr == 0) ? null : new ICodec(cPtr, false);
439  }
440
441  /**
442   * Ask us to guess an encoding codec based on the inputs<br>
443   * passed in.<br>
444   * <p><br>
445   * You must pass in at least one non null fmt, shortName,<br>
446   * url or mime_type.<br>
447   * </p><br>
448   * @param fmt An IContainerFormat for the container you'll want to encode into.<br>
449   * @param shortName The FFMPEG short name of the codec (e.g. "mpeg4").<br>
450   * @param url The URL you'll be writing packets to.<br>
451   * @param mimeType The mime type of the container.<br>
452   * @param type The codec type.<br>
453   * @return the codec, or null if we can't find it.
454   */
455  public static ICodec guessEncodingCodec(IContainerFormat fmt, String shortName, String url, String mimeType, ICodec.Type type) {
456    long cPtr = AVPKitJNI.ICodec_guessEncodingCodec(IContainerFormat.getCPtr(fmt), fmt, shortName, url, mimeType, type.swigValue());
457    return (cPtr == 0) ? null : new ICodec(cPtr, false);
458  }
459
460  /**
461   * Get the long name for this codec.<br>
462   * <br>
463   * @return the long name.
464   */
465  public String getLongName() {
466    return AVPKitJNI.ICodec_getLongName(swigCPtr, this);
467  }
468
469  /**
470   * Get the capabilites flag from the codec<br>
471   * <br>
472   * @return the capabilities flag
473   */
474  public int getCapabilities() {
475    return AVPKitJNI.ICodec_getCapabilities(swigCPtr, this);
476  }
477
478  /**
479   * Convenience method to check individual capability flags.<br>
480   * <br>
481   * @param capability the capability<br>
482   * <br>
483   * @return true if flag is set; false otherwise.
484   */
485  public boolean hasCapability(ICodec.Capabilities capability) {
486    return AVPKitJNI.ICodec_hasCapability(swigCPtr, this, capability.swigValue());
487  }
488
489  /**
490   * Get the number of installed codecs on this system.<br>
491   * @return the number of installed codecs.
492   */
493  public static int getNumInstalledCodecs() {
494    return AVPKitJNI.ICodec_getNumInstalledCodecs();
495  }
496
497  /**
498   * Get the {ICodec} at the given index.<br>
499   * <br>
500   * @param index the index in our list<br>
501   * <br>
502   * @return the codec, or null if index &lt; 0 or index &gt;= <br>
503   *   {#getNumInstalledCodecs()}
504   */
505  public static ICodec getInstalledCodec(int index) {
506    long cPtr = AVPKitJNI.ICodec_getInstalledCodec(index);
507    return (cPtr == 0) ? null : new ICodec(cPtr, false);
508  }
509
510  /**
511   * Get the number of frame rates this codec supports for encoding.<br>
512   * Not all codecs will report this number.<br>
513   * @return the number or 0 if we don't know.
514   */
515  public int getNumSupportedVideoFrameRates() {
516    return AVPKitJNI.ICodec_getNumSupportedVideoFrameRates(swigCPtr, this);
517  }
518
519  /**
520   * Return the supported frame rate at the given index.<br>
521   * <br>
522   * @param index the index in our list.<br>
523   * <br>
524   * @return the frame rate, or null if unknown, if index &lt;0 or<br>
525   *   if index &gt;= {#getNumSupportedVideoFrameRates()}
526   */
527  public IRational getSupportedVideoFrameRate(int index) {
528    long cPtr = AVPKitJNI.ICodec_getSupportedVideoFrameRate(swigCPtr, this, index);
529    return (cPtr == 0) ? null : new IRational(cPtr, false);
530  }
531
532  /**
533   * Get the number of supported video pixel formats this codec supports<br>
534   * for encoding.  Not all codecs will report this.<br>
535   * <br>
536   * @return the number or 0 if we don't know.
537   */
538  public int getNumSupportedVideoPixelFormats() {
539    return AVPKitJNI.ICodec_getNumSupportedVideoPixelFormats(swigCPtr, this);
540  }
541
542  /**
543   * Return the supported video pixel format at the given index.<br>
544   * <br>
545   * @param index the index in our list.<br>
546   * <br>
547   * @return the pixel format, or {IPixelFormat.Type#NONE} if unknown,<br>
548   *   if index &lt;0 or<br>
549   *   if index &gt;= {#getNumSupportedVideoPixelFormats()}
550   */
551  public IPixelFormat.Type getSupportedVideoPixelFormat(int index) {
552    return IPixelFormat.Type.swigToEnum(AVPKitJNI.ICodec_getSupportedVideoPixelFormat(swigCPtr, this, index));
553  }
554
555  /**
556   * Get the number of different audio sample rates this codec supports<br>
557   * for encoding.  Not all codecs will report this.<br>
558   * <br>
559   * @return the number or 0 if we don't know.
560   */
561  public int getNumSupportedAudioSampleRates() {
562    return AVPKitJNI.ICodec_getNumSupportedAudioSampleRates(swigCPtr, this);
563  }
564
565  /**
566   * Return the support audio sample rate at the given index.<br>
567   * <br>
568   * @param index the index in our list.<br>
569   * <br>
570   * @return the sample rate, or 0 if unknown, index &lt; 0 or<br>
571   *   index &gt;= {#getNumSupportedAudioSampleRates()}
572   */
573  public int getSupportedAudioSampleRate(int index) {
574    return AVPKitJNI.ICodec_getSupportedAudioSampleRate(swigCPtr, this, index);
575  }
576
577  /**
578   * Get the number of different audio sample formats this codec supports<br>
579   * for encoding.  Not all codecs will report this.<br>
580   * <br>
581   * @return the number or 0 if we don't know.
582   */
583  public int getNumSupportedAudioSampleFormats() {
584    return AVPKitJNI.ICodec_getNumSupportedAudioSampleFormats(swigCPtr, this);
585  }
586
587  /**
588   * Get the supported sample format at this index.<br>
589   * <br>
590   * @param index the index in our list.<br>
591   * <br>
592   * @return the format, or {IAudioSamples.Format.FMT_NONE} if<br>
593   *   unknown, index &lt; 0 or index &gt;=<br>
594   *   {#getNumSupportedAudioSampleFormats()}.
595   */
596  public IAudioSamples.Format getSupportedAudioSampleFormat(int index) {
597    return IAudioSamples.Format.swigToEnum(AVPKitJNI.ICodec_getSupportedAudioSampleFormat(swigCPtr, this, index));
598  }
599
600  /**
601   * Get the number of different audio channel layouts this codec supports<br>
602   * for encoding.  Not all codecs will report this.<br>
603   * <br>
604   * <br>
605   * @return the number or 0 if we don't know.
606   */
607  public int getNumSupportedAudioChannelLayouts() {
608    return AVPKitJNI.ICodec_getNumSupportedAudioChannelLayouts(swigCPtr, this);
609  }
610
611  /**
612   * Get the supported audio channel layout at this index.<br>
613   * <br>
614   * The value returned is a bit flag representing the different<br>
615   * types of audio layout this codec can support.  Test the values<br>
616   * by bit-comparing them to the {IAudioSamples.ChannelLayout}<br>
617   * enum types.<br>
618   * <br>
619   * @param index the index<br>
620   * <br>
621   * @return the channel layout, or 0 if unknown, index &lt; 0 or<br>
622   *   index &gt;= {#getNumSupportedAudioChannelLayouts}.
623   */
624  public long getSupportedAudioChannelLayout(int index) {
625    return AVPKitJNI.ICodec_getSupportedAudioChannelLayout(swigCPtr, this, index);
626  }
627
628  /**
629   * These are the codecs this library currently supports.<br>
630   * These are based on FFMPEG Git versions with this HEAD:<br>
631   * 6a97ba521558ce131fe839eed2d51ff745280e1d
632   */
633  public enum ID {
634    AV_CODEC_ID_NONE,
635    AV_CODEC_ID_MPEG1VIDEO,
636    /**
637     *  preferred ID for MPEG-1/2 video decoding
638     */
639    AV_CODEC_ID_MPEG2VIDEO,
640    AV_CODEC_ID_H261,
641    AV_CODEC_ID_H263,
642    AV_CODEC_ID_RV10,
643    AV_CODEC_ID_RV20,
644    AV_CODEC_ID_MJPEG,
645    AV_CODEC_ID_MJPEGB,
646    AV_CODEC_ID_LJPEG,
647    AV_CODEC_ID_SP5X,
648    AV_CODEC_ID_JPEGLS,
649    AV_CODEC_ID_MPEG4,
650    AV_CODEC_ID_RAWVIDEO,
651    AV_CODEC_ID_MSMPEG4V1,
652    AV_CODEC_ID_MSMPEG4V2,
653    AV_CODEC_ID_MSMPEG4V3,
654    AV_CODEC_ID_WMV1,
655    AV_CODEC_ID_WMV2,
656    AV_CODEC_ID_H263P,
657    AV_CODEC_ID_H263I,
658    AV_CODEC_ID_FLV1,
659    AV_CODEC_ID_SVQ1,
660    AV_CODEC_ID_SVQ3,
661    AV_CODEC_ID_DVVIDEO,
662    AV_CODEC_ID_HUFFYUV,
663    AV_CODEC_ID_CYUV,
664    AV_CODEC_ID_H264,
665    AV_CODEC_ID_INDEO3,
666    AV_CODEC_ID_VP3,
667    AV_CODEC_ID_THEORA,
668    AV_CODEC_ID_ASV1,
669    AV_CODEC_ID_ASV2,
670    AV_CODEC_ID_FFV1,
671    AV_CODEC_ID_4XM,
672    AV_CODEC_ID_VCR1,
673    AV_CODEC_ID_CLJR,
674    AV_CODEC_ID_MDEC,
675    AV_CODEC_ID_ROQ,
676    AV_CODEC_ID_INTERPLAY_VIDEO,
677    AV_CODEC_ID_XAN_WC3,
678    AV_CODEC_ID_XAN_WC4,
679    AV_CODEC_ID_RPZA,
680    AV_CODEC_ID_CINEPAK,
681    AV_CODEC_ID_WS_VQA,
682    AV_CODEC_ID_MSRLE,
683    AV_CODEC_ID_MSVIDEO1,
684    AV_CODEC_ID_IDCIN,
685    AV_CODEC_ID_8BPS,
686    AV_CODEC_ID_SMC,
687    AV_CODEC_ID_FLIC,
688    AV_CODEC_ID_TRUEMOTION1,
689    AV_CODEC_ID_VMDVIDEO,
690    AV_CODEC_ID_MSZH,
691    AV_CODEC_ID_ZLIB,
692    AV_CODEC_ID_QTRLE,
693    AV_CODEC_ID_TSCC,
694    AV_CODEC_ID_ULTI,
695    AV_CODEC_ID_QDRAW,
696    AV_CODEC_ID_VIXL,
697    AV_CODEC_ID_QPEG,
698    AV_CODEC_ID_PNG,
699    AV_CODEC_ID_PPM,
700    AV_CODEC_ID_PBM,
701    AV_CODEC_ID_PGM,
702    AV_CODEC_ID_PGMYUV,
703    AV_CODEC_ID_PAM,
704    AV_CODEC_ID_FFVHUFF,
705    AV_CODEC_ID_RV30,
706    AV_CODEC_ID_RV40,
707    AV_CODEC_ID_VC1,
708    AV_CODEC_ID_WMV3,
709    AV_CODEC_ID_LOCO,
710    AV_CODEC_ID_WNV1,
711    AV_CODEC_ID_AASC,
712    AV_CODEC_ID_INDEO2,
713    AV_CODEC_ID_FRAPS,
714    AV_CODEC_ID_TRUEMOTION2,
715    AV_CODEC_ID_BMP,
716    AV_CODEC_ID_CSCD,
717    AV_CODEC_ID_MMVIDEO,
718    AV_CODEC_ID_ZMBV,
719    AV_CODEC_ID_AVS,
720    AV_CODEC_ID_SMACKVIDEO,
721    AV_CODEC_ID_NUV,
722    AV_CODEC_ID_KMVC,
723    AV_CODEC_ID_FLASHSV,
724    AV_CODEC_ID_CAVS,
725    AV_CODEC_ID_JPEG2000,
726    AV_CODEC_ID_VMNC,
727    AV_CODEC_ID_VP5,
728    AV_CODEC_ID_VP6,
729    AV_CODEC_ID_VP6F,
730    AV_CODEC_ID_TARGA,
731    AV_CODEC_ID_DSICINVIDEO,
732    AV_CODEC_ID_TIERTEXSEQVIDEO,
733    AV_CODEC_ID_TIFF,
734    AV_CODEC_ID_GIF,
735    AV_CODEC_ID_DXA,
736    AV_CODEC_ID_DNXHD,
737    AV_CODEC_ID_THP,
738    AV_CODEC_ID_SGI,
739    AV_CODEC_ID_C93,
740    AV_CODEC_ID_BETHSOFTVID,
741    AV_CODEC_ID_PTX,
742    AV_CODEC_ID_TXD,
743    AV_CODEC_ID_VP6A,
744    AV_CODEC_ID_AMV,
745    AV_CODEC_ID_VB,
746    AV_CODEC_ID_PCX,
747    AV_CODEC_ID_SUNRAST,
748    AV_CODEC_ID_INDEO4,
749    AV_CODEC_ID_INDEO5,
750    AV_CODEC_ID_MIMIC,
751    AV_CODEC_ID_RL2,
752    AV_CODEC_ID_ESCAPE124,
753    AV_CODEC_ID_DIRAC,
754    AV_CODEC_ID_BFI,
755    AV_CODEC_ID_CMV,
756    AV_CODEC_ID_MOTIONPIXELS,
757    AV_CODEC_ID_TGV,
758    AV_CODEC_ID_TGQ,
759    AV_CODEC_ID_TQI,
760    AV_CODEC_ID_AURA,
761    AV_CODEC_ID_AURA2,
762    AV_CODEC_ID_V210X,
763    AV_CODEC_ID_TMV,
764    AV_CODEC_ID_V210,
765    AV_CODEC_ID_DPX,
766    AV_CODEC_ID_MAD,
767    AV_CODEC_ID_FRWU,
768    AV_CODEC_ID_FLASHSV2,
769    AV_CODEC_ID_CDGRAPHICS,
770    AV_CODEC_ID_R210,
771    AV_CODEC_ID_ANM,
772    AV_CODEC_ID_BINKVIDEO,
773    AV_CODEC_ID_IFF_ILBM,
774    AV_CODEC_ID_KGV1,
775    AV_CODEC_ID_YOP,
776    AV_CODEC_ID_VP8,
777    AV_CODEC_ID_PICTOR,
778    AV_CODEC_ID_ANSI,
779    AV_CODEC_ID_A64_MULTI,
780    AV_CODEC_ID_A64_MULTI5,
781    AV_CODEC_ID_R10K,
782    AV_CODEC_ID_MXPEG,
783    AV_CODEC_ID_LAGARITH,
784    AV_CODEC_ID_PRORES,
785    AV_CODEC_ID_JV,
786    AV_CODEC_ID_DFA,
787    AV_CODEC_ID_WMV3IMAGE,
788    AV_CODEC_ID_VC1IMAGE,
789    AV_CODEC_ID_UTVIDEO,
790    AV_CODEC_ID_BMV_VIDEO,
791    AV_CODEC_ID_VBLE,
792    AV_CODEC_ID_DXTORY,
793    AV_CODEC_ID_V410,
794    AV_CODEC_ID_XWD,
795    AV_CODEC_ID_CDXL,
796    AV_CODEC_ID_XBM,
797    AV_CODEC_ID_ZEROCODEC,
798    AV_CODEC_ID_MSS1,
799    AV_CODEC_ID_MSA1,
800    AV_CODEC_ID_TSCC2,
801    AV_CODEC_ID_MTS2,
802    AV_CODEC_ID_CLLC,
803    AV_CODEC_ID_MSS2,
804    AV_CODEC_ID_VP9,
805    AV_CODEC_ID_AIC,
806    AV_CODEC_ID_ESCAPE130,
807    AV_CODEC_ID_G2M,
808    AV_CODEC_ID_WEBP,
809    AV_CODEC_ID_HNM4_VIDEO,
810    AV_CODEC_ID_HEVC,
811    AV_CODEC_ID_FIC,
812    AV_CODEC_ID_ALIAS_PIX,
813    AV_CODEC_ID_BRENDER_PIX,
814    AV_CODEC_ID_PAF_VIDEO,
815    AV_CODEC_ID_EXR,
816    AV_CODEC_ID_VP7,
817    AV_CODEC_ID_SANM,
818    AV_CODEC_ID_SGIRLE,
819    AV_CODEC_ID_MVC1,
820    AV_CODEC_ID_MVC2,
821    AV_CODEC_ID_HQX,
822    AV_CODEC_ID_TDSC,
823    AV_CODEC_ID_HQ_HQA,
824    AV_CODEC_ID_HAP,
825    AV_CODEC_ID_DDS,
826    AV_CODEC_ID_DXV,
827    AV_CODEC_ID_SCREENPRESSO,
828    AV_CODEC_ID_RSCC,
829    AV_CODEC_ID_AVS2,
830    AV_CODEC_ID_Y41P(AVPKitJNI.ICodec_AV_CODEC_ID_Y41P_get()),
831    AV_CODEC_ID_AVRP,
832    AV_CODEC_ID_012V,
833    AV_CODEC_ID_AVUI,
834    AV_CODEC_ID_AYUV,
835    AV_CODEC_ID_TARGA_Y216,
836    AV_CODEC_ID_V308,
837    AV_CODEC_ID_V408,
838    AV_CODEC_ID_YUV4,
839    AV_CODEC_ID_AVRN,
840    AV_CODEC_ID_CPIA,
841    AV_CODEC_ID_XFACE,
842    AV_CODEC_ID_SNOW,
843    AV_CODEC_ID_SMVJPEG,
844    AV_CODEC_ID_APNG,
845    AV_CODEC_ID_DAALA,
846    AV_CODEC_ID_CFHD,
847    AV_CODEC_ID_TRUEMOTION2RT,
848    AV_CODEC_ID_M101,
849    AV_CODEC_ID_MAGICYUV,
850    AV_CODEC_ID_SHEERVIDEO,
851    AV_CODEC_ID_YLC,
852    AV_CODEC_ID_PSD,
853    AV_CODEC_ID_PIXLET,
854    AV_CODEC_ID_SPEEDHQ,
855    AV_CODEC_ID_FMVC,
856    AV_CODEC_ID_SCPR,
857    AV_CODEC_ID_CLEARVIDEO,
858    AV_CODEC_ID_XPM,
859    AV_CODEC_ID_AV1,
860    AV_CODEC_ID_BITPACKED,
861    AV_CODEC_ID_MSCC,
862    AV_CODEC_ID_SRGC,
863    AV_CODEC_ID_SVG,
864    AV_CODEC_ID_GDV,
865    AV_CODEC_ID_FITS,
866    AV_CODEC_ID_IMM4,
867    AV_CODEC_ID_PROSUMER,
868    AV_CODEC_ID_MWSC,
869    AV_CODEC_ID_WCMV,
870    AV_CODEC_ID_RASC,
871    AV_CODEC_ID_HYMT,
872    AV_CODEC_ID_ARBC,
873    AV_CODEC_ID_AGM,
874    AV_CODEC_ID_LSCR,
875    AV_CODEC_ID_VP4,
876    AV_CODEC_ID_IMM5,
877    AV_CODEC_ID_MVDV,
878    AV_CODEC_ID_MVHA,
879    AV_CODEC_ID_CDTOONS,
880    AV_CODEC_ID_MV30,
881    AV_CODEC_ID_NOTCHLC,
882    AV_CODEC_ID_PFM,
883    /**
884     *  A dummy id pointing at the start of audio codecs
885     */
886    AV_CODEC_ID_FIRST_AUDIO(AVPKitJNI.ICodec_AV_CODEC_ID_FIRST_AUDIO_get()),
887    AV_CODEC_ID_PCM_S16LE(AVPKitJNI.ICodec_AV_CODEC_ID_PCM_S16LE_get()),
888    AV_CODEC_ID_PCM_S16BE,
889    AV_CODEC_ID_PCM_U16LE,
890    AV_CODEC_ID_PCM_U16BE,
891    AV_CODEC_ID_PCM_S8,
892    AV_CODEC_ID_PCM_U8,
893    AV_CODEC_ID_PCM_MULAW,
894    AV_CODEC_ID_PCM_ALAW,
895    AV_CODEC_ID_PCM_S32LE,
896    AV_CODEC_ID_PCM_S32BE,
897    AV_CODEC_ID_PCM_U32LE,
898    AV_CODEC_ID_PCM_U32BE,
899    AV_CODEC_ID_PCM_S24LE,
900    AV_CODEC_ID_PCM_S24BE,
901    AV_CODEC_ID_PCM_U24LE,
902    AV_CODEC_ID_PCM_U24BE,
903    AV_CODEC_ID_PCM_S24DAUD,
904    AV_CODEC_ID_PCM_ZORK,
905    AV_CODEC_ID_PCM_S16LE_PLANAR,
906    AV_CODEC_ID_PCM_DVD,
907    AV_CODEC_ID_PCM_F32BE,
908    AV_CODEC_ID_PCM_F32LE,
909    AV_CODEC_ID_PCM_F64BE,
910    AV_CODEC_ID_PCM_F64LE,
911    AV_CODEC_ID_PCM_BLURAY,
912    AV_CODEC_ID_PCM_LXF,
913    AV_CODEC_ID_S302M,
914    AV_CODEC_ID_PCM_S8_PLANAR,
915    AV_CODEC_ID_PCM_S24LE_PLANAR,
916    AV_CODEC_ID_PCM_S32LE_PLANAR,
917    AV_CODEC_ID_PCM_S16BE_PLANAR,
918    AV_CODEC_ID_PCM_S64LE(AVPKitJNI.ICodec_AV_CODEC_ID_PCM_S64LE_get()),
919    AV_CODEC_ID_PCM_S64BE,
920    AV_CODEC_ID_PCM_F16LE,
921    AV_CODEC_ID_PCM_F24LE,
922    AV_CODEC_ID_PCM_VIDC,
923    AV_CODEC_ID_ADPCM_IMA_QT(AVPKitJNI.ICodec_AV_CODEC_ID_ADPCM_IMA_QT_get()),
924    AV_CODEC_ID_ADPCM_IMA_WAV,
925    AV_CODEC_ID_ADPCM_IMA_DK3,
926    AV_CODEC_ID_ADPCM_IMA_DK4,
927    AV_CODEC_ID_ADPCM_IMA_WS,
928    AV_CODEC_ID_ADPCM_IMA_SMJPEG,
929    AV_CODEC_ID_ADPCM_MS,
930    AV_CODEC_ID_ADPCM_4XM,
931    AV_CODEC_ID_ADPCM_XA,
932    AV_CODEC_ID_ADPCM_ADX,
933    AV_CODEC_ID_ADPCM_EA,
934    AV_CODEC_ID_ADPCM_G726,
935    AV_CODEC_ID_ADPCM_CT,
936    AV_CODEC_ID_ADPCM_SWF,
937    AV_CODEC_ID_ADPCM_YAMAHA,
938    AV_CODEC_ID_ADPCM_SBPRO_4,
939    AV_CODEC_ID_ADPCM_SBPRO_3,
940    AV_CODEC_ID_ADPCM_SBPRO_2,
941    AV_CODEC_ID_ADPCM_THP,
942    AV_CODEC_ID_ADPCM_IMA_AMV,
943    AV_CODEC_ID_ADPCM_EA_R1,
944    AV_CODEC_ID_ADPCM_EA_R3,
945    AV_CODEC_ID_ADPCM_EA_R2,
946    AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
947    AV_CODEC_ID_ADPCM_IMA_EA_EACS,
948    AV_CODEC_ID_ADPCM_EA_XAS,
949    AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
950    AV_CODEC_ID_ADPCM_IMA_ISS,
951    AV_CODEC_ID_ADPCM_G722,
952    AV_CODEC_ID_ADPCM_IMA_APC,
953    AV_CODEC_ID_ADPCM_VIMA,
954    AV_CODEC_ID_ADPCM_AFC(AVPKitJNI.ICodec_AV_CODEC_ID_ADPCM_AFC_get()),
955    AV_CODEC_ID_ADPCM_IMA_OKI,
956    AV_CODEC_ID_ADPCM_DTK,
957    AV_CODEC_ID_ADPCM_IMA_RAD,
958    AV_CODEC_ID_ADPCM_G726LE,
959    AV_CODEC_ID_ADPCM_THP_LE,
960    AV_CODEC_ID_ADPCM_PSX,
961    AV_CODEC_ID_ADPCM_AICA,
962    AV_CODEC_ID_ADPCM_IMA_DAT4,
963    AV_CODEC_ID_ADPCM_MTAF,
964    AV_CODEC_ID_ADPCM_AGM,
965    AV_CODEC_ID_ADPCM_ARGO,
966    AV_CODEC_ID_ADPCM_IMA_SSI,
967    AV_CODEC_ID_ADPCM_ZORK,
968    AV_CODEC_ID_ADPCM_IMA_APM,
969    AV_CODEC_ID_ADPCM_IMA_ALP,
970    AV_CODEC_ID_ADPCM_IMA_MTF,
971    AV_CODEC_ID_ADPCM_IMA_CUNNING,
972    AV_CODEC_ID_AMR_NB(AVPKitJNI.ICodec_AV_CODEC_ID_AMR_NB_get()),
973    AV_CODEC_ID_AMR_WB,
974    AV_CODEC_ID_RA_144(AVPKitJNI.ICodec_AV_CODEC_ID_RA_144_get()),
975    AV_CODEC_ID_RA_288,
976    AV_CODEC_ID_ROQ_DPCM(AVPKitJNI.ICodec_AV_CODEC_ID_ROQ_DPCM_get()),
977    AV_CODEC_ID_INTERPLAY_DPCM,
978    AV_CODEC_ID_XAN_DPCM,
979    AV_CODEC_ID_SOL_DPCM,
980    AV_CODEC_ID_SDX2_DPCM(AVPKitJNI.ICodec_AV_CODEC_ID_SDX2_DPCM_get()),
981    AV_CODEC_ID_GREMLIN_DPCM,
982    AV_CODEC_ID_DERF_DPCM,
983    AV_CODEC_ID_MP2(AVPKitJNI.ICodec_AV_CODEC_ID_MP2_get()),
984    /**
985     *  preferred ID for decoding MPEG audio layer 1, 2 or 3
986     */
987    AV_CODEC_ID_MP3,
988    AV_CODEC_ID_AAC,
989    AV_CODEC_ID_AC3,
990    AV_CODEC_ID_DTS,
991    AV_CODEC_ID_VORBIS,
992    AV_CODEC_ID_DVAUDIO,
993    AV_CODEC_ID_WMAV1,
994    AV_CODEC_ID_WMAV2,
995    AV_CODEC_ID_MACE3,
996    AV_CODEC_ID_MACE6,
997    AV_CODEC_ID_VMDAUDIO,
998    AV_CODEC_ID_FLAC,
999    AV_CODEC_ID_MP3ADU,
1000    AV_CODEC_ID_MP3ON4,
1001    AV_CODEC_ID_SHORTEN,
1002    AV_CODEC_ID_ALAC,
1003    AV_CODEC_ID_WESTWOOD_SND1,
1004    /**
1005     *  as in Berlin toast format
1006     */
1007    AV_CODEC_ID_GSM,
1008    AV_CODEC_ID_QDM2,
1009    AV_CODEC_ID_COOK,
1010    AV_CODEC_ID_TRUESPEECH,
1011    AV_CODEC_ID_TTA,
1012    AV_CODEC_ID_SMACKAUDIO,
1013    AV_CODEC_ID_QCELP,
1014    AV_CODEC_ID_WAVPACK,
1015    AV_CODEC_ID_DSICINAUDIO,
1016    AV_CODEC_ID_IMC,
1017    AV_CODEC_ID_MUSEPACK7,
1018    AV_CODEC_ID_MLP,
1019    AV_CODEC_ID_GSM_MS,
1020    AV_CODEC_ID_ATRAC3,
1021    AV_CODEC_ID_APE,
1022    AV_CODEC_ID_NELLYMOSER,
1023    AV_CODEC_ID_MUSEPACK8,
1024    AV_CODEC_ID_SPEEX,
1025    AV_CODEC_ID_WMAVOICE,
1026    AV_CODEC_ID_WMAPRO,
1027    AV_CODEC_ID_WMALOSSLESS,
1028    AV_CODEC_ID_ATRAC3P,
1029    AV_CODEC_ID_EAC3,
1030    AV_CODEC_ID_SIPR,
1031    AV_CODEC_ID_MP1,
1032    AV_CODEC_ID_TWINVQ,
1033    AV_CODEC_ID_TRUEHD,
1034    AV_CODEC_ID_MP4ALS,
1035    AV_CODEC_ID_ATRAC1,
1036    AV_CODEC_ID_BINKAUDIO_RDFT,
1037    AV_CODEC_ID_BINKAUDIO_DCT,
1038    AV_CODEC_ID_AAC_LATM,
1039    AV_CODEC_ID_QDMC,
1040    AV_CODEC_ID_CELT,
1041    AV_CODEC_ID_G723_1,
1042    AV_CODEC_ID_G729,
1043    AV_CODEC_ID_8SVX_EXP,
1044    AV_CODEC_ID_8SVX_FIB,
1045    AV_CODEC_ID_BMV_AUDIO,
1046    AV_CODEC_ID_RALF,
1047    AV_CODEC_ID_IAC,
1048    AV_CODEC_ID_ILBC,
1049    AV_CODEC_ID_OPUS,
1050    AV_CODEC_ID_COMFORT_NOISE,
1051    AV_CODEC_ID_TAK,
1052    AV_CODEC_ID_METASOUND,
1053    AV_CODEC_ID_PAF_AUDIO,
1054    AV_CODEC_ID_ON2AVC,
1055    AV_CODEC_ID_DSS_SP,
1056    AV_CODEC_ID_CODEC2,
1057    AV_CODEC_ID_FFWAVESYNTH(AVPKitJNI.ICodec_AV_CODEC_ID_FFWAVESYNTH_get()),
1058    AV_CODEC_ID_SONIC,
1059    AV_CODEC_ID_SONIC_LS,
1060    AV_CODEC_ID_EVRC,
1061    AV_CODEC_ID_SMV,
1062    AV_CODEC_ID_DSD_LSBF,
1063    AV_CODEC_ID_DSD_MSBF,
1064    AV_CODEC_ID_DSD_LSBF_PLANAR,
1065    AV_CODEC_ID_DSD_MSBF_PLANAR,
1066    AV_CODEC_ID_4GV,
1067    AV_CODEC_ID_INTERPLAY_ACM,
1068    AV_CODEC_ID_XMA1,
1069    AV_CODEC_ID_XMA2,
1070    AV_CODEC_ID_DST,
1071    AV_CODEC_ID_ATRAC3AL,
1072    AV_CODEC_ID_ATRAC3PAL,
1073    AV_CODEC_ID_DOLBY_E,
1074    AV_CODEC_ID_APTX,
1075    AV_CODEC_ID_APTX_HD,
1076    AV_CODEC_ID_SBC,
1077    AV_CODEC_ID_ATRAC9,
1078    AV_CODEC_ID_HCOM,
1079    AV_CODEC_ID_ACELP_KELVIN,
1080    AV_CODEC_ID_MPEGH_3D_AUDIO,
1081    AV_CODEC_ID_SIREN,
1082    AV_CODEC_ID_HCA,
1083    /**
1084     *  A dummy ID pointing at the start of subtitle codecs.
1085     */
1086    AV_CODEC_ID_FIRST_SUBTITLE(AVPKitJNI.ICodec_AV_CODEC_ID_FIRST_SUBTITLE_get()),
1087    AV_CODEC_ID_DVD_SUBTITLE(AVPKitJNI.ICodec_AV_CODEC_ID_DVD_SUBTITLE_get()),
1088    AV_CODEC_ID_DVB_SUBTITLE,
1089    /**
1090     *  raw UTF-8 text
1091     */
1092    AV_CODEC_ID_TEXT,
1093    AV_CODEC_ID_XSUB,
1094    AV_CODEC_ID_SSA,
1095    AV_CODEC_ID_MOV_TEXT,
1096    AV_CODEC_ID_HDMV_PGS_SUBTITLE,
1097    AV_CODEC_ID_DVB_TELETEXT,
1098    AV_CODEC_ID_SRT,
1099    AV_CODEC_ID_MICRODVD(AVPKitJNI.ICodec_AV_CODEC_ID_MICRODVD_get()),
1100    AV_CODEC_ID_EIA_608,
1101    AV_CODEC_ID_JACOSUB,
1102    AV_CODEC_ID_SAMI,
1103    AV_CODEC_ID_REALTEXT,
1104    AV_CODEC_ID_STL,
1105    AV_CODEC_ID_SUBVIEWER1,
1106    AV_CODEC_ID_SUBVIEWER,
1107    AV_CODEC_ID_SUBRIP,
1108    AV_CODEC_ID_WEBVTT,
1109    AV_CODEC_ID_MPL2,
1110    AV_CODEC_ID_VPLAYER,
1111    AV_CODEC_ID_PJS,
1112    AV_CODEC_ID_ASS,
1113    AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
1114    AV_CODEC_ID_TTML,
1115    AV_CODEC_ID_ARIB_CAPTION,
1116    /**
1117     *  A dummy ID pointing at the start of various fake codecs.
1118     */
1119    AV_CODEC_ID_FIRST_UNKNOWN(AVPKitJNI.ICodec_AV_CODEC_ID_FIRST_UNKNOWN_get()),
1120    AV_CODEC_ID_TTF(AVPKitJNI.ICodec_AV_CODEC_ID_TTF_get()),
1121    /**
1122     *  Contain timestamp estimated through PCR of program stream.
1123     */
1124    AV_CODEC_ID_SCTE_35,
1125    AV_CODEC_ID_EPG,
1126    AV_CODEC_ID_BINTEXT(AVPKitJNI.ICodec_AV_CODEC_ID_BINTEXT_get()),
1127    AV_CODEC_ID_XBIN,
1128    AV_CODEC_ID_IDF,
1129    AV_CODEC_ID_OTF,
1130    AV_CODEC_ID_SMPTE_KLV,
1131    AV_CODEC_ID_DVD_NAV,
1132    AV_CODEC_ID_TIMED_ID3,
1133    AV_CODEC_ID_BIN_DATA,
1134    /**
1135     *  codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
1136     */
1137    AV_CODEC_ID_PROBE(AVPKitJNI.ICodec_AV_CODEC_ID_PROBE_get()),
1138    /**
1139     *  _FAKE_ codec to indicate a raw MPEG-2 TS<br>
1140     * stream (only used by libavformat) 
1141     */
1142    AV_CODEC_ID_MPEG2TS(AVPKitJNI.ICodec_AV_CODEC_ID_MPEG2TS_get()),
1143    /**
1144     *  _FAKE_ codec to indicate a MPEG-4 Systems<br>
1145     * stream (only used by libavformat) 
1146     */
1147    AV_CODEC_ID_MPEG4SYSTEMS(AVPKitJNI.ICodec_AV_CODEC_ID_MPEG4SYSTEMS_get()),
1148    /**
1149     *  Dummy codec for streams containing only metadata information.
1150     */
1151    AV_CODEC_ID_FFMETADATA(AVPKitJNI.ICodec_AV_CODEC_ID_FFMETADATA_get()),
1152    /**
1153     *  Passthrough codec, AVFrames wrapped in AVPacket
1154     */
1155    AV_CODEC_ID_WRAPPED_AVFRAME(AVPKitJNI.ICodec_AV_CODEC_ID_WRAPPED_AVFRAME_get());
1156
1157    public final int swigValue() {
1158      return swigValue;
1159    }
1160
1161    public static ID swigToEnum(int swigValue) {
1162      ID[] swigValues = ID.class.getEnumConstants();
1163      if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
1164        return swigValues[swigValue];
1165      for (ID swigEnum : swigValues)
1166        if (swigEnum.swigValue == swigValue)
1167          return swigEnum;
1168      throw new IllegalArgumentException("No enum " + ID.class + " with value " + swigValue);
1169    }
1170
1171    @SuppressWarnings("unused")
1172    private ID() {
1173      this.swigValue = SwigNext.next++;
1174    }
1175
1176    @SuppressWarnings("unused")
1177    private ID(int swigValue) {
1178      this.swigValue = swigValue;
1179      SwigNext.next = swigValue+1;
1180    }
1181
1182    @SuppressWarnings("unused")
1183    private ID(ID swigEnum) {
1184      this.swigValue = swigEnum.swigValue;
1185      SwigNext.next = this.swigValue+1;
1186    }
1187
1188    private final int swigValue;
1189
1190    private static class SwigNext {
1191      private static int next = 0;
1192    }
1193  }
1194
1195  /**
1196   * The different types of Codecs that can exist in the system.
1197   */
1198  public enum Type {
1199    CODEC_TYPE_UNKNOWN(AVPKitJNI.ICodec_CODEC_TYPE_UNKNOWN_get()),
1200    CODEC_TYPE_VIDEO,
1201    CODEC_TYPE_AUDIO,
1202    CODEC_TYPE_DATA,
1203    CODEC_TYPE_SUBTITLE,
1204    CODEC_TYPE_ATTACHMENT;
1205
1206    public final int swigValue() {
1207      return swigValue;
1208    }
1209
1210    public static Type swigToEnum(int swigValue) {
1211      Type[] swigValues = Type.class.getEnumConstants();
1212      if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
1213        return swigValues[swigValue];
1214      for (Type swigEnum : swigValues)
1215        if (swigEnum.swigValue == swigValue)
1216          return swigEnum;
1217      throw new IllegalArgumentException("No enum " + Type.class + " with value " + swigValue);
1218    }
1219
1220    @SuppressWarnings("unused")
1221    private Type() {
1222      this.swigValue = SwigNext.next++;
1223    }
1224
1225    @SuppressWarnings("unused")
1226    private Type(int swigValue) {
1227      this.swigValue = swigValue;
1228      SwigNext.next = swigValue+1;
1229    }
1230
1231    @SuppressWarnings("unused")
1232    private Type(Type swigEnum) {
1233      this.swigValue = swigEnum.swigValue;
1234      SwigNext.next = this.swigValue+1;
1235    }
1236
1237    private final int swigValue;
1238
1239    private static class SwigNext {
1240      private static int next = 0;
1241    }
1242  }
1243
1244  /**
1245   * Capability flags
1246   */
1247  public enum Capabilities {
1248    CAP_DRAW_HORIZ_BAND(AVPKitJNI.ICodec_CAP_DRAW_HORIZ_BAND_get()),
1249    CAP_DR1(AVPKitJNI.ICodec_CAP_DR1_get()),
1250    CAP_PARSE_ONLY(AVPKitJNI.ICodec_CAP_PARSE_ONLY_get()),
1251    CAP_TRUNCATED(AVPKitJNI.ICodec_CAP_TRUNCATED_get()),
1252    CAP_HWACCEL(AVPKitJNI.ICodec_CAP_HWACCEL_get()),
1253    CAP_DELAY(AVPKitJNI.ICodec_CAP_DELAY_get()),
1254    CAP_SMALL_LAST_FRAME(AVPKitJNI.ICodec_CAP_SMALL_LAST_FRAME_get()),
1255    CAP_HWACCEL_VDPAU(AVPKitJNI.ICodec_CAP_HWACCEL_VDPAU_get()),
1256    CAP_SUBFRAMES(AVPKitJNI.ICodec_CAP_SUBFRAMES_get());
1257
1258    public final int swigValue() {
1259      return swigValue;
1260    }
1261
1262    public static Capabilities swigToEnum(int swigValue) {
1263      Capabilities[] swigValues = Capabilities.class.getEnumConstants();
1264      if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
1265        return swigValues[swigValue];
1266      for (Capabilities swigEnum : swigValues)
1267        if (swigEnum.swigValue == swigValue)
1268          return swigEnum;
1269      throw new IllegalArgumentException("No enum " + Capabilities.class + " with value " + swigValue);
1270    }
1271
1272    @SuppressWarnings("unused")
1273    private Capabilities() {
1274      this.swigValue = SwigNext.next++;
1275    }
1276
1277    @SuppressWarnings("unused")
1278    private Capabilities(int swigValue) {
1279      this.swigValue = swigValue;
1280      SwigNext.next = swigValue+1;
1281    }
1282
1283    @SuppressWarnings("unused")
1284    private Capabilities(Capabilities swigEnum) {
1285      this.swigValue = swigEnum.swigValue;
1286      SwigNext.next = this.swigValue+1;
1287    }
1288
1289    private final int swigValue;
1290
1291    private static class SwigNext {
1292      private static int next = 0;
1293    }
1294  }
1295
1296}