diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2015-08-08 16:47:21 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-08-08 16:51:25 +0200 |
commit | 5edab1d207d211962b8b0e9ffdebf774aa6ee688 (patch) | |
tree | bc424e355483a19fe99584cc115cc5a90cef2fc1 | |
parent | 408c9cf0e21d83d21865c3e27e1c44a9da30a98c (diff) | |
download | ffmpeg-5edab1d207d211962b8b0e9ffdebf774aa6ee688.tar.gz |
cmdutils: remove sws_opts usage, simplify code
It has become unused as all code was switched to AVDictionary
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | cmdutils.c | 24 | ||||
-rw-r--r-- | cmdutils.h | 2 | ||||
-rw-r--r-- | ffplay.c | 15 |
3 files changed, 13 insertions, 28 deletions
diff --git a/cmdutils.c b/cmdutils.c index 51fd7c9b32..5aa56f15d0 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -63,7 +63,6 @@ static int init_report(const char *env); -struct SwsContext *sws_opts; AVDictionary *sws_dict; AVDictionary *swr_opts; AVDictionary *format_opts, *codec_opts, *resample_opts; @@ -74,20 +73,11 @@ int hide_banner = 0; void init_opts(void) { - - if(CONFIG_SWSCALE) - sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, - NULL, NULL, NULL); av_dict_set(&sws_dict, "flags", "bicubic", 0); } void uninit_opts(void) { -#if CONFIG_SWSCALE - sws_freeContext(sws_opts); - sws_opts = NULL; -#endif - av_dict_free(&swr_opts); av_dict_free(&sws_dict); av_dict_free(&format_opts); @@ -577,11 +567,6 @@ int opt_default(void *optctx, const char *opt, const char *arg) av_log(NULL, AV_LOG_ERROR, "Error setting option %s.\n", opt); return ret; } - ret = av_opt_set(sws_opts, opt, arg, 0); - if (ret < 0) { - av_log(NULL, AV_LOG_ERROR, "Error setting option %s for sws_opts.\n", opt); - return ret; - } av_dict_set(&sws_dict, opt, arg, FLAGS); @@ -658,9 +643,6 @@ static void finish_group(OptionParseContext *octx, int group_idx, *g = octx->cur_group; g->arg = arg; g->group_def = l->group_def; -#if CONFIG_SWSCALE - g->sws_opts = sws_opts; -#endif g->sws_dict = sws_dict; g->swr_opts = swr_opts; g->codec_opts = codec_opts; @@ -670,9 +652,6 @@ static void finish_group(OptionParseContext *octx, int group_idx, codec_opts = NULL; format_opts = NULL; resample_opts = NULL; -#if CONFIG_SWSCALE - sws_opts = NULL; -#endif sws_dict = NULL; swr_opts = NULL; init_opts(); @@ -729,9 +708,6 @@ void uninit_parse_context(OptionParseContext *octx) av_dict_free(&l->groups[j].codec_opts); av_dict_free(&l->groups[j].format_opts); av_dict_free(&l->groups[j].resample_opts); -#if CONFIG_SWSCALE - sws_freeContext(l->groups[j].sws_opts); -#endif av_dict_free(&l->groups[j].sws_dict); av_dict_free(&l->groups[j].swr_opts); diff --git a/cmdutils.h b/cmdutils.h index 842c78206e..7f3db2af1a 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -46,7 +46,6 @@ extern const int program_birth_year; extern AVCodecContext *avcodec_opts[AVMEDIA_TYPE_NB]; extern AVFormatContext *avformat_opts; -extern struct SwsContext *sws_opts; extern AVDictionary *sws_dict; extern AVDictionary *swr_opts; extern AVDictionary *format_opts, *codec_opts, *resample_opts; @@ -278,7 +277,6 @@ typedef struct OptionGroup { AVDictionary *codec_opts; AVDictionary *format_opts; AVDictionary *resample_opts; - struct SwsContext *sws_opts; AVDictionary *sws_dict; AVDictionary *swr_opts; } OptionGroup; @@ -102,7 +102,7 @@ const int program_birth_year = 2003; #define CURSOR_HIDE_DELAY 1000000 -static int64_t sws_flags = SWS_BICUBIC; +static unsigned sws_flags = SWS_BICUBIC; typedef struct MyAVPacketList { AVPacket pkt; @@ -1677,7 +1677,18 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts, double av_picture_copy(&pict, (AVPicture *)src_frame, src_frame->format, vp->width, vp->height); #else - av_opt_get_int(sws_opts, "sws_flags", 0, &sws_flags); + { + AVDictionaryEntry *e = av_dict_get(sws_dict, "sws_flags", NULL, 0); + if (e) { + const AVClass *class = sws_get_class(); + const AVOption *o = av_opt_find(&class, "sws_flags", NULL, 0, + AV_OPT_SEARCH_FAKE_OBJ); + int ret = av_opt_eval_flags(&class, o, e->value, &sws_flags); + if (ret < 0) + exit(1); + } + } + is->img_convert_ctx = sws_getCachedContext(is->img_convert_ctx, vp->width, vp->height, src_frame->format, vp->width, vp->height, AV_PIX_FMT_YUV420P, sws_flags, NULL, NULL, NULL); |