aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-12-30 13:54:50 +0100
committerMichael Niedermayer <michaelni@gmx.at>2012-12-30 13:54:50 +0100
commit2ce43b37fc46e3744d9d5e1baa1280c48ef7b1bf (patch)
tree24ca5287a90069a324ee49ad251f0d9a69ca0aea /libavutil
parent613001d75fee9dfef14fb000cac8c67ac6381e97 (diff)
parent6dd93ee6f1b050ad7c4b247899e83efa293ee405 (diff)
downloadffmpeg-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.c41
-rw-r--r--libavutil/avstring.h16
-rw-r--r--libavutil/version.h2
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, \