[MPlayer-dev-eng] [PATCH]chapters in lavf demuxer

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Thu May 29 20:10:59 CEST 2008


On Thu, May 29, 2008 at 07:35:46PM +0200, Aurelien Jacobs wrote:
> Anton Khirnov wrote:
> > On Thu, May 29, 2008 at 6:26 PM, Reimar Döffinger
> > <Reimar.Doeffinger at stud.uni-karlsruhe.de> wrote:
> > > On Thu, May 29, 2008 at 05:02:39PM +0200, Anton Khirnov wrote:
> > >> Hi,
> > >> this patch adds support for chapters to lavf demuxer.
> > >>
> > >> Anton
> > >
> > >> Index: libmpdemux/demux_lavf.c
> > >> ===================================================================
> > >> --- libmpdemux/demux_lavf.c   (revision 26920)
> > >> +++ libmpdemux/demux_lavf.c   (working copy)
> > >> @@ -477,6 +477,15 @@
> > >>  //    if(avfc->track       ) demux_info_add(demuxer, "track"    , avfc->track    );
> > >>      if(avfc->genre    [0]) demux_info_add(demuxer, "genre"    , avfc->genre    );
> > >>
> > >> +    if(avfc->nb_chapters) {
> > >> +        uint64_t start, end;
> > >> +        for(i=0; i < avfc->nb_chapters; i++) {
> > >> +            start = avfc->chapters[i]->start * 1000 * avfc->chapters[i]->time_base.num / avfc->chapters[i]->time_base.den;
> > >> +            end = avfc->chapters[i]->end * 1000 * avfc->chapters[i]->time_base.num / avfc->chapters[i]->time_base.den;
> > >> +            demuxer_add_chapter(demuxer, avfc->chapters[i]->title, start, end);
> > >> +        }
> > >> +    }
> > >
> > > The "if" is not necessary and the declaration and assignment of start
> > > and end can be merged.
> > 
> > ok
> 
> demuxer_add_chapter() will segfault when avfc->chapters[i]->title is NULL.

Since it then needs another version anyway: IMO it would be nicer to use
a temporary variable, something like
AVChapter *c = avfc->chapters + i;

for the other problem, something like this might be good enough:
demuxer_add_chapter(demuxer, c->title ? c->title : MSGTR_Unknown, start, end);

Greetings,
Reimar Döffinger



More information about the MPlayer-dev-eng mailing list