diff --git a/libswscale/tests/pixdesc_query.c b/libswscale/tests/pixdesc_query.c
index a4aa8ac487ef50d098e0575d2c05a0f370b78ee6..34b33c685132250d3fde2dd3a7aa69aa17b92751 100644
--- a/libswscale/tests/pixdesc_query.c
+++ b/libswscale/tests/pixdesc_query.c
@@ -18,6 +18,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/mem.h"
 #include "libswscale/swscale_internal.h"
 
 static const struct {
@@ -45,17 +46,27 @@ static const struct {
 
 int main(void)
 {
-    int i;
+    int i, j;
 
     for (i = 0; i < FF_ARRAY_ELEMS(query_tab); i++) {
+        const char **pix_fmts = NULL;
+        int nb_pix_fmts = 0;
         const AVPixFmtDescriptor *pix_desc = NULL;
-        printf("%s:\n", query_tab[i].class);
+
         while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) {
             enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc);
             if (query_tab[i].cond(pix_fmt))
-                printf("  %s\n", pix_desc->name);
+                av_dynarray_add(&pix_fmts, &nb_pix_fmts, (void *)pix_desc->name);
+        }
+
+        if (pix_fmts) {
+            printf("%s:\n", query_tab[i].class);
+            for (j = 0; j < nb_pix_fmts; j++)
+                printf("  %s\n", pix_fmts[j]);
+            printf("\n");
+
+            free(pix_fmts);
         }
-        printf("\n");
     }
     return 0;
 }