> On Sep 10, 2016, at 20:41, Michael Niedermayer <mich...@niedermayer.cc> wrote: > > On Fri, Sep 09, 2016 at 09:07:31PM -0500, Rodger Combs wrote: >> 3 parts: >> - Supports multiple chapter streams >> - Exports regular text chapter streams as opaque data. This prevents >> consumers >> from showing chapters as if they were regular subtitle streams. >> - Exports video chapter streams as thumbnails, and provides the first one as >> an attached_pic. >> --- >> libavformat/isom.h | 3 ++- >> libavformat/mov.c | 52 +++++++++++++++++++++++++++++++++++++++++++++------- >> 2 files changed, 47 insertions(+), 8 deletions(-) >> >> diff --git a/libavformat/isom.h b/libavformat/isom.h >> index 2246fed..9038057 100644 >> --- a/libavformat/isom.h >> +++ b/libavformat/isom.h >> @@ -210,7 +210,8 @@ typedef struct MOVContext { >> unsigned trex_count; >> int itunes_metadata; ///< metadata are itunes style >> int handbrake_version; >> - int chapter_track; >> + int *chapter_tracks; >> + unsigned int nb_chapter_tracks; >> int use_absolute_path; >> int ignore_editlist; >> int ignore_chapters; >> diff --git a/libavformat/mov.c b/libavformat/mov.c >> index 6e80b93..22ca809 100644 >> --- a/libavformat/mov.c >> +++ b/libavformat/mov.c >> @@ -3574,7 +3574,18 @@ static int mov_read_tfhd(MOVContext *c, AVIOContext >> *pb, MOVAtom atom) >> >> static int mov_read_chap(MOVContext *c, AVIOContext *pb, MOVAtom atom) >> { >> - c->chapter_track = avio_rb32(pb); >> + unsigned i, num; >> + av_free(c->chapter_tracks); >> + >> + num = atom.size / 4; >> + if (!(c->chapter_tracks = av_malloc(num * 4))) > > av_malloc_array()
Done > >> + return AVERROR(ENOMEM); > > the error return leaves the size and array in an inconsistent tstate Fixed > > >> + >> + c->nb_chapter_tracks = num; >> + > >> + for (i = 0; i < num; i++) >> + c->chapter_tracks[i] = avio_rb32(pb); > > missing eof check > reading 16gb without checking is not a good idea, it could waste alot > of time Added > > this patch also appears to result in missing codec parameters(pix fmt) > and ffmpeg failing to transcode it > should i upload a file that causes this ? Would appreciate one, yeah > > thx > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Republics decline into democracies and democracies degenerate into > despotisms. -- Aristotle > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel