diff options
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index caa15abbae..66c3ed7ab2 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1585,26 +1585,26 @@ int av_find_default_stream_index(AVFormatContext *s) int i; AVStream *st; int best_stream = 0; - int best_score = -1; + int best_score = INT_MIN; if (s->nb_streams <= 0) return -1; for (i = 0; i < s->nb_streams; i++) { int score = 0; st = s->streams[i]; - if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO && - !(st->disposition & AV_DISPOSITION_ATTACHED_PIC)) { - if (!st->codec->width && !st->codec->height && !st->codec_info_nb_frames) - score += 25; - else - score += 100; + if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { + if (st->disposition & AV_DISPOSITION_ATTACHED_PIC) + score -= 400; + if (st->codec->width && st->codec->height) + score += 50; + score+= 25; } if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) { - if (!st->codec->sample_rate && !st->codec_info_nb_frames) - score += 12; - else + if (st->codec->sample_rate) score += 50; } + if (st->codec_info_nb_frames) + score += 12; if (st->discard != AVDISCARD_ALL) score += 200; |