mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-08-29 20:56:12 +02:00
Merge commit 'b2c31710c96fa47d9dcd40b64d39663e8957f683'
* commit 'b2c31710c96fa47d9dcd40b64d39663e8957f683': lavc: move CODEC_FLAG_NORMALIZE_AQP to mpegvideo Conflicts: libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
1851643987
@ -15,6 +15,10 @@ libavutil: 2012-10-22
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2014-04-xx - xxxxxxx - lavc 55.50.1 - avcodec.h
|
||||
Deprecate CODEC_FLAG_NORMALIZE_AQP. It is replaced by the flag "naq" in the
|
||||
"mpv_flags" private option of the mpegvideo encoders.
|
||||
|
||||
2014-04-xx - xxxxxxx - avcodec.h
|
||||
Deprecate CODEC_FLAG_INPUT_PRESERVED. Its functionality is replaced by passing
|
||||
reference-counted frames to encoders.
|
||||
|
@ -767,7 +767,13 @@ typedef struct RcOverride{
|
||||
#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding.
|
||||
#define CODEC_FLAG_TRUNCATED 0x00010000 /** Input bitstream might be truncated at a random
|
||||
location instead of only at frame boundaries. */
|
||||
#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 ///< Normalize adaptive quantization.
|
||||
#if FF_API_NORMALIZE_AQP
|
||||
/**
|
||||
* @deprecated use the flag "naq" in the "mpv_flags" private option of the
|
||||
* mpegvideo encoders
|
||||
*/
|
||||
#define CODEC_FLAG_NORMALIZE_AQP 0x00020000
|
||||
#endif
|
||||
#define CODEC_FLAG_INTERLACED_DCT 0x00040000 ///< Use interlaced DCT.
|
||||
#define CODEC_FLAG_LOW_DELAY 0x00080000 ///< Force low delay.
|
||||
#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///< Place global headers in extradata instead of every keyframe.
|
||||
|
@ -667,6 +667,7 @@ typedef struct MpegEncContext {
|
||||
#define FF_MPV_FLAG_STRICT_GOP 0x0002
|
||||
#define FF_MPV_FLAG_QP_RD 0x0004
|
||||
#define FF_MPV_FLAG_CBP_RD 0x0008
|
||||
#define FF_MPV_FLAG_NAQ 0x0010
|
||||
|
||||
#define FF_MPV_OFFSET(x) offsetof(MpegEncContext, x)
|
||||
#define FF_MPV_OPT_FLAGS (AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM)
|
||||
@ -676,6 +677,7 @@ typedef struct MpegEncContext {
|
||||
{ "strict_gop", "Strictly enforce gop size", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_STRICT_GOP }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
|
||||
{ "qp_rd", "Use rate distortion optimization for qp selection", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_QP_RD }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
|
||||
{ "cbp_rd", "use rate distortion optimization for CBP", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_CBP_RD }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
|
||||
{ "naq", "normalize adaptive quantization", 0, AV_OPT_TYPE_CONST, { .i64 = FF_MPV_FLAG_NAQ }, 0, 0, FF_MPV_OPT_FLAGS, "mpv_flags" },\
|
||||
{ "luma_elim_threshold", "single coefficient elimination threshold for luminance (negative values also consider dc coefficient)",\
|
||||
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)",\
|
||||
|
@ -890,6 +890,13 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
|
||||
FF_ENABLE_DEPRECATION_WARNINGS;
|
||||
#endif
|
||||
|
||||
#if FF_API_NORMALIZE_AQP
|
||||
FF_DISABLE_DEPRECATION_WARNINGS
|
||||
if (avctx->flags & CODEC_FLAG_NORMALIZE_AQP)
|
||||
s->mpv_flags |= FF_MPV_FLAG_NAQ;
|
||||
FF_ENABLE_DEPRECATION_WARNINGS;
|
||||
#endif
|
||||
|
||||
if (avctx->b_frame_strategy == 2) {
|
||||
for (i = 0; i < s->max_b_frames + 2; i++) {
|
||||
s->tmp_frames[i] = av_frame_alloc();
|
||||
|
@ -65,7 +65,9 @@ static const AVOption avcodec_options[] = {
|
||||
{"emu_edge", "do not draw edges", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_EMU_EDGE }, INT_MIN, INT_MAX, 0, "flags"},
|
||||
{"psnr", "error[?] variables will be set during encoding", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_PSNR }, INT_MIN, INT_MAX, V|E, "flags"},
|
||||
{"truncated", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_TRUNCATED }, INT_MIN, INT_MAX, 0, "flags"},
|
||||
#if FF_API_NORMALIZE_AQP
|
||||
{"naq", "normalize adaptive quantization", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_NORMALIZE_AQP }, INT_MIN, INT_MAX, V|E, "flags"},
|
||||
#endif
|
||||
{"ildct", "use interlaced DCT", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_INTERLACED_DCT }, INT_MIN, INT_MAX, V|E, "flags"},
|
||||
{"low_delay", "force low delay", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_LOW_DELAY }, INT_MIN, INT_MAX, V|D|E, "flags"},
|
||||
{"global_header", "place global headers in extradata instead of every keyframe", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG_GLOBAL_HEADER }, INT_MIN, INT_MAX, V|A|E, "flags"},
|
||||
|
@ -689,7 +689,7 @@ static void adaptive_quantization(MpegEncContext *s, double q)
|
||||
}
|
||||
|
||||
/* handle qmin/qmax clipping */
|
||||
if (s->flags & CODEC_FLAG_NORMALIZE_AQP) {
|
||||
if (s->mpv_flags & FF_MPV_FLAG_NAQ) {
|
||||
float factor = bits_sum / cplx_sum;
|
||||
for (i = 0; i < s->mb_num; i++) {
|
||||
float newq = q * cplx_tab[i] / bits_tab[i];
|
||||
@ -714,7 +714,7 @@ static void adaptive_quantization(MpegEncContext *s, double q)
|
||||
float newq = q * cplx_tab[i] / bits_tab[i];
|
||||
int intq;
|
||||
|
||||
if (s->flags & CODEC_FLAG_NORMALIZE_AQP) {
|
||||
if (s->mpv_flags & FF_MPV_FLAG_NAQ) {
|
||||
newq *= bits_sum / cplx_sum;
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 55
|
||||
#define LIBAVCODEC_VERSION_MINOR 60
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
#define LIBAVCODEC_VERSION_MICRO 101
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
@ -150,5 +150,8 @@
|
||||
#ifndef FF_API_INPUT_PRESERVED
|
||||
#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 57)
|
||||
#endif
|
||||
#ifndef FF_API_NORMALIZE_AQP
|
||||
#define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 57)
|
||||
#endif
|
||||
|
||||
#endif /* AVCODEC_VERSION_H */
|
||||
|
Loading…
Reference in New Issue
Block a user