diff --git a/ffmpeg.c b/ffmpeg.c
index 84183d79f433074e7f99be4af34dcbeec3504a1a..9990aef543aa90d9776281ac166f9b7d97bed7f5 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -961,7 +961,9 @@ static int av_encode(AVFormatContext **output_files,
                                                ptr, len);
                     if (ret < 0)
                         goto fail_decode;
-                    if (data_size == 0) {
+                    /* Some bug in mpeg audio decoder gives */
+                    /* data_size < 0, it seems they are overflows */
+                    if (data_size <= 0) {
                         /* no audio frame */
                         ptr += ret;
                         len -= ret;