On EOF keep calling the decoders until they do not output anything
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 13 Jul 2008 21:39:18 +0000 (21:39 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 13 Jul 2008 21:39:18 +0000 (21:39 +0000)
anymore, instead of just once.

Originally committed as revision 14220 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffmpeg.c

index 48ce906ad411a93c0bc8ef0a204383c373e7e091..4d77405677adcb2b37218dfc8a0f0604ed60e337 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1139,7 +1139,9 @@ static int output_packet(AVInputStream *ist, int ist_index,
 
     len = pkt->size;
     ptr = pkt->data;
-    while (len > 0) {
+
+    //while we have more to decode or while the decoder did output something on EOF
+    while (len > 0 || (!pkt && ist->next_pts != ist->pts)) {
     handle_eof:
         ist->pts= ist->next_pts;