Set AVStream.discard, so that demuxers can choose which stream to select if that is a serverside option (as is the case for RTSP). See "Realmedia patch" thread on mailinglist.

Originally committed as revision 14825 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Ronald S. Bultje 2008-08-18 17:09:34 +00:00
parent fc7ed9a6f6
commit 3f3fe38d25
1 changed files with 3 additions and 0 deletions

View File

@ -1773,6 +1773,7 @@ static int stream_component_open(VideoState *is, int stream_index)
if(thread_count>1) if(thread_count>1)
avcodec_thread_init(enc, thread_count); avcodec_thread_init(enc, thread_count);
enc->thread_count= thread_count; enc->thread_count= thread_count;
ic->streams[stream_index]->discard = AVDISCARD_DEFAULT;
switch(enc->codec_type) { switch(enc->codec_type) {
case CODEC_TYPE_AUDIO: case CODEC_TYPE_AUDIO:
is->audio_stream = stream_index; is->audio_stream = stream_index;
@ -1869,6 +1870,7 @@ static void stream_component_close(VideoState *is, int stream_index)
break; break;
} }
ic->streams[stream_index]->discard = AVDISCARD_ALL;
avcodec_close(enc); avcodec_close(enc);
switch(enc->codec_type) { switch(enc->codec_type) {
case CODEC_TYPE_AUDIO: case CODEC_TYPE_AUDIO:
@ -1979,6 +1981,7 @@ static int decode_thread(void *arg)
for(i = 0; i < ic->nb_streams; i++) { for(i = 0; i < ic->nb_streams; i++) {
AVCodecContext *enc = ic->streams[i]->codec; AVCodecContext *enc = ic->streams[i]->codec;
ic->streams[i]->discard = AVDISCARD_ALL;
switch(enc->codec_type) { switch(enc->codec_type) {
case CODEC_TYPE_AUDIO: case CODEC_TYPE_AUDIO:
if ((audio_index < 0 || wanted_audio_stream-- > 0) && !audio_disable) if ((audio_index < 0 || wanted_audio_stream-- > 0) && !audio_disable)