summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Parker <conrad@users.sourceforge.net>2004-12-21 05:24:47 +0000
committerConrad Parker <conrad@users.sourceforge.net>2004-12-21 05:24:47 +0000
commit96d8ff7f328532cb057d4ff53eebd1718d9849c1 (patch)
treea751c26af2a552734f8b44e670902aace6c9142a
parentf16fe177b416bfd225f1a35b652d40c82485ab76 (diff)
downloadxine-lib-96d8ff7f328532cb057d4ff53eebd1718d9849c1.tar.gz
xine-lib-96d8ff7f328532cb057d4ff53eebd1718d9849c1.tar.bz2
add BY_CONTENT method for detecting DV streams
CVS patchset: 7291 CVS date: 2004/12/21 05:24:47
-rw-r--r--src/demuxers/demux_rawdv.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/demuxers/demux_rawdv.c b/src/demuxers/demux_rawdv.c
index 5dc554cbe..a0bbfdab1 100644
--- a/src/demuxers/demux_rawdv.c
+++ b/src/demuxers/demux_rawdv.c
@@ -19,7 +19,7 @@
*/
/*
- * $Id: demux_rawdv.c,v 1.21 2004/06/13 21:28:54 miguelfreitas Exp $
+ * $Id: demux_rawdv.c,v 1.22 2004/12/21 05:24:47 conrad Exp $
*
* demultiplexer for raw dv streams
*/
@@ -357,6 +357,21 @@ static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *str
switch (stream->content_detection_method) {
+ case METHOD_BY_CONTENT: {
+ uint8_t buf[8];
+
+ if (_x_demux_read_header(input, buf, 8) != 8)
+ return 0;
+
+ /* DIF (DV) movie file */
+ if (!((buf[0] == 0x1f) && (buf[1] == 0x07) && (buf[2] == 00) &&
+ (buf[4] ^ 0x01))) {
+ free (this);
+ return NULL;
+ }
+ }
+ break;
+
case METHOD_BY_EXTENSION: {
char *extensions, *mrl;