#include <float.h>
#include "libavutil/opt.h"
#include "libavutil/imgutils.h"
#include "avfilter.h"
#include "drawutils.h"
#include "formats.h"
#include "internal.h"
#include "video.h"
Go to the source code of this file.
|
static float | saturate (float input) |
|
static void | kelvin2rgb (float k, float *rgb) |
|
static float | lerpf (float v0, float v1, float f) |
|
static int | temperature_slice8 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) |
|
static int | temperature_slice16 (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) |
|
static int | temperature_slice8p (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) |
|
static int | temperature_slice16p (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) |
|
static int | filter_frame (AVFilterLink *inlink, AVFrame *frame) |
|
static av_cold int | config_input (AVFilterLink *inlink) |
|
| AVFILTER_DEFINE_CLASS (colortemperature) |
|
◆ PROCESS
Value:
\
\
l1 = (
FFMAX3(nr, ng, nb) +
FFMIN3(nr, ng, nb)) + FLT_EPSILON; \
l = l0 / l1; \
\
r = nr * l; \
g = ng * l; \
b = nb * l; \
\
nr =
lerpf(nr,
r, preserve); \
ng =
lerpf(ng,
g, preserve); \
Definition at line 83 of file vf_colortemperature.c.
◆ OFFSET
◆ VF
◆ saturate()
static float saturate |
( |
float |
input | ) |
|
|
static |
◆ kelvin2rgb()
static void kelvin2rgb |
( |
float |
k, |
|
|
float * |
rgb |
|
) |
| |
|
static |
◆ lerpf()
static float lerpf |
( |
float |
v0, |
|
|
float |
v1, |
|
|
float |
f |
|
) |
| |
|
static |
◆ temperature_slice8()
◆ temperature_slice16()
◆ temperature_slice8p()
◆ temperature_slice16p()
◆ filter_frame()
◆ config_input()
◆ AVFILTER_DEFINE_CLASS()
AVFILTER_DEFINE_CLASS |
( |
colortemperature |
| ) |
|
◆ pixel_fmts
◆ inputs
◆ outputs
◆ colortemperature_options
const AVOption colortemperature_options[] |
|
static |
◆ ff_vf_colortemperature
Initial value:= {
.name = "colortemperature",
.priv_class = &colortemperature_class,
}
Definition at line 347 of file vf_colortemperature.c.
#define AV_PIX_FMT_GBRAP16
static int mix(int c0, int c1)
static float lerpf(float v0, float v1, float f)
#define FILTER_PIXFMTS_ARRAY(array)
@ AV_PIX_FMT_BGR24
packed RGB 8:8:8, 24bpp, BGRBGR...
@ AV_PIX_FMT_BGRA
packed BGRA 8:8:8:8, 32bpp, BGRABGRA...
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
static av_cold int config_input(AVFilterLink *inlink)
static const AVFilterPad outputs[]
#define AV_PIX_FMT_GBRP14
@ AV_PIX_FMT_GBRAP
planar GBRA 4:4:4:4 32bpp
#define AV_PIX_FMT_GBRP10
#define AV_PIX_FMT_GBRAP10
#define AV_PIX_FMT_GBRAP12
static const AVFilterPad inputs[]
#define FILTER_INPUTS(array)
@ AV_PIX_FMT_RGBA
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
#define AV_PIX_FMT_GBRP16
#define AV_PIX_FMT_RGBA64
@ AV_PIX_FMT_BGR0
packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined
@ AV_PIX_FMT_ABGR
packed ABGR 8:8:8:8, 32bpp, ABGRABGR...
@ AV_PIX_FMT_RGB24
packed RGB 8:8:8, 24bpp, RGBRGB...
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
int ff_filter_process_command(AVFilterContext *ctx, const char *cmd, const char *arg, char *res, int res_len, int flags)
Generic processing of user supplied commands that are set in the same way as the filter options.
@ AV_PIX_FMT_RGB0
packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined
#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
Some filters support a generic "enable" expression option that can be used to enable or disable a fil...
@ AV_PIX_FMT_ARGB
packed ARGB 8:8:8:8, 32bpp, ARGBARGB...
#define AV_PIX_FMT_BGRA64
#define AV_PIX_FMT_GBRP12
@ AV_PIX_FMT_0BGR
packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined
@ AV_PIX_FMT_GBRP
planar GBR 4:4:4 24bpp
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
#define FILTER_OUTPUTS(array)
@ AV_PIX_FMT_0RGB
packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined
static enum AVPixelFormat pixel_fmts[]
#define AVFILTERPAD_FLAG_NEEDS_WRITABLE
The filter expects writable frames from its input link, duplicating data buffers if needed.