avcodec: move mpeg4 profiles to profiles.h

Also bump micro version after the recent option changes.

Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2020-05-10 21:58:35 +02:00
parent ebb770d3ab
commit 82f9eb6f6c
6 changed files with 33 additions and 32 deletions

View File

@ -837,21 +837,8 @@ Set number of macroblock rows at the bottom which are skipped.
@item profile @var{integer} (@emph{encoding,audio,video}) @item profile @var{integer} (@emph{encoding,audio,video})
Possible values: Set encoder codec profile. Default value is @samp{unknown}. Encoder specific
@table @samp profiles are documented in the relevant encoder documentation.
@item unknown
@item mpeg4_sp
@item mpeg4_core
@item mpeg4_main
@item mpeg4_asp
@end table
Encoder specific profiles are documented in the relevant encoder documentation.
@item level @var{integer} (@emph{encoding,audio,video}) @item level @var{integer} (@emph{encoding,audio,video})

View File

@ -27,6 +27,7 @@
#include "mpegvideo.h" #include "mpegvideo.h"
#include "h263.h" #include "h263.h"
#include "mpeg4video.h" #include "mpeg4video.h"
#include "profiles.h"
/* The uni_DCtab_* tables below contain unified bits+length tables to encode DC /* The uni_DCtab_* tables below contain unified bits+length tables to encode DC
* differences in MPEG-4. Unified in the sense that the specification specifies * differences in MPEG-4. Unified in the sense that the specification specifies
@ -1376,6 +1377,7 @@ static const AVOption options[] = {
{ "data_partitioning", "Use data partitioning.", OFFSET(data_partitioning), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, { "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 }, { "alternate_scan", "Enable alternate scantable.", OFFSET(alternate_scan), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE },
FF_MPV_COMMON_OPTS FF_MPV_COMMON_OPTS
FF_MPEG4_PROFILE_OPTS
{ NULL }, { NULL },
}; };

View File

@ -263,10 +263,6 @@ static const AVOption avcodec_options[] = {
{"skip_bottom", "number of macroblock rows at the bottom which are skipped", OFFSET(skip_bottom), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|D}, {"skip_bottom", "number of macroblock rows at the bottom which are skipped", OFFSET(skip_bottom), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|D},
{"profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT, {.i64 = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E|CC, "avctx.profile"}, {"profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT, {.i64 = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E|CC, "avctx.profile"},
{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "avctx.profile"}, {"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "avctx.profile"},
{"mpeg4_sp", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_SIMPLE }, INT_MIN, INT_MAX, V|E, "avctx.profile"},
{"mpeg4_core", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_CORE }, INT_MIN, INT_MAX, V|E, "avctx.profile"},
{"mpeg4_main", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_MAIN }, INT_MIN, INT_MAX, V|E, "avctx.profile"},
{"mpeg4_asp", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_MPEG4_ADVANCED_SIMPLE }, INT_MIN, INT_MAX, V|E, "avctx.profile"},
{"main10", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_HEVC_MAIN_10 }, INT_MIN, INT_MAX, V|E, "avctx.profile"}, {"main10", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_PROFILE_HEVC_MAIN_10 }, INT_MIN, INT_MAX, V|E, "avctx.profile"},
{"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"}, {"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},
{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"}, {"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_LEVEL_UNKNOWN }, INT_MIN, INT_MAX, V|A|E, "level"},

View File

@ -37,6 +37,12 @@
FF_AVCTX_PROFILE_OPTION("mpeg2_aac_low", NULL, AUDIO, FF_PROFILE_MPEG2_AAC_LOW)\ FF_AVCTX_PROFILE_OPTION("mpeg2_aac_low", NULL, AUDIO, FF_PROFILE_MPEG2_AAC_LOW)\
FF_AVCTX_PROFILE_OPTION("mpeg2_aac_he", NULL, AUDIO, FF_PROFILE_MPEG2_AAC_HE)\ FF_AVCTX_PROFILE_OPTION("mpeg2_aac_he", NULL, AUDIO, FF_PROFILE_MPEG2_AAC_HE)\
#define FF_MPEG4_PROFILE_OPTS \
FF_AVCTX_PROFILE_OPTION("mpeg4_sp", NULL, VIDEO, FF_PROFILE_MPEG4_SIMPLE)\
FF_AVCTX_PROFILE_OPTION("mpeg4_core", NULL, VIDEO, FF_PROFILE_MPEG4_CORE)\
FF_AVCTX_PROFILE_OPTION("mpeg4_main", NULL, VIDEO, FF_PROFILE_MPEG4_MAIN)\
FF_AVCTX_PROFILE_OPTION("mpeg4_asp", NULL, VIDEO, FF_PROFILE_MPEG4_ADVANCED_SIMPLE)\
extern const AVProfile ff_aac_profiles[]; extern const AVProfile ff_aac_profiles[];
extern const AVProfile ff_dca_profiles[]; extern const AVProfile ff_dca_profiles[];
extern const AVProfile ff_dnxhd_profiles[]; extern const AVProfile ff_dnxhd_profiles[];

View File

@ -29,6 +29,7 @@
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
#include "libavutil/pixfmt.h" #include "libavutil/pixfmt.h"
#include "libavutil/opt.h" #include "libavutil/opt.h"
#include "profiles.h"
#include "v4l2_context.h" #include "v4l2_context.h"
#include "v4l2_m2m.h" #include "v4l2_m2m.h"
#include "v4l2_fmt.h" #include "v4l2_fmt.h"
@ -370,10 +371,19 @@ static av_cold int v4l2_encode_close(AVCodecContext *avctx)
#define OFFSET(x) offsetof(V4L2m2mPriv, x) #define OFFSET(x) offsetof(V4L2m2mPriv, x)
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM #define FLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
#define V4L_M2M_CAPTURE_OPTS \
V4L_M2M_DEFAULT_OPTS,\
{ "num_capture_buffers", "Number of buffers in the capture context", \
OFFSET(num_capture_buffers), AV_OPT_TYPE_INT, {.i64 = 4 }, 4, INT_MAX, FLAGS }
static const AVOption mpeg4_options[] = {
V4L_M2M_CAPTURE_OPTS,
FF_MPEG4_PROFILE_OPTS
{ NULL },
};
static const AVOption options[] = { static const AVOption options[] = {
V4L_M2M_DEFAULT_OPTS, V4L_M2M_CAPTURE_OPTS,
{ "num_capture_buffers", "Number of buffers in the capture context",
OFFSET(num_capture_buffers), AV_OPT_TYPE_INT, {.i64 = 4 }, 4, INT_MAX, FLAGS },
{ NULL }, { NULL },
}; };
@ -383,16 +393,16 @@ static const AVCodecDefault v4l2_m2m_defaults[] = {
{ NULL }, { NULL },
}; };
#define M2MENC_CLASS(NAME) \ #define M2MENC_CLASS(NAME, OPTIONS_NAME) \
static const AVClass v4l2_m2m_ ## NAME ## _enc_class = { \ static const AVClass v4l2_m2m_ ## NAME ## _enc_class = { \
.class_name = #NAME "_v4l2m2m_encoder", \ .class_name = #NAME "_v4l2m2m_encoder", \
.item_name = av_default_item_name, \ .item_name = av_default_item_name, \
.option = options, \ .option = OPTIONS_NAME, \
.version = LIBAVUTIL_VERSION_INT, \ .version = LIBAVUTIL_VERSION_INT, \
}; };
#define M2MENC(NAME, LONGNAME, CODEC) \ #define M2MENC(NAME, LONGNAME, OPTIONS_NAME, CODEC) \
M2MENC_CLASS(NAME) \ M2MENC_CLASS(NAME, OPTIONS_NAME) \
AVCodec ff_ ## NAME ## _v4l2m2m_encoder = { \ AVCodec ff_ ## NAME ## _v4l2m2m_encoder = { \
.name = #NAME "_v4l2m2m" , \ .name = #NAME "_v4l2m2m" , \
.long_name = NULL_IF_CONFIG_SMALL("V4L2 mem2mem " LONGNAME " encoder wrapper"), \ .long_name = NULL_IF_CONFIG_SMALL("V4L2 mem2mem " LONGNAME " encoder wrapper"), \
@ -409,8 +419,8 @@ static const AVCodecDefault v4l2_m2m_defaults[] = {
.wrapper_name = "v4l2m2m", \ .wrapper_name = "v4l2m2m", \
}; };
M2MENC(mpeg4,"MPEG4", AV_CODEC_ID_MPEG4); M2MENC(mpeg4,"MPEG4", mpeg4_options, AV_CODEC_ID_MPEG4);
M2MENC(h263, "H.263", AV_CODEC_ID_H263); M2MENC(h263, "H.263", options, AV_CODEC_ID_H263);
M2MENC(h264, "H.264", AV_CODEC_ID_H264); M2MENC(h264, "H.264", options, AV_CODEC_ID_H264);
M2MENC(hevc, "HEVC", AV_CODEC_ID_HEVC); M2MENC(hevc, "HEVC", options, AV_CODEC_ID_HEVC);
M2MENC(vp8, "VP8", AV_CODEC_ID_VP8); M2MENC(vp8, "VP8", options, AV_CODEC_ID_VP8);

View File

@ -29,7 +29,7 @@
#define LIBAVCODEC_VERSION_MAJOR 58 #define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 87 #define LIBAVCODEC_VERSION_MINOR 87
#define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \