summaryrefslogtreecommitdiff
path: root/libavcodec/mpegvideo.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2006-01-24 21:57:26 +0000
committerMichael Niedermayer <michaelni@gmx.at>2006-01-24 21:57:26 +0000
commit64b7c5b6f6cab1f1332b0886ce0ab0fe2ea423af (patch)
treeec7a537e31707883477f4d01cdffdfc1a8e2f731 /libavcodec/mpegvideo.h
parent767b49a56e56151babde2011cbefeec4968f949f (diff)
xvid ratecontrol support
Originally committed as revision 4894 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.h')
-rw-r--r--libavcodec/mpegvideo.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index d9899ac7de..d45dbdad41 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -83,12 +83,14 @@ typedef struct RateControlEntry{
int i_tex_bits;
int p_tex_bits;
int misc_bits;
+ int header_bits;
uint64_t expected_bits;
int new_pict_type;
float new_qscale;
int mc_mb_var_sum;
int mb_var_sum;
int i_count;
+ int skip_count;
int f_code;
int b_code;
}RateControlEntry;
@@ -116,6 +118,9 @@ typedef struct RateControlContext{
uint64_t qscale_sum[5];
int frame_count[5];
int last_non_b_pict_type;
+
+ void *non_lavc_opaque; ///< context for non lavc rc code (for example xvid)
+ float dry_run_qscale; ///< for xvid rc
}RateControlContext;
/**
@@ -983,4 +988,8 @@ double ff_eval(char *s, double *const_value, const char **const_name,
int ff_vbv_update(MpegEncContext *s, int frame_size);
void ff_get_2pass_fcode(MpegEncContext *s);
+int ff_xvid_rate_control_init(MpegEncContext *s);
+void ff_xvid_rate_control_uninit(MpegEncContext *s);
+float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run);
+
#endif /* AVCODEC_MPEGVIDEO_H */