diff demuxer.c @ 1623:5908dd344067

added demuxer->seekable flag to generalize seeking ability test
author arpi
date Wed, 22 Aug 2001 16:42:37 +0000
parents e49b3927c793
children bd1ef18cdf33
line wrap: on
line diff
--- a/demuxer.c	Wed Aug 22 16:24:00 2001 +0000
+++ b/demuxer.c	Wed Aug 22 16:42:37 2001 +0000
@@ -51,6 +51,7 @@
   d->stream=stream;
   d->movi_start=stream->start_pos;
   d->movi_end=stream->end_pos;
+  d->seekable=1;
   d->synced=0;
   d->filepos=0;
   d->audio=new_demuxer_stream(d,a_id);
@@ -413,7 +414,7 @@
   break;
  }
  case DEMUXER_TYPE_AVI: {
-  return demux_open_avi(demuxer);
+  return (demuxer_t*) demux_open_avi(demuxer);
 //  break;
  }
  case DEMUXER_TYPE_ASF: {
@@ -492,10 +493,13 @@
     sh_audio_t *sh_audio=d_audio->sh;
     sh_video_t *sh_video=d_video->sh;
 
-//if(demuxer->file_format==DEMUXER_TYPE_AVI && demuxer->idx_size<=0){
-//    printf("Can't seek in raw .AVI streams! (index required, try with the -idx switch!)  \n");
-//    return 0;
-//}
+if(!demuxer->seekable){
+    if(demuxer->file_format==DEMUXER_TYPE_AVI)
+	mp_msg(MSGT_SEEK,MSGL_WARN,"Can't seek in raw .AVI streams! (index required, try with the -idx switch!)  \n");
+    else
+	mp_msg(MSGT_SEEK,MSGL_WARN,"Can't seek in this file!  \n");
+    return 0;
+}
 
     // clear demux buffers:
     if(sh_audio){ ds_free_packs(d_audio);sh_audio->a_buffer_len=0;}