Commit 0fb3e1c6 authored by Martin Storsjö's avatar Martin Storsjö

movenc: Check for errors from mov_create_chapter_track

On failures in the write_trailer function, we could also ignore
the errors and try to finish the file despite these errors (which
would only leave an incomplete chapters track). It's probably better
to signal the error clearly to the caller though (and if this
function failed there's no guarantee that there's enough memory to
finish the trailer either).
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 2bbad1f9
...@@ -3303,7 +3303,8 @@ static int mov_write_header(AVFormatContext *s) ...@@ -3303,7 +3303,8 @@ static int mov_write_header(AVFormatContext *s)
mov->time += 0x7C25B080; // 1970 based -> 1904 based mov->time += 0x7C25B080; // 1970 based -> 1904 based
if (mov->chapter_track) if (mov->chapter_track)
mov_create_chapter_track(s, mov->chapter_track); if (mov_create_chapter_track(s, mov->chapter_track) < 0)
goto error;
if (mov->flags & FF_MOV_FLAG_RTP_HINT) { if (mov->flags & FF_MOV_FLAG_RTP_HINT) {
/* Initialize the hint tracks for each audio and video stream */ /* Initialize the hint tracks for each audio and video stream */
...@@ -3456,7 +3457,8 @@ static int mov_write_trailer(AVFormatContext *s) ...@@ -3456,7 +3457,8 @@ static int mov_write_trailer(AVFormatContext *s)
if (!mov->chapter_track && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) { if (!mov->chapter_track && !(mov->flags & FF_MOV_FLAG_FRAGMENT)) {
if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) { if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) {
mov->chapter_track = mov->nb_streams++; mov->chapter_track = mov->nb_streams++;
mov_create_chapter_track(s, mov->chapter_track); if ((res = mov_create_chapter_track(s, mov->chapter_track)) < 0)
goto error;
} }
} }
...@@ -3506,6 +3508,7 @@ static int mov_write_trailer(AVFormatContext *s) ...@@ -3506,6 +3508,7 @@ static int mov_write_trailer(AVFormatContext *s)
} }
} }
error:
mov_free(s); mov_free(s);
return res; return res;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment