summaryrefslogtreecommitdiff
path: root/ffplay.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2010-02-23 17:09:53 +0000
committerMichael Niedermayer <michaelni@gmx.at>2010-02-23 17:09:53 +0000
commit256ab3ed9d1b77e3a6d5dbb46b760908d1eceed4 (patch)
tree89230941702ea3a9913842eb2da51f09242f4dac /ffplay.c
parent5b369983c6a61ad36769ff612f11f1266bb0e3a6 (diff)
Dont modify wanted_stream.
Originally committed as revision 22007 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffplay.c')
-rw-r--r--ffplay.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/ffplay.c b/ffplay.c
index 0fec035773..f79e3acb04 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1980,6 +1980,7 @@ static int decode_thread(void *arg)
AVFormatContext *ic;
int err, i, ret;
int st_index[CODEC_TYPE_NB];
+ int st_count[CODEC_TYPE_NB]={0};
AVPacket pkt1, *pkt = &pkt1;
AVFormatParameters params, *ap = &params;
int eof=0;
@@ -2045,18 +2046,20 @@ static int decode_thread(void *arg)
for(i = 0; i < ic->nb_streams; i++) {
AVCodecContext *avctx = ic->streams[i]->codec;
ic->streams[i]->discard = AVDISCARD_ALL;
+ if(avctx->codec_type >= (unsigned)CODEC_TYPE_NB)
+ exit(1);
+ if(st_count[avctx->codec_type]++ != wanted_stream[avctx->codec_type] && wanted_stream[avctx->codec_type] >= 0)
+ continue;
+
switch(avctx->codec_type) {
case CODEC_TYPE_AUDIO:
- if (wanted_stream[CODEC_TYPE_AUDIO]-- >= 0 && !audio_disable)
+ if (!audio_disable)
st_index[CODEC_TYPE_AUDIO] = i;
break;
case CODEC_TYPE_VIDEO:
- if (wanted_stream[CODEC_TYPE_VIDEO]-- >= 0 && !video_disable)
- st_index[CODEC_TYPE_VIDEO] = i;
- break;
case CODEC_TYPE_SUBTITLE:
- if (wanted_stream[CODEC_TYPE_SUBTITLE]-- >= 0 && !video_disable)
- st_index[CODEC_TYPE_SUBTITLE] = i;
+ if (!video_disable)
+ st_index[avctx->codec_type] = i;
break;
default:
break;