av_freep(&avformat_opts->key);
av_freep(&avformat_opts);
#if CONFIG_SWSCALE
- av_freep(&sws_opts);
+ sws_freeContext(sws_opts);
+ sws_opts = NULL;
#endif
for (i = 0; i < opt_name_count; i++) {
av_freep(&opt_names[i]);
*po->u.int64_arg = parse_number_or_die(opt, arg, OPT_INT64, INT64_MIN, INT64_MAX);
} else if (po->flags & OPT_FLOAT) {
*po->u.float_arg = parse_number_or_die(opt, arg, OPT_FLOAT, -INFINITY, INFINITY);
- } else if (po->flags & OPT_FUNC2) {
- if (po->u.func2_arg(opt, arg) < 0) {
- fprintf(stderr, "%s: failed to set value '%s' for option '%s'\n", argv[0], arg, opt);
- exit(1);
- }
} else if (po->flags & OPT_DUMMY) {
/* Do nothing for this option */
} else {
- po->u.func_arg(arg);
+ if (po->u.func_arg(opt, arg) < 0) {
+ fprintf(stderr, "%s: failed to set value '%s' for option '%s'\n", argv[0], arg, opt);
+ exit(1);
+ }
}
if(po->flags & OPT_EXIT)
exit(0);
AVInputFormat *iformat = NULL;
while ((p = av_codec_next(p))) {
- AVClass *c = p->priv_class;
+ const AVClass *c = p->priv_class;
if (c && av_find_opt(&c, opt, NULL, 0, 0))
break;
}
return 0;
}
-static void *alloc_priv_context(int size, AVClass *class){
+static void *alloc_priv_context(int size, const AVClass *class)
+{
void *p = av_mallocz(size);
if (p) {
- *(AVClass**)p = class;
+ *(const AVClass **)p = class;
av_opt_set_defaults(p);
}
return p;
av_strlcpy(filename, preset_name, filename_size);
f = fopen(filename, "r");
} else {
+#ifdef _WIN32
+ char datadir[MAX_PATH], *ls;
+ base[2] = NULL;
+
+ if (GetModuleFileNameA(GetModuleHandleA(NULL), datadir, sizeof(datadir) - 1))
+ {
+ for (ls = datadir; ls < datadir + strlen(datadir); ls++)
+ if (*ls == '\\') *ls = '/';
+
+ if (ls = strrchr(datadir, '/'))
+ {
+ *ls = 0;
+ strncat(datadir, "/ffpresets", sizeof(datadir) - 1 - strlen(datadir));
+ base[2] = datadir;
+ }
+ }
+#endif
for (i = 0; i < 3 && !f; i++) {
if (!base[i])
continue;
{
int ret;
AVFilterBufferRef *picref;
+ *picref_ptr = NULL;
if ((ret = avfilter_request_frame(ctx->inputs[0])) < 0)
return ret;