Commit b71e4d87 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '8941971a'

* commit '8941971a':
  lavc: make error_rate a private option of mpegvideo encoders

Conflicts:
	libavcodec/options_table.h
	libavcodec/version.h
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 31c09b76 8941971a
...@@ -15,6 +15,10 @@ libavutil: 2012-10-22 ...@@ -15,6 +15,10 @@ libavutil: 2012-10-22
API changes, most recent first: API changes, most recent first:
2013-10-xx - xxxxxxx - lavc 55.27.0 - avcodec.h
Deprecate AVCodecContext.error_rate, it is replaced by the 'error_rate'
private option of the mpegvideo encoder family.
2013-11-xx - xxxxxxx - lavc 55.26.0 - vdpau.h 2013-11-xx - xxxxxxx - lavc 55.26.0 - vdpau.h
Add av_vdpau_get_profile(). Add av_vdpau_get_profile().
Add av_vdpau_alloc_context(). This function must from now on be Add av_vdpau_alloc_context(). This function must from now on be
......
...@@ -2833,12 +2833,14 @@ typedef struct AVCodecContext { ...@@ -2833,12 +2833,14 @@ typedef struct AVCodecContext {
uint8_t *subtitle_header; uint8_t *subtitle_header;
int subtitle_header_size; int subtitle_header_size;
#if FF_API_ERROR_RATE
/** /**
* Simulates errors in the bitstream to test error concealment. * @deprecated use the 'error_rate' private AVOption of the mpegvideo
* - encoding: Set by user. * encoders
* - decoding: unused
*/ */
attribute_deprecated
int error_rate; int error_rate;
#endif
#if FF_API_CODEC_PKT #if FF_API_CODEC_PKT
/** /**
......
...@@ -747,6 +747,8 @@ typedef struct MpegEncContext { ...@@ -747,6 +747,8 @@ typedef struct MpegEncContext {
int context_reinit; int context_reinit;
ERContext er; ERContext er;
int error_rate;
} MpegEncContext; } MpegEncContext;
#define REBASE_PICTURE(pic, new_ctx, old_ctx) \ #define REBASE_PICTURE(pic, new_ctx, old_ctx) \
...@@ -772,7 +774,9 @@ typedef struct MpegEncContext { ...@@ -772,7 +774,9 @@ typedef struct MpegEncContext {
FF_MPV_OFFSET(luma_elim_threshold), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS },\ 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)",\ { "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 },\ 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[]; extern const AVOption ff_mpv_generic_options[];
......
...@@ -882,6 +882,13 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) ...@@ -882,6 +882,13 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
if (ff_rate_control_init(s) < 0) if (ff_rate_control_init(s) < 0)
return -1; 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; return 0;
} }
...@@ -2582,9 +2589,9 @@ static int encode_thread(AVCodecContext *c, void *arg){ ...@@ -2582,9 +2589,9 @@ static int encode_thread(AVCodecContext *c, void *arg){
av_assert2((put_bits_count(&s->pb)&7) == 0); av_assert2((put_bits_count(&s->pb)&7) == 0);
current_packet_size= put_bits_ptr(&s->pb) - s->ptr_lastgob; 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 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){ if(r % d == 0){
current_packet_size=0; current_packet_size=0;
s->pb.buf_ptr= s->ptr_lastgob; s->pb.buf_ptr= s->ptr_lastgob;
......
...@@ -295,7 +295,9 @@ static const AVOption avcodec_options[] = { ...@@ -295,7 +295,9 @@ static const AVOption avcodec_options[] = {
{"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E}, {"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}, {"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"}, {"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}, {"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|A|E|D, "threads"}, {"threads", NULL, OFFSET(thread_count), AV_OPT_TYPE_INT, {.i64 = 1 }, 0, INT_MAX, V|A|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"}, {"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}, {"me_threshold", "motion estimation threshold", OFFSET(me_threshold), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#include "libavutil/avutil.h" #include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 55 #define LIBAVCODEC_VERSION_MAJOR 55
#define LIBAVCODEC_VERSION_MINOR 42 #define LIBAVCODEC_VERSION_MINOR 43
#define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
...@@ -120,5 +120,8 @@ ...@@ -120,5 +120,8 @@
#ifndef FF_API_XVMC #ifndef FF_API_XVMC
#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 56) #define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 56)
#endif #endif
#ifndef FF_API_ERROR_RATE
#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 56)
#endif
#endif /* AVCODEC_VERSION_H */ #endif /* AVCODEC_VERSION_H */
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