diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 8271d4c648ffc67c68dc76f479079d05cef8282c..b22b8fcf28087436fff8969920c990327b1d9b2a 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -279,9 +279,10 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
                      enc->width, enc->height, 
                      (float)enc->frame_rate / FRAME_RATE_BASE);
         }
-        snprintf(buf + strlen(buf), buf_size - strlen(buf),
-                ", q=%d-%d", enc->qmin, enc->qmax);
-
+        if (encode) {
+            snprintf(buf + strlen(buf), buf_size - strlen(buf),
+                     ", q=%d-%d", enc->qmin, enc->qmax);
+        }
         bitrate = enc->bit_rate;
         break;
     case CODEC_TYPE_AUDIO:
@@ -331,6 +332,14 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
     default:
         av_abort();
     }
+    if (encode) {
+        if (enc->flags & CODEC_FLAG_PASS1)
+            snprintf(buf + strlen(buf), buf_size - strlen(buf),
+                     ", pass 1");
+        if (enc->flags & CODEC_FLAG_PASS2)
+            snprintf(buf + strlen(buf), buf_size - strlen(buf),
+                     ", pass 2");
+    }
     if (bitrate != 0) {
         snprintf(buf + strlen(buf), buf_size - strlen(buf), 
                  ", %d kb/s", bitrate / 1000);