mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-03-25 04:19:05 +00:00
avcodec/mpegvideo: Deprecate mpeg_quant option for codecs != MPEG-4
mpeg_quant may only be set for MPEG-4 and MPEG-2, yet for the latter it is no option as the code acts as if it were always set. So deprecate the option for all codecs for which it makes no sense. Furthermore, given that the code already errors out if the option is set for a codec that doesn't support it we can restrict the range of the option for all these codecs without breaking something. This means that the checks for whether mpeg_quant is set for these codecs can be removed as soon as AVCodecContext.mpeg_quant is removed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
dff774042a
commit
42c895ef5c
@ -593,6 +593,9 @@ FF_MPV_COMMON_OPTS
|
||||
{ "huffman", "Huffman table strategy", OFFSET(huffman), AV_OPT_TYPE_INT, { .i64 = HUFFMAN_TABLE_OPTIMAL }, 0, NB_HUFFMAN_TABLE_OPTION - 1, VE, "huffman" },
|
||||
{ "default", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = HUFFMAN_TABLE_DEFAULT }, INT_MIN, INT_MAX, VE, "huffman" },
|
||||
{ "optimal", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = HUFFMAN_TABLE_OPTIMAL }, INT_MIN, INT_MAX, VE, "huffman" },
|
||||
#if FF_API_MPEGVIDEO_OPTS
|
||||
FF_MPV_DEPRECATED_MPEG_QUANT_OPT
|
||||
#endif
|
||||
{ NULL},
|
||||
};
|
||||
|
||||
|
@ -1152,6 +1152,9 @@ av_cold void ff_mpeg1_encode_init(MpegEncContext *s)
|
||||
static const AVOption mpeg1_options[] = {
|
||||
COMMON_OPTS
|
||||
FF_MPV_COMMON_OPTS
|
||||
#if FF_API_MPEGVIDEO_OPTS
|
||||
FF_MPV_DEPRECATED_MPEG_QUANT_OPT
|
||||
#endif
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
@ -1179,6 +1182,10 @@ static const AVOption mpeg2_options[] = {
|
||||
{ LEVEL("low", 10) },
|
||||
#undef LEVEL
|
||||
FF_MPV_COMMON_OPTS
|
||||
#if FF_API_MPEGVIDEO_OPTS
|
||||
{ "mpeg_quant", "Deprecated, does nothing", OFFSET(mpeg_quant),
|
||||
AV_OPT_TYPE_INT, {.i64 = 1 }, 0, 1, VE | AV_OPT_FLAG_DEPRECATED },
|
||||
#endif
|
||||
FF_MPEG2_PROFILE_OPTS
|
||||
{ NULL },
|
||||
};
|
||||
|
@ -1375,6 +1375,8 @@ void ff_mpeg4_encode_video_packet_header(MpegEncContext *s)
|
||||
static const AVOption options[] = {
|
||||
{ "data_partitioning", "Use data partitioning.", OFFSET(data_partitioning), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE },
|
||||
{ "alternate_scan", "Enable alternate scantable.", OFFSET(alternate_scan), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE },
|
||||
{ "mpeg_quant", "Use MPEG quantizers instead of H.263",
|
||||
OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, VE },
|
||||
FF_MPV_COMMON_OPTS
|
||||
FF_MPEG4_PROFILE_OPTS
|
||||
{ NULL },
|
||||
|
@ -672,7 +672,6 @@ FF_MPV_OPT_CMP_FUNC, \
|
||||
{"skip_cmp", "Frame skip compare function", FF_MPV_OFFSET(frame_skip_cmp), AV_OPT_TYPE_INT, {.i64 = FF_CMP_DCTMAX }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \
|
||||
{"sc_threshold", "Scene change threshold", FF_MPV_OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
|
||||
{"noise_reduction", "Noise reduction", FF_MPV_OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
|
||||
{"mpeg_quant", "Use MPEG quantizers instead of H.263", FF_MPV_OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, FF_MPV_OPT_FLAGS }, \
|
||||
{"ps", "RTP payload size in bytes", FF_MPV_OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
|
||||
{"mepc", "Motion estimation bitrate penalty compensation (1.0 = 256)", FF_MPV_OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT, {.i64 = 256 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
|
||||
{"mepre", "pre motion estimation", FF_MPV_OFFSET(me_pre), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \
|
||||
@ -680,6 +679,11 @@ FF_MPV_OPT_CMP_FUNC, \
|
||||
{"a53cc", "Use A53 Closed Captions (if available)", FF_MPV_OFFSET(a53_cc), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, FF_MPV_OPT_FLAGS }, \
|
||||
FF_MPV_RC_STRATEGY_OPTS
|
||||
|
||||
#if FF_API_MPEGVIDEO_OPTS
|
||||
#define FF_MPV_DEPRECATED_MPEG_QUANT_OPT \
|
||||
{ "mpeg_quant", "Deprecated, does nothing", FF_MPV_OFFSET(mpeg_quant), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 0, FF_MPV_OPT_FLAGS | AV_OPT_FLAG_DEPRECATED },
|
||||
#endif
|
||||
|
||||
extern const AVOption ff_mpv_generic_options[];
|
||||
|
||||
/**
|
||||
|
@ -86,6 +86,9 @@ static uint8_t default_fcode_tab[MAX_MV * 2 + 1];
|
||||
|
||||
const AVOption ff_mpv_generic_options[] = {
|
||||
FF_MPV_COMMON_OPTS
|
||||
#if FF_API_MPEGVIDEO_OPTS
|
||||
FF_MPV_DEPRECATED_MPEG_QUANT_OPT
|
||||
#endif
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
@ -560,15 +563,14 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
||||
if (avctx->mpeg_quant)
|
||||
s->mpeg_quant = 1;
|
||||
FF_ENABLE_DEPRECATION_WARNINGS
|
||||
#endif
|
||||
|
||||
// FIXME mpeg2 uses that too
|
||||
if (s->mpeg_quant && ( s->codec_id != AV_CODEC_ID_MPEG4
|
||||
&& s->codec_id != AV_CODEC_ID_MPEG2VIDEO)) {
|
||||
av_log(avctx, AV_LOG_ERROR,
|
||||
"mpeg2 style quantization not supported by codec\n");
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((s->mpv_flags & FF_MPV_FLAG_CBP_RD) && !avctx->trellis) {
|
||||
av_log(avctx, AV_LOG_ERROR, "CBP RD needs trellis quant\n");
|
||||
@ -4708,6 +4710,9 @@ static const AVOption h263_options[] = {
|
||||
{ "obmc", "use overlapped block motion compensation.", OFFSET(obmc), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE },
|
||||
{ "mb_info", "emit macroblock info for RFC 2190 packetization, the parameter value is the maximum payload size", OFFSET(mb_info), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },
|
||||
FF_MPV_COMMON_OPTS
|
||||
#if FF_API_MPEGVIDEO_OPTS
|
||||
FF_MPV_DEPRECATED_MPEG_QUANT_OPT
|
||||
#endif
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
@ -4738,6 +4743,9 @@ static const AVOption h263p_options[] = {
|
||||
{ "obmc", "use overlapped block motion compensation.", OFFSET(obmc), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE },
|
||||
{ "structured_slices", "Write slice start position at every GOB header instead of just GOB number.", OFFSET(h263_slice_structured), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE},
|
||||
FF_MPV_COMMON_OPTS
|
||||
#if FF_API_MPEGVIDEO_OPTS
|
||||
FF_MPV_DEPRECATED_MPEG_QUANT_OPT
|
||||
#endif
|
||||
{ NULL },
|
||||
};
|
||||
static const AVClass h263p_class = {
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "libavutil/version.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 58
|
||||
#define LIBAVCODEC_VERSION_MINOR 135
|
||||
#define LIBAVCODEC_VERSION_MINOR 136
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
@ -168,5 +168,8 @@
|
||||
#ifndef FF_API_AVCTX_TIMEBASE
|
||||
#define FF_API_AVCTX_TIMEBASE (LIBAVCODEC_VERSION_MAJOR < 60)
|
||||
#endif
|
||||
#ifndef FF_API_MPEGVIDEO_OPTS
|
||||
#define FF_API_MPEGVIDEO_OPTS (LIBAVCODEC_VERSION_MAJOR < 60)
|
||||
#endif
|
||||
|
||||
#endif /* AVCODEC_VERSION_H */
|
||||
|
Loading…
Reference in New Issue
Block a user