diff libmpdemux/demuxer.c @ 3801:3cea69dda1b3

added NuppelVideo demuxer, based on Panagiotis Issaris' patch
author alex
date Thu, 27 Dec 2001 21:24:56 +0000
parents 7ebf504c92d6
children be5e58955f57
line wrap: on
line diff
--- a/libmpdemux/demuxer.c	Thu Dec 27 19:54:36 2001 +0000
+++ b/libmpdemux/demuxer.c	Thu Dec 27 21:24:56 2001 +0000
@@ -159,7 +159,8 @@
 int demux_asf_fill_buffer(demuxer_t *demux);
 int demux_mov_fill_buffer(demuxer_t *demux,demux_stream_t* ds);
 int demux_vivo_fill_buffer(demuxer_t *demux);
-int demux_real_fill_buffer(demuxer_t *demux);
+int demux_real_fill_buffer(demuxer_t *demuxer);
+int demux_nuv_fill_buffer(demuxer_t *demux);
 #ifdef USE_TV
 #include "tv.h"
 extern tvi_handle_t *tv_handler;
@@ -184,6 +185,7 @@
     case DEMUXER_TYPE_MOV: return demux_mov_fill_buffer(demux,ds);
     case DEMUXER_TYPE_VIVO: return demux_vivo_fill_buffer(demux);
     case DEMUXER_TYPE_REAL: return demux_real_fill_buffer(demux);
+    case DEMUXER_TYPE_NUV: return demux_nuv_fill_buffer(demux);
 #ifdef USE_TV
     case DEMUXER_TYPE_TV: return demux_tv_fill_buffer(demux, tv_handler);
 #endif
@@ -371,6 +373,9 @@
 extern int real_check_file(demuxer_t *demuxer);
 extern void demux_open_real(demuxer_t *demuxer);
 
+extern int nuv_check_file(demuxer_t *demuxer);
+extern void demux_open_nuv(demuxer_t *demuxer);
+
 demuxer_t* demux_open(stream_t *stream,int file_format,int audio_id,int video_id,int dvdsub_id){
 
 //int file_format=(*file_format_ptr);
@@ -426,6 +431,14 @@
       file_format=DEMUXER_TYPE_Y4M;
   }
 }
+//=============== Try to open as NUV file: =================
+if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_NUV){
+  demuxer=new_demuxer(stream,DEMUXER_TYPE_NUV,audio_id,video_id,dvdsub_id);
+  if(nuv_check_file(demuxer)){
+      mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected NuppelVideo file format!\n");
+      file_format=DEMUXER_TYPE_NUV;
+  }
+}
 //=============== Try to open as MOV file: =================
 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_MOV){
   demuxer=new_demuxer(stream,DEMUXER_TYPE_MOV,audio_id,video_id,dvdsub_id);
@@ -551,6 +564,10 @@
   return (demuxer_t*) demux_open_avi(demuxer);
 //  break;
  }
+ case DEMUXER_TYPE_NUV: {
+  demux_open_nuv(demuxer);
+  break;
+ }
  case DEMUXER_TYPE_VIVO: {
   demux_open_vivo(demuxer);
   break;