diff --git a/transcode.c b/transcode.c index 47a7d8a71420039f5641f37a159231ed4b87a5a8..fd8da347ab2702a733a8d705dc7052760d32b347 100644 --- a/transcode.c +++ b/transcode.c @@ -1,5 +1,7 @@ #include <stdio.h> #include <unistd.h> +#include <sys/stat.h> +#include <libgen.h> #include <libavutil/opt.h> #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> @@ -281,7 +283,8 @@ int main(int argc, char *argv[]) else oldsrcpath = "/var/empty/nosource"; overwrite_check(outpath, oldsrcpath, jstr(jlookup(argv[4], "srchash"), "")); - + if (access(dirname(outpath), F_OK) && mkdir(dirname(outpath), 02775)) + job_failed("Could not create target directory \"%s\": %s", dirname(outpath), strerror(errno)); demux = 0; opts = 0; parse_dict(&opts, jlookup(input, "options"));