From c2657d5c9850b259ed13746ed099e3b9ddd0084b Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 9 May 2013 01:09:08 +0200 Subject: demux: restructure chapter seeking code Arrange the code such that commenting the first if will allow doing stream chapter seeks instead of time chapter seeks again, if both are possible. --- demux/demux.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/demux/demux.c b/demux/demux.c index 5f1af39d01..64c7c73b9f 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -1327,22 +1327,22 @@ static void add_stream_chapters(struct demuxer *demuxer) int demuxer_seek_chapter(demuxer_t *demuxer, int chapter, double *seek_pts) { - int ris; - - if (!demuxer->num_chapters || !demuxer->chapters) { - demux_flush(demuxer); + int ris = STREAM_UNSUPPORTED; + if (demuxer->num_chapters == 0) ris = stream_control(demuxer->stream, STREAM_CTRL_SEEK_TO_CHAPTER, &chapter); - if (ris != STREAM_UNSUPPORTED) - demux_control(demuxer, DEMUXER_CTRL_RESYNC, NULL); + + if (ris != STREAM_UNSUPPORTED) { + demux_flush(demuxer); + demux_control(demuxer, DEMUXER_CTRL_RESYNC, NULL); // exit status may be ok, but main() doesn't have to seek itself // (because e.g. dvds depend on sectors, not on pts) *seek_pts = -1.0; - return ris != STREAM_UNSUPPORTED ? chapter : -1; - } else { // chapters structure is set in the demuxer + return chapter; + } else { if (chapter >= demuxer->num_chapters) return -1; if (chapter < 0) -- cgit v1.2.3