diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-12-30 13:54:50 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-12-30 13:54:50 +0100 |
commit | 2ce43b37fc46e3744d9d5e1baa1280c48ef7b1bf (patch) | |
tree | 24ca5287a90069a324ee49ad251f0d9a69ca0aea /libavutil | |
parent | 613001d75fee9dfef14fb000cac8c67ac6381e97 (diff) | |
parent | 6dd93ee6f1b050ad7c4b247899e83efa293ee405 (diff) | |
download | ffmpeg-2ce43b37fc46e3744d9d5e1baa1280c48ef7b1bf.tar.gz |
Merge commit '6dd93ee6f1b050ad7c4b247899e83efa293ee405'
* commit '6dd93ee6f1b050ad7c4b247899e83efa293ee405':
hlsenc: check append_entry return value
hlsenc: use the basename to generate the list entries
avstring: add av_basename and av_dirname
Conflicts:
Changelog
doc/APIchanges
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/avstring.c | 41 | ||||
-rw-r--r-- | libavutil/avstring.h | 16 | ||||
-rw-r--r-- | libavutil/version.h | 2 |
3 files changed, 58 insertions, 1 deletions
diff --git a/libavutil/avstring.c b/libavutil/avstring.c index f03df67441..7072a55cf3 100644 --- a/libavutil/avstring.c +++ b/libavutil/avstring.c @@ -25,6 +25,8 @@ #include <string.h> #include <ctype.h> #include "avstring.h" +#include "config.h" +#include "common.h" #include "mem.h" int av_strstart(const char *str, const char *pfx, const char **ptr) @@ -211,6 +213,45 @@ int av_strncasecmp(const char *a, const char *b, size_t n) return c1 - c2; } +const char *av_basename(const char *path) +{ + char *p = strrchr(path, '/'); + +#if HAVE_DOS_PATHS + char *q = strrchr(path, '\\'); + char *d = strchr(path, ':'); + + p = FFMAX3(p, q, d); +#endif + + if (!p) + return path; + + return p + 1; +} + +const char *av_dirname(char *path) +{ + char *p = strrchr(path, '/'); + +#if HAVE_DOS_PATHS + char *q = strrchr(path, '\\'); + char *d = strchr(path, ':'); + + d = d ? d + 1 : d; + + p = FFMAX3(p, q, d); +#endif + + if (!p) + return "."; + + *p = '\0'; + + return path; +} + + #ifdef TEST #include "common.h" diff --git a/libavutil/avstring.h b/libavutil/avstring.h index f73d6e7420..d7af9ec7c3 100644 --- a/libavutil/avstring.h +++ b/libavutil/avstring.h @@ -202,6 +202,22 @@ int av_strcasecmp(const char *a, const char *b); */ int av_strncasecmp(const char *a, const char *b, size_t n); + +/** + * Thread safe basename. + * @param path the path, on DOS both \ and / are considered separators. + * @return pointer to the basename substring. + */ +const char *av_basename(const char *path); + +/** + * Thread safe dirname. + * @param path the path, on DOS both \ and / are considered separators. + * @return the path with the separator replaced by the string terminator or ".". + * @note the function may change the input string. + */ +const char *av_dirname(char *path); + /** * @} */ diff --git a/libavutil/version.h b/libavutil/version.h index f5ccd1ff2b..e47e0d12b3 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -75,7 +75,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 52 -#define LIBAVUTIL_VERSION_MINOR 12 +#define LIBAVUTIL_VERSION_MINOR 13 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ |