]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Stray commit reverted
authorlu_zero <lu_zero@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 23 Aug 2007 16:42:32 +0000 (16:42 +0000)
committerlu_zero <lu_zero@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 23 Aug 2007 16:42:32 +0000 (16:42 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@10198 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

ffplay.c

index 01c9f0f64550ee4ec95c0348e386eef4e8a0df3f..cbbeb79d240c45c3e981b3dd309b91ddfc0941f8 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -1871,7 +1871,7 @@ static int decode_thread(void *arg)
 {
     VideoState *is = arg;
     AVFormatContext *ic;
-    int err, i, ret, video_index, audio_index;
+    int err, i, ret, video_index, audio_index, use_play;
     AVPacket pkt1, *pkt = &pkt1;
     AVFormatParameters params, *ap = &params;
 
@@ -1885,6 +1885,8 @@ static int decode_thread(void *arg)
     url_set_interrupt_cb(decode_interrupt_cb);
 
     memset(ap, 0, sizeof(*ap));
+    ap->initial_pause = 1; /* we force a pause when starting an RTSP
+                              stream */
 
     ap->width = frame_width;
     ap->height= frame_height;
@@ -1898,10 +1900,16 @@ static int decode_thread(void *arg)
         goto fail;
     }
     is->ic = ic;
+#ifdef CONFIG_RTSP_DEMUXER
+    use_play = (ic->iformat == &rtsp_demuxer);
+#else
+    use_play = 0;
+#endif
 
     if(genpts)
         ic->flags |= AVFMT_FLAG_GENPTS;
 
+    if (!use_play) {
         err = av_find_stream_info(ic);
         if (err < 0) {
             fprintf(stderr, "%s: could not find codec parameters\n", is->filename);
@@ -1909,6 +1917,7 @@ static int decode_thread(void *arg)
             goto fail;
         }
         ic->pb.eof_reached= 0; //FIXME hack, ffplay maybe should not use url_feof() to test for the end
+    }
 
     /* if seeking requested, we execute it */
     if (start_time != AV_NOPTS_VALUE) {
@@ -1925,6 +1934,18 @@ static int decode_thread(void *arg)
         }
     }
 
+    /* now we can begin to play (RTSP stream only) */
+    av_read_play(ic);
+
+    if (use_play) {
+        err = av_find_stream_info(ic);
+        if (err < 0) {
+            fprintf(stderr, "%s: could not find codec parameters\n", is->filename);
+            ret = -1;
+            goto fail;
+        }
+    }
+
     for(i = 0; i < ic->nb_streams; i++) {
         AVCodecContext *enc = ic->streams[i]->codec;
         switch(enc->codec_type) {