diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2014-02-27 12:29:37 +0100 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2014-03-04 11:39:02 +0100 |
commit | 61b323ce7c7cdc101eadfd7de2203922b8a39e8d (patch) | |
tree | 383a0ceba854cbd67542e9b89ed88df086d82f93 | |
parent | 4e0be9c86f2003dd3ba2eb8fad01e8d0e538075e (diff) | |
download | ffmpeg-61b323ce7c7cdc101eadfd7de2203922b8a39e8d.tar.gz |
vf_frei0r: refactor library loading from env variable
strtok_r is not needed any more, so remove it from configure.
-rwxr-xr-x | configure | 6 | ||||
-rw-r--r-- | libavfilter/vf_frei0r.c | 18 |
2 files changed, 14 insertions, 10 deletions
@@ -1410,7 +1410,6 @@ HAVE_LIST=" soundcard_h strerror_r strptime - strtok_r struct_addrinfo struct_group_source_req struct_ip_mreq_source @@ -2018,9 +2017,9 @@ boxblur_filter_deps="gpl" cropdetect_filter_deps="gpl" delogo_filter_deps="gpl" drawtext_filter_deps="libfreetype" -frei0r_filter_deps="frei0r dlopen strtok_r" +frei0r_filter_deps="frei0r dlopen" frei0r_filter_extralibs='$ldl' -frei0r_src_filter_deps="frei0r dlopen strtok_r" +frei0r_src_filter_deps="frei0r dlopen" frei0r_src_filter_extralibs='$ldl' hqdn3d_filter_deps="gpl" interlace_filter_deps="gpl" @@ -3855,7 +3854,6 @@ check_func_headers malloc.h _aligned_malloc && enable aligned_malloc check_func setrlimit check_func strerror_r check_func strptime -check_func strtok_r check_func sched_getaffinity check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)" check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()" diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c index fde6e1a96c..c9699677c8 100644 --- a/libavfilter/vf_frei0r.c +++ b/libavfilter/vf_frei0r.c @@ -232,12 +232,18 @@ static av_cold int frei0r_init(AVFilterContext *ctx, } /* see: http://piksel.org/frei0r/1.2/spec/1.2/spec/group__pluglocations.html */ - if ((path = av_strdup(getenv("FREI0R_PATH")))) { - char *p, *ptr = NULL; - for (p = path; p = strtok_r(p, ":", &ptr); p = NULL) - if (s->dl_handle = load_path(ctx, p, dl_name)) - break; - av_free(path); + if (path = getenv("FREI0R_PATH")) { + while(*path) { + char *ptr = av_get_token((const char **)&path, ":"); + if (!ptr) + return AVERROR(ENOMEM); + s->dl_handle = load_path(ctx, ptr, dl_name); + av_freep(&ptr); + if (s->dl_handle) + break; /* found */ + if (*path) + path++ /* skip ':' */ + } } if (!s->dl_handle && (path = getenv("HOME"))) { char prefix[1024]; |