has_decode_delay_been_guessed: improve heuristic
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 2 Jul 2012 20:59:42 +0000 (22:59 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 2 Jul 2012 20:59:42 +0000 (22:59 +0200)
This allows MR4_TANDBERG_C.264 and MR5_TANDBERG_C.264 to be decoded without -strict 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/utils.c

index 27804b8..00a8239 100644 (file)
@@ -2284,8 +2284,10 @@ static int has_codec_parameters(AVStream *st)
 
 static int has_decode_delay_been_guessed(AVStream *st)
 {
-    return st->codec->codec_id != CODEC_ID_H264 ||
-        st->info->nb_decoded_frames >= 6;
+    if(st->codec->codec_id != CODEC_ID_H264) return 1;
+    if(st->codec->has_b_frames<3)
+        return st->info->nb_decoded_frames >= 6;
+    return st->info->nb_decoded_frames >= 20;
 }
 
 /* returns 1 or 0 if or if not decoded data was returned, or a negative error */