summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/utils.c19
-rw-r--r--src/utils/utils.h2
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);