mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-12 18:10:13 +01:00
Merge commit '303f931938c618668f7f83c646a1850bef84641e'
* commit '303f931938c618668f7f83c646a1850bef84641e': mov: Correctly store dref paths Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
@@ -574,7 +574,7 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
|||||||
av_log(c->fc, AV_LOG_DEBUG, "type %d, len %d\n", type, len);
|
av_log(c->fc, AV_LOG_DEBUG, "type %d, len %d\n", type, len);
|
||||||
if (len&1)
|
if (len&1)
|
||||||
len += 1;
|
len += 1;
|
||||||
if (type == 2 || type == 18) { // absolute path
|
if (type == 2) { // absolute path
|
||||||
av_free(dref->path);
|
av_free(dref->path);
|
||||||
dref->path = av_mallocz(len+1);
|
dref->path = av_mallocz(len+1);
|
||||||
if (!dref->path)
|
if (!dref->path)
|
||||||
@@ -585,15 +585,13 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
|||||||
av_freep(&dref->path);
|
av_freep(&dref->path);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (type == 18) // no additional processing needed
|
|
||||||
continue;
|
|
||||||
if (len > volume_len && !strncmp(dref->path, dref->volume, volume_len)) {
|
if (len > volume_len && !strncmp(dref->path, dref->volume, volume_len)) {
|
||||||
len -= volume_len;
|
len -= volume_len;
|
||||||
memmove(dref->path, dref->path+volume_len, len);
|
memmove(dref->path, dref->path+volume_len, len);
|
||||||
dref->path[len] = 0;
|
dref->path[len] = 0;
|
||||||
}
|
}
|
||||||
for (j = 0; j < len; j++)
|
for (j = 0; j < len; j++)
|
||||||
if (dref->path[j] == ':')
|
if (dref->path[j] == ':' || dref->path[j] == 0)
|
||||||
dref->path[j] = '/';
|
dref->path[j] = '/';
|
||||||
av_log(c->fc, AV_LOG_DEBUG, "path %s\n", dref->path);
|
av_log(c->fc, AV_LOG_DEBUG, "path %s\n", dref->path);
|
||||||
} else if (type == 0) { // directory name
|
} else if (type == 0) { // directory name
|
||||||
|
|||||||
Reference in New Issue
Block a user