sws/tests/pixdesc_query: save every pix fmts in a list
authorClément Bœsch <u@pkh.me>
Thu, 23 Mar 2017 22:21:07 +0000 (23:21 +0100)
committerClément Bœsch <u@pkh.me>
Sun, 30 Jul 2017 14:04:36 +0000 (16:04 +0200)
This will be required for the next commit.

libswscale/tests/pixdesc_query.c

index a4aa8ac..34b33c6 100644 (file)
@@ -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;
 }