---
doc/APIchanges | 4 ++++
libavcodec/avcodec.h | 8 +++++---
libavcodec/mpegvideo.h | 6 +++++-
libavcodec/mpegvideo_enc.c | 11 +++++++++--
libavcodec/options_table.h | 2 ++
libavcodec/version.h | 5 ++++-
6 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 561c828..dc269d6 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,10 @@ libavutil: 2012-10-22
API changes, most recent first:
+2013-10-xx - xxxxxxx - lavc 55.23.0 - avcodec.h
+ Deprecate AVCodecContext.error_rate, it is replaced by the 'error_rate'
+ private option of the mpegvideo encoder family.
+
2013-08-xx - xxxxxxx - lavu 52.17.0 - avframe.h
Add AVFrame.flags and AV_FRAME_FLAG_CORRUPT.
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index d42febf..102933a 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2665,12 +2665,14 @@ typedef struct AVCodecContext {
uint8_t *subtitle_header;
int subtitle_header_size;
+#if FF_API_ERROR_RATE
/**
- * Simulates errors in the bitstream to test error concealment.
- * - encoding: Set by user.
- * - decoding: unused
+ * @deprecated use the 'error_rate' private AVOption of the mpegvideo
+ * encoders
*/
+ attribute_deprecated
int error_rate;
+#endif
#if FF_API_CODEC_PKT
/**
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index 78792cf..270c6e2 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -725,6 +725,8 @@ typedef struct MpegEncContext {
int context_reinit;
ERContext er;
+
+ int error_rate;
} MpegEncContext;
#define REBASE_PICTURE(pic, new_ctx, old_ctx) \
@@ -750,7 +752,9 @@ typedef struct MpegEncContext {
FF_MPV_OFFSET(luma_elim_threshold), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN,
INT_MAX, FF_MPV_OPT_FLAGS },\
{ "chroma_elim_threshold", "single coefficient elimination threshold for
chrominance (negative values also consider dc coefficient)",\
FF_MPV_OFFSET(chroma_elim_threshold), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN,
INT_MAX, FF_MPV_OPT_FLAGS },\
-{ "quantizer_noise_shaping", NULL,
FF_MPV_OFFSET(quantizer_noise_shaping), AV_OPT_TYPE_INT, { .i64 = 0 }, 0,
INT_MAX, FF_MPV_OPT_FLAGS },
+{ "quantizer_noise_shaping", NULL,
FF_MPV_OFFSET(quantizer_noise_shaping), AV_OPT_TYPE_INT, { .i64 = 0 }, 0,
INT_MAX, FF_MPV_OPT_FLAGS },\
+{ "error_rate", "Simulate errors in the bitstream to test error concealment.",
\
+
FF_MPV_OFFSET(error_rate), AV_OPT_TYPE_INT, { .i64 = 0 }, 0,
INT_MAX, FF_MPV_OPT_FLAGS },
extern const AVOption ff_mpv_generic_options[];
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index c245996..0d7005e 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -768,6 +768,13 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
if (ff_rate_control_init(s) < 0)
return -1;
+#if FF_API_ERROR_RATE
+ FF_DISABLE_DEPRECATION_WARNINGS
+ if (avctx->error_rate)
+ s->error_rate = avctx->error_rate;
+ FF_ENABLE_DEPRECATION_WARNINGS;
+#endif
+
return 0;
}
@@ -2420,9 +2427,9 @@ static int encode_thread(AVCodecContext *c, void *arg){
assert((put_bits_count(&s->pb)&7) == 0);
current_packet_size= put_bits_ptr(&s->pb) - s->ptr_lastgob;
- if(s->avctx->error_rate && s->resync_mb_x + s->resync_mb_y
> 0){
+ if (s->error_rate && s->resync_mb_x + s->resync_mb_y > 0) {
int r= put_bits_count(&s->pb)/8 + s->picture_number +
16 + s->mb_x + s->mb_y;
- int d= 100 / s->avctx->error_rate;
+ int d = 100 / s->error_rate;
if(r % d == 0){
current_packet_size=0;
s->pb.buf_ptr= s->ptr_lastgob;
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 853aa62..dbd6007 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -283,7 +283,9 @@ static const AVOption avcodec_options[] = {
{"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.i64 =
DEFAULT }, INT_MIN, INT_MAX, V|E},
{"rc_init_occupancy", "number of bits which should be loaded into the rc
buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy),
AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
{"flags2", NULL, OFFSET(flags2), AV_OPT_TYPE_FLAGS, {.i64 = DEFAULT}, 0,
UINT_MAX, V|A|E|D, "flags2"},
+#if FF_API_ERROR_RATE
{"error", NULL, OFFSET(error_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT },
INT_MIN, INT_MAX, V|E},
+#endif
{"threads", NULL, OFFSET(thread_count), AV_OPT_TYPE_INT, {.i64 = 1 }, 0,
INT_MAX, V|E|D, "threads"},
{"auto", "autodetect a suitable number of threads to use", 0,
AV_OPT_TYPE_CONST, {.i64 = 0 }, INT_MIN, INT_MAX, V|E|D, "threads"},
{"me_threshold", "motion estimation threshold", OFFSET(me_threshold),
AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 5e87841..9e502b6 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -27,7 +27,7 @@
*/
#define LIBAVCODEC_VERSION_MAJOR 55
-#define LIBAVCODEC_VERSION_MINOR 24
+#define LIBAVCODEC_VERSION_MINOR 25
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -94,5 +94,8 @@
#ifndef FF_API_CODEC_PKT
#define FF_API_CODEC_PKT (LIBAVCODEC_VERSION_MAJOR < 56)
#endif
+#ifndef FF_API_ERROR_RATE
+#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 56)
+#endif
#endif /* AVCODEC_VERSION_H */
--
1.7.10.4
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel