mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
avstring: add av_basename and av_dirname
Thread safe version of the common basename and dirname.
This commit is contained in:
parent
c73c87b412
commit
d8fd06c37d
@ -2,6 +2,9 @@ Entries are sorted chronologically from oldest to youngest within each release,
|
|||||||
releases are sorted from youngest to oldest.
|
releases are sorted from youngest to oldest.
|
||||||
|
|
||||||
version <next>:
|
version <next>:
|
||||||
|
- av_basename and av_dirname
|
||||||
|
|
||||||
|
version 9_beta3:
|
||||||
- ashowinfo audio filter
|
- ashowinfo audio filter
|
||||||
- 24-bit FLAC encoding
|
- 24-bit FLAC encoding
|
||||||
- audio volume filter
|
- audio volume filter
|
||||||
|
@ -13,6 +13,9 @@ libavutil: 2012-10-22
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2012-xx-xx - xxxxxxx - lavu 52.2.1 - avstring.h
|
||||||
|
Add av_basename() and av_dirname().
|
||||||
|
|
||||||
2012-xx-xx - xxxxxxx - lavu 52.2.0 - audioconvert.h
|
2012-xx-xx - xxxxxxx - lavu 52.2.0 - audioconvert.h
|
||||||
Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated.
|
Rename audioconvert.h to channel_layout.h. audioconvert.h is now deprecated.
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "avstring.h"
|
#include "avstring.h"
|
||||||
|
#include "config.h"
|
||||||
|
#include "common.h"
|
||||||
#include "mem.h"
|
#include "mem.h"
|
||||||
|
|
||||||
int av_strstart(const char *str, const char *pfx, const char **ptr)
|
int av_strstart(const char *str, const char *pfx, const char **ptr)
|
||||||
@ -156,6 +158,45 @@ int av_strncasecmp(const char *a, const char *b, size_t n)
|
|||||||
return c1 - c2;
|
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
|
#ifdef TEST
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
@ -168,6 +168,22 @@ int av_strcasecmp(const char *a, const char *b);
|
|||||||
*/
|
*/
|
||||||
int av_strncasecmp(const char *a, const char *b, size_t n);
|
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);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_MAJOR 52
|
#define LIBAVUTIL_VERSION_MAJOR 52
|
||||||
#define LIBAVUTIL_VERSION_MINOR 2
|
#define LIBAVUTIL_VERSION_MINOR 3
|
||||||
#define LIBAVUTIL_VERSION_MICRO 0
|
#define LIBAVUTIL_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user