]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/avcodec.h
avoid name clash
[ffmpeg] / libavcodec / avcodec.h
index c4baf7f96810eede9337e6cb519245e4df4fc7b5..9f80071aa3f8b413aad9dcf11f7f617bce0f0db5 100644 (file)
@@ -5,8 +5,8 @@
 
 #define LIBAVCODEC_VERSION_INT 0x000406
 #define LIBAVCODEC_VERSION     "0.4.6"
-#define LIBAVCODEC_BUILD       4630
-#define LIBAVCODEC_BUILD_STR   "4630"
+#define LIBAVCODEC_BUILD       4632
+#define LIBAVCODEC_BUILD_STR   "4632"
 
 enum CodecID {
     CODEC_ID_NONE, 
@@ -30,6 +30,8 @@ enum CodecID {
     CODEC_ID_SVQ1,
     CODEC_ID_DVVIDEO,
     CODEC_ID_DVAUDIO,
+    CODEC_ID_WMAV1,
+    CODEC_ID_WMAV2,
 
     /* various pcm "codecs" */
     CODEC_ID_PCM_S16LE,
@@ -64,7 +66,8 @@ enum PixelFormat {
     PIX_FMT_YUV444P,
     PIX_FMT_RGBA32,
     PIX_FMT_BGRA32,
-    PIX_FMT_YUV410P
+    PIX_FMT_YUV410P,
+    PIX_FMT_YUV411P
 };
 
 /* currently unused, may be used if 24/32 bits samples ever supported */
@@ -73,7 +76,7 @@ enum SampleFormat {
 };
 
 /* in bytes */
-#define AVCODEC_MAX_AUDIO_FRAME_SIZE 18432
+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 131072
 
 /* motion estimation type, EPZS by default */
 enum Motion_Est_ID {
@@ -179,6 +182,7 @@ typedef struct AVCodecContext {
      * some codecs need / can use extra-data like huffman tables
      * mjpeg: huffman tables
      * rv10: additional flags
+     * mpeg4: global headers (they can be in the bitstream or here)
      * encoding: set/allocated/freed by lavc.
      * decoding: set/allocated/freed by user.
      */
@@ -413,12 +417,20 @@ typedef struct AVCodecContext {
     unsigned int codec_tag;  /* codec tag, only used if unknown codec */
     
     /**
-     * workaround bugs in encoders which cannot be detected automatically
+     * workaround bugs in encoders which sometimes cannot be detected automatically
      * encoding: unused
      * decoding: set by user
      */
     int workaround_bugs;
-    
+#define FF_BUG_AUTODETECT       1  //autodetection
+#define FF_BUG_OLD_MSMPEG4      2
+#define FF_BUG_XVID_ILACE       4
+#define FF_BUG_UMP4             8
+#define FF_BUG_NO_PADDING       16
+#define FF_BUG_AC_VLC           32
+#define FF_BUG_QPEL_CHROMA      64
+//#define FF_BUG_FAKE_SCALABILITY 16 //autodetection should work 100%
+        
     /**
      * encoding: set by user
      * decoding: unused
@@ -493,7 +505,7 @@ typedef struct AVCodecContext {
      * encoding: unused
      * decoding: set by user
      */
-    void (*get_buffer_callback)(struct AVCodecContext *c, int width, int height, int pict_type);
+    int (*get_buffer_callback)(struct AVCodecContext *c, int width, int height, int pict_type);
 
     /**
      * is 1 if the decoded stream contains b frames, 0 otherwise
@@ -516,7 +528,7 @@ typedef struct AVCodecContext {
      */
     int dr_ip_buffer_count;
     
-    int block_align; /* currently only for adpcm codec in wav/avi */
+    int block_align; /* used by some WAV based audio codecs */
     
     int parse_only; /* decoding only: if true, only parsing is done
                        (function avcodec_parse_frame()). The frame
@@ -714,6 +726,15 @@ typedef struct AVCodecContext {
      */
     int *slice_offset;
 
+    /**
+     * error concealment flags
+     * encoding: unused
+     * decoding: set by user
+     */
+    int error_concealment;
+#define FF_EC_GUESS_MVS   1
+#define FF_EC_DEBLOCK     2
+
     //FIXME this should be reordered after kabis API is finished ...
     //TODO kill kabi
     /*
@@ -816,6 +837,8 @@ extern AVCodec rv10_decoder;
 extern AVCodec svq1_decoder;
 extern AVCodec dvvideo_decoder;
 extern AVCodec dvaudio_decoder;
+extern AVCodec wmav1_decoder;
+extern AVCodec wmav2_decoder;
 extern AVCodec mjpeg_decoder;
 extern AVCodec mp2_decoder;
 extern AVCodec mp3_decoder;