On Fri, Apr 03, 2015 at 06:23:05PM +0200, Timo Rothenpieler wrote: > --- > libavcodec/nvenc.c | 111 > ++++++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 110 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c > index f77a982..d4e0a39 100644 > --- a/libavcodec/nvenc.c > +++ b/libavcodec/nvenc.c > @@ -129,6 +129,12 @@ typedef struct NvencDynLoadFunctions > #endif > } NvencDynLoadFunctions; > > +typedef struct NvencValuePair > +{ > + const char *str; > + uint32_t num; > +} NvencValuePair; > + > typedef struct NvencContext > { > AVClass *avclass; > @@ -152,11 +158,76 @@ typedef struct NvencContext > > char *preset; > char *profile; > + char *level; > + char *tier; > int cbr; > int twopass; > int gpu; > } NvencContext; > > +static const NvencValuePair nvenc_h264_level_pairs[] = { > + { "auto", NV_ENC_LEVEL_AUTOSELECT }, > + { "1", NV_ENC_LEVEL_H264_1 }, > + { "1.0", NV_ENC_LEVEL_H264_1 }, > + { "1b", NV_ENC_LEVEL_H264_1b }, > + { "1.0b", NV_ENC_LEVEL_H264_1b }, > + { "1.1", NV_ENC_LEVEL_H264_11 }, > + { "1.2", NV_ENC_LEVEL_H264_12 }, > + { "1.3", NV_ENC_LEVEL_H264_13 }, > + { "2", NV_ENC_LEVEL_H264_2 }, > + { "2.0", NV_ENC_LEVEL_H264_2 }, > + { "2.1", NV_ENC_LEVEL_H264_21 }, > + { "2.2", NV_ENC_LEVEL_H264_22 }, > + { "3", NV_ENC_LEVEL_H264_3 }, > + { "3.0", NV_ENC_LEVEL_H264_3 }, > + { "3.1", NV_ENC_LEVEL_H264_31 }, > + { "3.2", NV_ENC_LEVEL_H264_32 }, > + { "4", NV_ENC_LEVEL_H264_4 }, > + { "4.0", NV_ENC_LEVEL_H264_4 }, > + { "4.1", NV_ENC_LEVEL_H264_41 }, > + { "4.2", NV_ENC_LEVEL_H264_42 }, > + { "5", NV_ENC_LEVEL_H264_5 }, > + { "5.0", NV_ENC_LEVEL_H264_5 }, > + { "5.1", NV_ENC_LEVEL_H264_51 }, > + { NULL } > +}; > +
You can use AV_OPT_CONST instead of this. [...] -- Clément B.
pgprRNJNQMim6.pgp
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel