Commit 1f6b6e50 authored by Michael Niedermayer's avatar Michael Niedermayer

single coefficient elimination

error concealment / error resilience
b_quant_offset (unfinished, should be 0 for now)

Originally committed as revision 646 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 9effc0c7
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
#define LIBAVCODEC_VERSION_INT 0x000406 #define LIBAVCODEC_VERSION_INT 0x000406
#define LIBAVCODEC_VERSION "0.4.6" #define LIBAVCODEC_VERSION "0.4.6"
#define LIBAVCODEC_BUILD 4610 #define LIBAVCODEC_BUILD 4611
#define LIBAVCODEC_BUILD_STR "4610" #define LIBAVCODEC_BUILD_STR "4611"
enum CodecID { enum CodecID {
CODEC_ID_NONE, CODEC_ID_NONE,
...@@ -90,6 +90,7 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG, ...@@ -90,6 +90,7 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
#define CODEC_FLAG_QPEL 0x0010 /* use qpel MC */ #define CODEC_FLAG_QPEL 0x0010 /* use qpel MC */
#define CODEC_FLAG_GMC 0x0020 /* use GMC */ #define CODEC_FLAG_GMC 0x0020 /* use GMC */
#define CODEC_FLAG_TYPE 0x0040 /* fixed I/P frame type, from avctx->key_frame */ #define CODEC_FLAG_TYPE 0x0040 /* fixed I/P frame type, from avctx->key_frame */
#define CODEC_FLAG_PART 0x0080 /* use data partitioning */
/* parent program gurantees that the input for b-frame containing streams is not written to /* parent program gurantees that the input for b-frame containing streams is not written to
for at least s->max_b_frames+1 frames, if this is not set than the input will be copied */ for at least s->max_b_frames+1 frames, if this is not set than the input will be copied */
#define CODEC_FLAG_INPUT_PRESERVED 0x0100 #define CODEC_FLAG_INPUT_PRESERVED 0x0100
...@@ -188,7 +189,7 @@ typedef struct AVCodecContext { ...@@ -188,7 +189,7 @@ typedef struct AVCodecContext {
void *priv_data; void *priv_data;
/* The following data is for RTP friendly coding */ /* The following data is for RTP friendly coding */
/* By now only H.263/H.263+ coder honours this */ /* By now only H.263/H.263+/MPEG4 coder honours this */
int rtp_mode; /* 1 for activate RTP friendly-mode */ int rtp_mode; /* 1 for activate RTP friendly-mode */
/* highers numbers represent more error-prone */ /* highers numbers represent more error-prone */
/* enviroments, by now just "1" exist */ /* enviroments, by now just "1" exist */
...@@ -233,6 +234,13 @@ typedef struct AVCodecContext { ...@@ -233,6 +234,13 @@ typedef struct AVCodecContext {
unsigned int codec_tag; /* codec tag, only used if unknown codec */ unsigned int codec_tag; /* codec tag, only used if unknown codec */
int workaround_bugs; /* workaround bugs in encoders which cannot be detected automatically */ int workaround_bugs; /* workaround bugs in encoders which cannot be detected automatically */
int luma_elim_threshold;
int chroma_elim_threshold;
int strict_std_compliance; /* strictly follow the std (MPEG4, ...) */
float b_quant_offset;/* qscale offset between ips and b frames, not implemented yet */
int error_resilience;
//FIXME this should be reordered after kabis API is finished ...
/* /*
Note: Below are located reserved fields for further usage Note: Below are located reserved fields for further usage
It requires for ABI !!! It requires for ABI !!!
...@@ -246,7 +254,7 @@ typedef struct AVCodecContext { ...@@ -246,7 +254,7 @@ typedef struct AVCodecContext {
ull_res6,ull_res7,ull_res8,ull_res9,ull_res10,ull_res11,ull_res12; ull_res6,ull_res7,ull_res8,ull_res9,ull_res10,ull_res11,ull_res12;
float float
flt_res0,flt_res1,flt_res2,flt_res3,flt_res4,flt_res5, flt_res0,flt_res1,flt_res2,flt_res3,flt_res4,flt_res5,
flt_res6,flt_res7,flt_res8,flt_res9,flt_res10,flt_res11,flt_res12; flt_res6,flt_res7,flt_res8,flt_res9,flt_res10,flt_res11;
void void
*ptr_res0,*ptr_res1,*ptr_res2,*ptr_res3,*ptr_res4,*ptr_res5, *ptr_res0,*ptr_res1,*ptr_res2,*ptr_res3,*ptr_res4,*ptr_res5,
*ptr_res6,*ptr_res7,*ptr_res8,*ptr_res9,*ptr_res10,*ptr_res11,*ptr_res12; *ptr_res6,*ptr_res7,*ptr_res8,*ptr_res9,*ptr_res10,*ptr_res11,*ptr_res12;
...@@ -255,7 +263,7 @@ typedef struct AVCodecContext { ...@@ -255,7 +263,7 @@ typedef struct AVCodecContext {
ul_res6,ul_res7,ul_res8,ul_res9,ul_res10,ul_res11,ul_res12; ul_res6,ul_res7,ul_res8,ul_res9,ul_res10,ul_res11,ul_res12;
unsigned int unsigned int
ui_res0,ui_res1,ui_res2,ui_res3,ui_res4,ui_res5, ui_res0,ui_res1,ui_res2,ui_res3,ui_res4,ui_res5,
ui_res6,ui_res7,ui_res8,ui_res9,ui_res10,ui_res11; ui_res6,ui_res7;
unsigned short int unsigned short int
us_res0,us_res1,us_res2,us_res3,us_res4,us_res5, us_res0,us_res1,us_res2,us_res3,us_res4,us_res5,
us_res6,us_res7,us_res8,us_res9,us_res10,us_res11,us_res12; us_res6,us_res7,us_res8,us_res9,us_res10,us_res11,us_res12;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment