diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/utils.c | 19 | ||||
-rw-r--r-- | src/utils/utils.h | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/utils/utils.c b/src/utils/utils.c index ea0b424..ae60eee 100644 --- a/src/utils/utils.c +++ b/src/utils/utils.c @@ -140,6 +140,25 @@ int substitute_str(const char *subject, const char *pattern, return 0; } +const char *mimeType2ext(const char *mimeType) { + static char mimeType_l[CHAR_MAX]; + strcpy(mimeType_l, mimeType); + const char *exts[2]; + size_t extsCount = 0; + + char *token = strtok(mimeType_l, "/"); + while (token != NULL && extsCount < 2) { + exts[extsCount++] = token; + token = strtok(NULL, "/"); + } + + if (extsCount == 2) { + return exts[1]; + } + + return "mp4"; // Cannot parse, use default +} + int repchr(char *str, char t, char r) { int c = 0; for (size_t i = 0; str[i] != '\0'; i++) { diff --git a/src/utils/utils.h b/src/utils/utils.h index f5bf8fc..f6bbad5 100644 --- a/src/utils/utils.h +++ b/src/utils/utils.h @@ -9,6 +9,8 @@ int regex_match(const char *, str_array_t, str_array_t *); int substitute_str(const char *subject, const char *pattern, const char *replacement, char **presult); +const char *mimeType2ext(const char *mimeType); + int repchr(char *str, char t, char r); void free_and_nullify(void *p); |