|
|
|
@@ -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; |
|
|
|
|