mirror of https://github.com/mpv-player/mpv
demux_edl: restore relative path resolution
Playing e.g. "dir/f.edl" should make all non-absolute paths in f.edl
relative to "dir".
Commit 0e98b2ad8e
accidentally broke this.
This commit is contained in:
parent
daa125cb45
commit
99700bc52c
|
@ -397,6 +397,17 @@ error:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void fix_filenames(struct tl_parts *parts, char *source_path)
|
||||||
|
{
|
||||||
|
if (bstr_equals0(mp_split_proto(bstr0(source_path), NULL), "edl"))
|
||||||
|
return;
|
||||||
|
struct bstr dirname = mp_dirname(source_path);
|
||||||
|
for (int n = 0; n < parts->num_parts; n++) {
|
||||||
|
struct tl_part *part = &parts->parts[n];
|
||||||
|
part->filename = mp_path_join_bstr(parts, dirname, bstr0(part->filename));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void build_mpv_edl_timeline(struct timeline *tl)
|
static void build_mpv_edl_timeline(struct timeline *tl)
|
||||||
{
|
{
|
||||||
struct priv *p = tl->demuxer->priv;
|
struct priv *p = tl->demuxer->priv;
|
||||||
|
@ -413,6 +424,7 @@ static void build_mpv_edl_timeline(struct timeline *tl)
|
||||||
|
|
||||||
for (int n = 0; n < root->num_pars; n++) {
|
for (int n = 0; n < root->num_pars; n++) {
|
||||||
struct tl_parts *parts = root->pars[n];
|
struct tl_parts *parts = root->pars[n];
|
||||||
|
fix_filenames(parts, tl->demuxer->filename);
|
||||||
struct timeline_par *par = build_timeline(tl, parts);
|
struct timeline_par *par = build_timeline(tl, parts);
|
||||||
if (!par)
|
if (!par)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue