summaryrefslogtreecommitdiffstats
path: root/libmpdemux/open.c
diff options
context:
space:
mode:
authorkmkaplan <kmkaplan@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-24 23:02:59 +0000
committerkmkaplan <kmkaplan@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-24 23:02:59 +0000
commit6465fc7b734898965df040b8ab0ec2274f03f541 (patch)
tree8f538c3929456e47370ff8c8a853366295ad8490 /libmpdemux/open.c
parent8fcddee536c87a2dbe731c2d8df92743a887cb09 (diff)
downloadmpv-6465fc7b734898965df040b8ab0ec2274f03f541.tar.bz2
mpv-6465fc7b734898965df040b8ab0ec2274f03f541.tar.xz
Extended DVD chapter specification. Remove -last-chapter option.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4344 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/open.c')
-rw-r--r--libmpdemux/open.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/libmpdemux/open.c b/libmpdemux/open.c
index c2a576f330..059ab3ceb7 100644
--- a/libmpdemux/open.c
+++ b/libmpdemux/open.c
@@ -1,4 +1,5 @@
+#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -13,6 +14,7 @@
#include <sys/cdrio.h>
#endif
+#include "../cfgparser.h"
#include "stream.h"
#include "demuxer.h"
@@ -421,6 +423,38 @@ tv_err:
}
+int dvd_parse_chapter_range(struct config *conf, const char *range){
+ char *s, *t;
+ dvd_chapter = 1;
+ dvd_last_chapter = 0;
+ if (*range && isdigit(*range)) {
+ dvd_chapter = strtol(range, &s, 10);
+ if (range == s) {
+ mp_msg(MSGT_OPEN, MSGL_ERR, "Invalid chapter range specification %s\n", range);
+ return -1;
+ }
+ }
+ if (*s == 0)
+ return 0;
+ else if (*s != '-') {
+ mp_msg(MSGT_OPEN, MSGL_ERR, "Invalid chapter range specification %s\n", range);
+ return -1;
+ }
+ ++s;
+ if (*s == 0)
+ return 0;
+ if (! isdigit(*s)) {
+ mp_msg(MSGT_OPEN, MSGL_ERR, "Invalid chapter range specification %s\n", range);
+ return -1;
+ }
+ dvd_last_chapter = strtol(s, &t, 10);
+ if (s == t || *t) {
+ mp_msg(MSGT_OPEN, MSGL_ERR, "Invalid chapter range specification %s\n", range);
+ return -1;
+ }
+ return 0;
+}
+
#ifdef USE_DVDREAD
int dvd_aid_from_lang(stream_t *stream, unsigned char* lang){