FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
drawutils.c
Go to the documentation of this file.
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;
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 }
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
Definition: pixdesc.c:2419
const char * desc
Definition: nvenc.c:60
uint8_t
static const uint32_t color[16+AV_CLASS_CATEGORY_NB]
Definition: log.c:94
const char * name
Definition: pixdesc.h:82
int main(void)
Definition: drawutils.c:24
const char * r
Definition: vf_curves.c:111
void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4])
Prepare a color.
Definition: drawutils.c:226
misc drawing utilities
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
Definition: pixdesc.h:81
void * buf
Definition: avisynth_c.h:690
int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags)
Init a draw context.
Definition: drawutils.c:178
int av_strerror(int errnum, char *errbuf, size_t errbuf_size)
Put a description of the AVERROR code errnum in errbuf.
Definition: error.c:105
AVPixelFormat
Pixel format.
Definition: pixfmt.h:60