Support playing late appearing video streams.
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 10 Feb 2016 21:26:33 +0000 (21:26 +0000)
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 10 Feb 2016 21:26:33 +0000 (21:26 +0000)
When we initially could not find a video stream
but later one appears, start playing it.
This matches the behaviour for audio streams.
This also avoids never getting any video if
we could not find a video stream during the
initial probe e.g. for DVD streams.

git-svn-id: svn://git.mplayerhq.hu/mplayer/trunk@37657 b3059339-0415-0410-9bf9-f77b7e298cf2

mplayer.c

index 48479d8..aa5ca33 100644 (file)
--- a/mplayer.c
+++ b/mplayer.c
@@ -3691,7 +3691,7 @@ goto_enable_cache:
             mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_Video_NoVideo);
             mp_msg(MSGT_CPLAYER, MSGL_V, "Freeing %d unused video chunks.\n", mpctx->d_video->packs);
             ds_free_packs(mpctx->d_video);
-            mpctx->d_video->id = -2;
+            //mpctx->d_video->id = -2;
             //if(!fixed_vo) uninit_player(INITIALIZED_VO);
         }
 
@@ -3770,6 +3770,15 @@ goto_enable_cache:
                 mpctx->sh_audio->ds = mpctx->d_audio;
                 reinit_audio_chain();
             }
+            // Note: the video_id != -2 is only there because
+            // some demuxers do not have support for disabling
+            // video.
+            if (video_id != -2 && mpctx->d_video->id != -2 &&
+                !mpctx->sh_video && mpctx->d_video->sh) {
+                mpctx->sh_video     = mpctx->d_video->sh;
+                mpctx->sh_video->ds = mpctx->d_video;
+                reinit_video_chain();
+            }
 
 /*========================== PLAY AUDIO ============================*/