Reworking subtitles extraction paths

This commit is contained in:
Zoe Roux
2022-04-07 23:40:49 +02:00
parent 7bae8def39
commit 913c8e986e
2 changed files with 17 additions and 19 deletions

2
.gitignore vendored
View File

@@ -6,3 +6,5 @@ buildOSX/*
tests/*.o tests/*.o
tests/ts tests/ts
tests/*/* tests/*/*
.cache/
compile_commands.json

View File

@@ -13,32 +13,28 @@
// @return -1 on error, 1 if track has already been extracted, 0 if the track does not exist. // @return -1 on error, 1 if track has already been extracted, 0 if the track does not exist.
int create_out_path(stream *track, const char *out_path, int track_id) int create_out_path(stream *track, const char *out_path, int track_id)
{ {
char *folder_path;
asprintf(&folder_path, "%s/Subtitles/%s", out_path, track->language ? track->language : "und");
if (path_mkdir_p(folder_path, 0775))
return -2;
char *extension = get_extension_from_codec(track->codec);
char *file_name = path_getfilename(track->path); char *file_name = path_getfilename(track->path);
char *extension = get_extension_from_codec(track->codec);
char identifier[20];
if (!extension || !file_name) { if (!extension || !file_name) {
free(folder_path);
free(file_name); free(file_name);
return -2; return -2;
} }
free(track->path); free(track->path);
char identifier[8]; if (!track->language || !strcmp(track->language, "und"))
if (!track->language) snprintf(identifier, sizeof(identifier), "und-%d", track_id);
snprintf(identifier, 8, "%d", track_id); asprintf(
asprintf(&track->path, "%s/%s.%s%s%s%s", &track->path,
folder_path, "%s/%s.%s%s%s%s",
file_name, out_path,
track->language ? track->language : identifier, file_name,
track->is_default ? ".default" : "", track->language ? track->language : identifier,
track->is_forced ? ".forced" : "", track->is_default ? ".default" : "",
extension); track->is_forced ? ".forced" : "",
free(folder_path); extension
);
free(file_name); free(file_name);
if (!track->path) if (!track->path)
return -2; return -2;
@@ -146,4 +142,4 @@ void extract_chapters(AVFormatContext *ctx, const char *out_path)
} }
fclose(file); fclose(file);
free(path); free(path);
} }