51 #define OFFSET(x) offsetof(ELBGContext, x) 
   52 #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM 
   57     { 
"nb_steps", 
"set max number of steps used to compute the mapping", 
OFFSET(max_steps_nb), 
AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, 
FLAGS },
 
   58     { 
"n",        
"set max number of steps used to compute the mapping", 
OFFSET(max_steps_nb), 
AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, 
FLAGS },
 
  110 #define NB_COMPONENTS 3 
  157     for (i = 0; i < inlink->
h; i++) {
 
  159         for (j = 0; j < inlink->
w; j++) {
 
  185         pal = (uint32_t *)out->
data[1];
 
  189             pal[i] = (elbg->
codebook[i*3  ] << 16) |
 
  195         for (i = 0; i < inlink->
h; i++) {
 
  197             for (j = 0; j < inlink->
w; j++, p++) {
 
  210     for (i = 0; i < inlink->
h; i++) {
 
  212         for (j = 0; j < inlink->
w; j++) {
 
  215             p[g_idx] = elbg->
codebook[cb_idx+1];
 
  216             p[b_idx] = elbg->
codebook[cb_idx+2];
 
  257     .priv_class    = &elbg_class,
 
static av_cold void uninit(AVFilterContext *ctx)
 
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
 
This structure describes decoded (raw) audio or video data. 
 
#define av_realloc_f(p, o, n)
 
Main libavfilter public API header. 
 
packed RGB 8:8:8, 24bpp, RGBRGB... 
 
static int config_input(AVFilterLink *inlink)
 
int h
agreed upon image height 
 
AVFrame * ff_get_video_buffer(AVFilterLink *link, int w, int h)
Request a picture buffer with a specific set of permissions. 
 
static const AVFilterPad elbg_inputs[]
 
const char * name
Pad name. 
 
AVFilterLink ** inputs
array of pointers to input links 
 
int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
Send a frame of data to the next filter. 
 
8 bit with AV_PIX_FMT_RGB32 palette 
 
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user). 
 
int avpriv_do_elbg(int *points, int dim, int numpoints, int *codebook, int numCB, int max_steps, int *closest_cb, AVLFG *rand_state)
Implementation of the Enhanced LBG Algorithm Based on the paper "Neural Networks 14:1219-1237" that c...
 
packed ABGR 8:8:8:8, 32bpp, ABGRABGR... 
 
A filter pad used for either input or output. 
 
A link between two filters. 
 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
 
static int query_formats(AVFilterContext *ctx)
 
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g. 
 
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
 
packed BGRA 8:8:8:8, 32bpp, BGRABGRA... 
 
void * priv
private data for use by the filter 
 
AVFilterFormats * in_formats
Lists of formats and channel layouts supported by the input and output filters respectively. 
 
packed ARGB 8:8:8:8, 32bpp, ARGBARGB... 
 
packed RGBA 8:8:8:8, 32bpp, RGBARGBA... 
 
int w
agreed upon image width 
 
static const AVOption elbg_options[]
 
uint8_t nb_components
The number of components each pixel has, (1-4) 
 
packed RGB 8:8:8, 24bpp, BGRBGR... 
 
static const AVFilterPad outputs[]
 
int format
agreed upon media format 
 
int ff_fill_rgba_map(uint8_t *rgba_map, enum AVPixelFormat pix_fmt)
 
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
 
static const AVFilterPad elbg_outputs[]
 
static const AVFilterPad inputs[]
 
static av_cold int init(AVFilterContext *ctx)
 
int avpriv_init_elbg(int *points, int dim, int numpoints, int *codebook, int numCB, int max_steps, int *closest_cb, AVLFG *rand_state)
Initialize the **codebook vector for the elbg algorithm. 
 
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line. 
 
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
 
Describe the class of an AVClass context structure. 
 
const AVPixFmtDescriptor * pix_desc
 
const char * name
Filter name. 
 
av_cold void av_lfg_init(AVLFG *c, unsigned int seed)
 
AVFilterLink ** outputs
array of pointers to output links 
 
static enum AVPixelFormat pix_fmts[]
 
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes. 
 
AVFILTER_DEFINE_CLASS(elbg)
 
AVFilterContext * dst
dest filter 
 
uint32_t av_get_random_seed(void)
Get a seed to use in conjunction with random functions. 
 
AVPixelFormat
Pixel format. 
 
AVFilterFormats * out_formats
 
int * codeword_closest_codebook_idxs