ffmpeg | branch: master | Vittorio Giovara <vittorio.giov...@gmail.com> | Mon Feb 15 21:44:07 2016 -0500| [d40cb726d271b0284642a1ba159eb26a5c579f77] | committer: Vittorio Giovara
mov: Trim dref absolute path Samples produced by Omneon (Harmonic) store external references with paths ending with 0s. Such movs cannot be loaded properly since every 0 is converted to '/', to keep the same parsing code for dref type 2 and type 18: this makes the external reference point to a non-existing direactory, rather than to the actual referenced file. Add a brief trimming loop that drops all ending 0s before trying to parse the external reference path. Signed-off-by: Vittorio Giovara <vittorio.giov...@gmail.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d40cb726d271b0284642a1ba159eb26a5c579f77 --- libavformat/mov.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 0dee5ec..a556aa7 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -554,6 +554,13 @@ static int mov_read_dref(MOVContext *c, AVIOContext *pb, MOVAtom atom) memmove(dref->path, dref->path+volume_len, len); dref->path[len] = 0; } + // trim string of any ending zeros + for (j = len - 1; j >= 0; j--) { + if (dref->path[j] == 0) + len--; + else + break; + } for (j = 0; j < len; j++) if (dref->path[j] == ':' || dref->path[j] == 0) dref->path[j] = '/'; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog