cmdutils: fix new API break the "ffmpeg -muxers/demuxers"
[ffmpeg.git] / libavfilter / tests / drawutils.c
1 /*
2  * This file is part of FFmpeg.
3  *
4  * FFmpeg is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * FFmpeg is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with FFmpeg; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18
19 #include <stdio.h>
20
21 #include "libavutil/pixdesc.h"
22 #include "libavfilter/drawutils.h"
23
24 int main(void)
25 {
26     enum AVPixelFormat f;
27     const AVPixFmtDescriptor *desc;
28     FFDrawContext draw;
29     FFDrawColor color;
30     int r, i;
31
32     for (f = 0; av_pix_fmt_desc_get(f); f++) {
33         desc = av_pix_fmt_desc_get(f);
34         if (!desc->name)
35             continue;
36         printf("Testing %s...%*s", desc->name,
37                (int)(16 - strlen(desc->name)), "");
38         r = ff_draw_init(&draw, f, 0);
39         if (r < 0) {
40             char buf[128];
41             av_strerror(r, buf, sizeof(buf));
42             printf("no: %s\n", buf);
43             continue;
44         }
45         ff_draw_color(&draw, &color, (uint8_t[]) { 1, 0, 0, 1 });
46         for (i = 0; i < sizeof(color); i++)
47             if (((uint8_t *)&color)[i] != 128)
48                 break;
49         if (i == sizeof(color)) {
50             printf("fallback color\n");
51             continue;
52         }
53         printf("ok\n");
54     }
55     return 0;
56 }