lavf: allow av_find_best_stream to return AV_DISPOSITION_*_IMPAIRED wanted_streams
authorMarton Balint <cus@passwd.hu>
Tue, 4 Feb 2014 22:59:47 +0000 (23:59 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 10 Feb 2014 11:58:59 +0000 (12:58 +0100)
Previously these type of streams were not returned even if wanted stream was
set to a stream of such. Now they are only skipped if they are not wanted
streams.

Fixes ffplay -sst <stream number> out.ts where stream number is a *_IMPAIRED stream.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/utils.c

index 2be4279..5cb7561 100644 (file)
@@ -3373,7 +3373,8 @@ int av_find_best_stream(AVFormatContext *ic, enum AVMediaType type,
             continue;
         if (wanted_stream_nb >= 0 && real_stream_index != wanted_stream_nb)
             continue;
-        if (st->disposition & (AV_DISPOSITION_HEARING_IMPAIRED |
+        if (wanted_stream_nb != real_stream_index &&
+            st->disposition & (AV_DISPOSITION_HEARING_IMPAIRED |
                                AV_DISPOSITION_VISUAL_IMPAIRED))
             continue;
         if (type == AVMEDIA_TYPE_AUDIO && !avctx->channels)