caca.c File Reference
#include <caca.h>
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avdevice.h"
Include dependency graph for caca.c:

Go to the source code of this file.

Data Structures

struct  CACAContext
 

Macros

#define DEFINE_LIST_DITHER(thing, thing_str)
 
#define CHECK_DITHER_OPT(opt)
 
#define OFFSET(x)   offsetof(CACAContext,x)
 
#define ENC   AV_OPT_FLAG_ENCODING_PARAM
 

Typedefs

typedef struct CACAContext CACAContext
 

Functions

static int caca_write_trailer (AVFormatContext *s)
 
static void list_drivers (CACAContext *c)
 
 DEFINE_LIST_DITHER (color,"colors")
 
 DEFINE_LIST_DITHER (charset,"charsets")
 
 DEFINE_LIST_DITHER (algorithm,"algorithms")
 
 DEFINE_LIST_DITHER (antialias,"antialias")
 
static int caca_write_header (AVFormatContext *s)
 
static int caca_write_packet (AVFormatContext *s, AVPacket *pkt)
 

Variables

static const AVOption options []
 
static const AVClass caca_class
 
AVOutputFormat ff_caca_muxer
 

Macro Definition Documentation

#define CHECK_DITHER_OPT (   opt)
Value:
if (caca_set_dither_##opt(c->dither, c->opt) < 0) { \
ret = AVERROR(errno); \
av_log(s, AV_LOG_ERROR, "Failed to set value '%s' for option '%s'\n", \
c->opt, #opt); \
goto fail; \
}
const char * s
Definition: avisynth_c.h:668
void av_log(void *avcl, int level, const char *fmt,...)
Definition: log.c:246
ret
Definition: avfilter.c:821
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:148
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFilterBuffer structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later.That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another.Buffer references ownership and permissions
static double c[64]

Referenced by caca_write_header().

#define DEFINE_LIST_DITHER (   thing,
  thing_str 
)
Value:
static void list_dither_## thing(CACAContext *c) \
{ \
const char *const *thing = caca_get_dither_## thing ##_list(c->dither); \
int i; \
av_log(c->ctx, AV_LOG_INFO, "Available %s:\n", thing_str); \
for (i = 0; thing[i]; i += 2) \
av_log(c->ctx, AV_LOG_INFO, "%s : %s\n", thing[i], thing[i + 1]); \
}
void av_log(void *avcl, int level, const char *fmt,...)
Definition: log.c:246
synthesis window for stochastic i
static double c[64]
#define AV_LOG_INFO
Definition: log.h:156
for(j=16;j >0;--j)

Definition at line 75 of file caca.c.

#define ENC   AV_OPT_FLAG_ENCODING_PARAM

Definition at line 201 of file caca.c.

#define OFFSET (   x)    offsetof(CACAContext,x)

Definition at line 200 of file caca.c.

Typedef Documentation

typedef struct CACAContext CACAContext

Function Documentation

static int caca_write_header ( AVFormatContext s)
static

Definition at line 91 of file caca.c.

static int caca_write_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 190 of file caca.c.

static int caca_write_trailer ( AVFormatContext s)
static

Definition at line 44 of file caca.c.

Referenced by caca_write_header().

DEFINE_LIST_DITHER ( color  ,
"colors"   
)
DEFINE_LIST_DITHER ( charset  ,
"charsets"   
)
DEFINE_LIST_DITHER ( algorithm  ,
"algorithms"   
)
DEFINE_LIST_DITHER ( antialias  ,
"antialias"   
)
static void list_drivers ( CACAContext c)
static

Definition at line 65 of file caca.c.

Variable Documentation

const AVClass caca_class
static
Initial value:
= {
.class_name = "caca_outdev",
.item_name = av_default_item_name,
.option = options,
}
av_default_item_name
static const AVOption options[]
Definition: caca.c:203
LIBAVUTIL_VERSION_INT
Definition: eval.c:55

Definition at line 222 of file caca.c.

AVOutputFormat ff_caca_muxer
Initial value:
= {
.name = "caca",
.long_name = NULL_IF_CONFIG_SMALL("caca (color ASCII art) output device"),
.priv_data_size = sizeof(CACAContext),
.audio_codec = AV_CODEC_ID_NONE,
.video_codec = AV_CODEC_ID_RAWVIDEO,
.priv_class = &caca_class,
}
static int write_packet(AVFormatContext *s, AVPacket *pkt)
struct CACAContext CACAContext
static int caca_write_trailer(AVFormatContext *s)
Definition: caca.c:44
static int write_trailer(AVFormatContext *s)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static int caca_write_header(AVFormatContext *s)
Definition: caca.c:91
static int flags
Definition: cpu.c:23
#define AVFMT_NOFILE
Demuxer will use avio_open, no opened file should be provided by the caller.
Definition: avformat.h:345
static int caca_write_packet(AVFormatContext *s, AVPacket *pkt)
Definition: caca.c:190
static void write_header(FFV1Context *f)
Definition: ffv1enc.c:470
static const AVClass caca_class
Definition: caca.c:222

Definition at line 229 of file caca.c.

const AVOption options[]
static
Initial value:
= {
{ "window_size", "set window forced size", OFFSET(window_width), AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL }, 0, 0, ENC},
{ "window_title", "set window title", OFFSET(window_title), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, ENC },
{ "driver", "set display driver", OFFSET(driver), AV_OPT_TYPE_STRING, {.str = NULL }, 0, 0, ENC },
{ "algorithm", "set dithering algorithm", OFFSET(algorithm), AV_OPT_TYPE_STRING, {.str = "default" }, 0, 0, ENC },
{ "antialias", "set antialias method", OFFSET(antialias), AV_OPT_TYPE_STRING, {.str = "default" }, 0, 0, ENC },
{ "charset", "set charset used to render output", OFFSET(charset), AV_OPT_TYPE_STRING, {.str = "default" }, 0, 0, ENC },
{ "color", "set color used to render output", OFFSET(color), AV_OPT_TYPE_STRING, {.str = "default" }, 0, 0, ENC },
{ "list_drivers", "list available drivers", OFFSET(list_drivers), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, ENC, "list_drivers" },
{ "true", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 1}, 0, 0, ENC, "list_drivers" },
{ "false", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 0, ENC, "list_drivers" },
{ "list_dither", "list available dither options", OFFSET(list_dither), AV_OPT_TYPE_STRING, {.dbl=0}, 0, 1, ENC, "list_dither" },
{ "algorithms", NULL, 0, AV_OPT_TYPE_CONST, {.str = "algorithms"}, 0, 0, ENC, "list_dither" },
{ "antialiases", NULL, 0, AV_OPT_TYPE_CONST, {.str = "antialiases"},0, 0, ENC, "list_dither" },
{ "charsets", NULL, 0, AV_OPT_TYPE_CONST, {.str = "charsets"}, 0, 0, ENC, "list_dither" },
{ "colors", NULL, 0, AV_OPT_TYPE_CONST, {.str = "colors"}, 0, 0, ENC, "list_dither" },
{ NULL },
}
static void list_drivers(CACAContext *c)
Definition: caca.c:65
static const uint32_t color[16+AV_CLASS_CATEGORY_NB]
Definition: log.c:77
NULL
Definition: eval.c:55
#define ENC
Definition: caca.c:201
static const char * window_title
Definition: ffplay.c:274
offset must point to two consecutive integers
Definition: opt.h:230
#define OFFSET(x)
Definition: caca.c:200

Definition at line 203 of file caca.c.