FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
vf_waveform.c File Reference
#include "libavutil/avassert.h"
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/xga_font_data.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"
#include "video.h"

Go to the source code of this file.

Data Structures

struct  ThreadData
 Used for passing data between threads. More...
 
struct  GraticuleLine
 
struct  GraticuleLines
 
struct  WaveformContext
 

Macros

#define OFFSET(x)   offsetof(WaveformContext, x)
 
#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
 
#define LOWPASS16_FUNC(name, column, mirror)
 
#define LOWPASS_FUNC(name, column, mirror)
 
#define FLAT16_FUNC(name, column, mirror)
 
#define FLAT_FUNC(name, column, mirror)
 
#define AFLAT16(name, update_cb, update_cr, column, mirror)
 
#define AFLAT(name, update_cb, update_cr, column, mirror)
 
#define CHROMA16_FUNC(name, column, mirror)
 
#define CHROMA_FUNC(name, column, mirror)
 
#define COLOR16_FUNC(name, column, mirror)
 
#define COLOR_FUNC(name, column, mirror)
 
#define ACOLOR16_FUNC(name, column, mirror)
 
#define ACOLOR_FUNC(name, column, mirror)
 

Enumerations

enum  FilterType {
  BUTTERWORTH, CHEBYSHEV1, CHEBYSHEV2, NB_TYPES,
  biquad, equalizer, bass, treble,
  bandpass, bandreject, allpass, highpass,
  lowpass, lowshelf, highshelf, WEAK,
  STRONG, NB_FILTER, LOWPASS, FLAT,
  AFLAT, CHROMA, COLOR, ACOLOR,
  XFLAT, YFLAT, NB_FILTERS
}
 
enum  DisplayType { OVERLAY, STACK, PARADE, NB_DISPLAYS }
 
enum  ScaleType { DIGITAL, MILLIVOLTS, IRE, NB_SCALES }
 
enum  GraticuleType {
  GRAT_NONE, GRAT_GREEN, GRAT_ORANGE, GRAT_INVERT,
  NB_GRATICULES
}
 

Functions

 AVFILTER_DEFINE_CLASS (waveform)
 
static int query_formats (AVFilterContext *ctx)
 
static void envelope_instant16 (WaveformContext *s, AVFrame *out, int plane, int component, int offset)
 
static void envelope_instant (WaveformContext *s, AVFrame *out, int plane, int component, int offset)
 
static void envelope_peak16 (WaveformContext *s, AVFrame *out, int plane, int component, int offset)
 
static void envelope_peak (WaveformContext *s, AVFrame *out, int plane, int component, int offset)
 
static void envelope16 (WaveformContext *s, AVFrame *out, int plane, int component, int offset)
 
static void envelope (WaveformContext *s, AVFrame *out, int plane, int component, int offset)
 
static void update16 (uint16_t *target, int max, int intensity, int limit)
 
static void update (uint8_t *target, int max, int intensity)
 
static void update_cr (uint8_t *target, int unused, int intensity)
 
static void update16_cr (uint16_t *target, int unused, int intensity, int limit)
 
static av_always_inline void lowpass16 (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void lowpass (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void flat16 (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void flat (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void chroma16 (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void chroma (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void color16 (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void color (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void acolor16 (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static av_always_inline void acolor (WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
 
static void blend_vline (uint8_t *dst, int height, int linesize, float o1, float o2, int v, int step)
 
static void blend_vline16 (uint8_t *ddst, int height, int linesize, float o1, float o2, int v, int step)
 
static void blend_hline (uint8_t *dst, int width, int unused, float o1, float o2, int v, int step)
 
static void blend_hline16 (uint8_t *ddst, int width, int unused, float o1, float o2, int v, int step)
 
static void draw_htext (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void draw_htext16 (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void draw_vtext (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void draw_vtext16 (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void iblend_vline (uint8_t *dst, int height, int linesize, float o1, float o2, int v, int step)
 
static void iblend_vline16 (uint8_t *ddst, int height, int linesize, float o1, float o2, int v, int step)
 
static void iblend_hline (uint8_t *dst, int width, int unused, float o1, float o2, int v, int step)
 
static void iblend_hline16 (uint8_t *ddst, int width, int unused, float o1, float o2, int v, int step)
 
static void idraw_htext (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void idraw_htext16 (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void idraw_vtext (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void idraw_vtext16 (AVFrame *out, int x, int y, int mult, float o1, float o2, const char *txt, const uint8_t color[4])
 
static void graticule_none (WaveformContext *s, AVFrame *out)
 
static void graticule_row (WaveformContext *s, AVFrame *out)
 
static void graticule16_row (WaveformContext *s, AVFrame *out)
 
static void graticule_column (WaveformContext *s, AVFrame *out)
 
static void graticule16_column (WaveformContext *s, AVFrame *out)
 
static int config_input (AVFilterLink *inlink)
 
static int config_output (AVFilterLink *outlink)
 
static int filter_frame (AVFilterLink *inlink, AVFrame *in)
 
static av_cold void uninit (AVFilterContext *ctx)
 

Variables

static const AVOption waveform_options []
 
static enum AVPixelFormat in_lowpass_pix_fmts []
 
static enum AVPixelFormat in_color_pix_fmts []
 
static enum AVPixelFormat in_flat_pix_fmts []
 
static enum AVPixelFormat out_rgb8_lowpass_pix_fmts []
 
static enum AVPixelFormat out_rgb9_lowpass_pix_fmts []
 
static enum AVPixelFormat out_rgb10_lowpass_pix_fmts []
 
static enum AVPixelFormat out_rgb12_lowpass_pix_fmts []
 
static enum AVPixelFormat out_yuv8_lowpass_pix_fmts []
 
static enum AVPixelFormat out_yuv9_lowpass_pix_fmts []
 
static enum AVPixelFormat out_yuv10_lowpass_pix_fmts []
 
static enum AVPixelFormat out_yuv12_lowpass_pix_fmts []
 
static enum AVPixelFormat out_gray8_lowpass_pix_fmts []
 
static enum AVPixelFormat out_gray9_lowpass_pix_fmts []
 
static enum AVPixelFormat out_gray10_lowpass_pix_fmts []
 
static enum AVPixelFormat out_gray12_lowpass_pix_fmts []
 
static enum AVPixelFormat flat_pix_fmts []
 
static const uint8_t black_yuva_color [4] = { 0, 127, 127, 255 }
 
static const uint8_t black_gbrp_color [4] = { 0, 0, 0, 255 }
 
static const GraticuleLines aflat_digital8 []
 
static const GraticuleLines aflat_digital9 []
 
static const GraticuleLines aflat_digital10 []
 
static const GraticuleLines aflat_digital12 []
 
static const GraticuleLines aflat_millivolts8 []
 
static const GraticuleLines aflat_millivolts9 []
 
static const GraticuleLines aflat_millivolts10 []
 
static const GraticuleLines aflat_millivolts12 []
 
static const GraticuleLines aflat_ire8 []
 
static const GraticuleLines aflat_ire9 []
 
static const GraticuleLines aflat_ire10 []
 
static const GraticuleLines aflat_ire12 []
 
static const GraticuleLines flat_digital8 []
 
static const GraticuleLines flat_digital9 []
 
static const GraticuleLines flat_digital10 []
 
static const GraticuleLines flat_digital12 []
 
static const GraticuleLines flat_millivolts8 []
 
static const GraticuleLines flat_millivolts9 []
 
static const GraticuleLines flat_millivolts10 []
 
static const GraticuleLines flat_millivolts12 []
 
static const GraticuleLines flat_ire8 []
 
static const GraticuleLines flat_ire9 []
 
static const GraticuleLines flat_ire10 []
 
static const GraticuleLines flat_ire12 []
 
static const GraticuleLines digital8 []
 
static const GraticuleLines digital9 []
 
static const GraticuleLines digital10 []
 
static const GraticuleLines digital12 []
 
static const GraticuleLines millivolts8 []
 
static const GraticuleLines millivolts9 []
 
static const GraticuleLines millivolts10 []
 
static const GraticuleLines millivolts12 []
 
static const GraticuleLines ire8 []
 
static const GraticuleLines ire9 []
 
static const GraticuleLines ire10 []
 
static const GraticuleLines ire12 []
 
static const GraticuleLines chroma_digital8 []
 
static const GraticuleLines chroma_digital9 []
 
static const GraticuleLines chroma_digital10 []
 
static const GraticuleLines chroma_digital12 []
 
static const AVFilterPad inputs []
 
static const AVFilterPad outputs []
 
AVFilter ff_vf_waveform
 

Macro Definition Documentation

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

Definition at line 128 of file vf_waveform.c.

Definition at line 129 of file vf_waveform.c.

#define LOWPASS16_FUNC (   name,
  column,
  mirror 
)
Value:
static int lowpass16_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
lowpass16(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
static av_always_inline void lowpass16(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:673
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 735 of file vf_waveform.c.

#define LOWPASS_FUNC (   name,
  column,
  mirror 
)
Value:
static int lowpass_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
lowpass(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
static av_always_inline void lowpass(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:760
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 843 of file vf_waveform.c.

#define FLAT16_FUNC (   name,
  column,
  mirror 
)
Value:
static int flat16_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
flat16(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
static av_always_inline void flat16(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:868
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 982 of file vf_waveform.c.

#define FLAT_FUNC (   name,
  column,
  mirror 
)
Value:
static int flat_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
flat(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
static av_always_inline void flat(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:1007
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 1119 of file vf_waveform.c.

#define AFLAT16 (   name,
  update_cb,
  update_cr,
  column,
  mirror 
)

Definition at line 1144 of file vf_waveform.c.

#define AFLAT (   name,
  update_cb,
  update_cr,
  column,
  mirror 
)

Definition at line 1278 of file vf_waveform.c.

Referenced by config_input(), filter_frame(), and query_formats().

#define CHROMA16_FUNC (   name,
  column,
  mirror 
)
Value:
static int chroma16_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
chroma16(s, in, out, component, s->intensity,\
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
static av_always_inline void chroma16(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:1436
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 1517 of file vf_waveform.c.

#define CHROMA_FUNC (   name,
  column,
  mirror 
)
Value:
static int chroma_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
chroma(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
static av_always_inline void chroma(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:1542
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 1621 of file vf_waveform.c.

#define COLOR16_FUNC (   name,
  column,
  mirror 
)
Value:
static int color16_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
color16(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
const char * arg
Definition: jacosubdec.c:66
static av_always_inline void color16(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:1646
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 1754 of file vf_waveform.c.

#define COLOR_FUNC (   name,
  column,
  mirror 
)
Value:
static int color_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
color(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
static av_always_inline void color(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:1779
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 1886 of file vf_waveform.c.

#define ACOLOR16_FUNC (   name,
  column,
  mirror 
)
Value:
static int acolor16_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
acolor16(s, in, out, component, s->intensity,\
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
static av_always_inline void acolor16(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:1911
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 2020 of file vf_waveform.c.

#define ACOLOR_FUNC (   name,
  column,
  mirror 
)
Value:
static int acolor_##name(AVFilterContext *ctx, \
void *arg, int jobnr, \
int nb_jobs) \
{ \
WaveformContext *s = ctx->priv; \
ThreadData *td = arg; \
AVFrame *in = td->in; \
AVFrame *out = td->out; \
int component = td->component; \
int offset_y = td->offset_y; \
int offset_x = td->offset_x; \
acolor(s, in, out, component, s->intensity, \
offset_y, offset_x, column, mirror, \
jobnr, nb_jobs); \
\
return 0; \
}
static av_always_inline void acolor(WaveformContext *s, AVFrame *in, AVFrame *out, int component, int intensity, int offset_y, int offset_x, int column, int mirror, int jobnr, int nb_jobs)
Definition: vf_waveform.c:2045
#define td
Definition: regdef.h:70
static void mirror(const float *modifier, float *vec)
Definition: vf_v360.c:2419
const char * arg
Definition: jacosubdec.c:66
AVFormatContext * ctx
Definition: movenc.c:48
#define s(width, name)
Definition: cbs_vp9.c:257
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31))))#define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac){}void ff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map){AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);return NULL;}return ac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;}int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){int use_generic=1;int len=in->nb_samples;int p;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
int
An instance of a filter.
Definition: avfilter.h:338
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a it should return
FILE * out
Definition: movenc.c:54
const char * name
Definition: opengl_enc.c:102

Definition at line 2153 of file vf_waveform.c.

Enumeration Type Documentation

enum FilterType
Enumerator
BUTTERWORTH 
CHEBYSHEV1 
CHEBYSHEV2 
NB_TYPES 
biquad 
equalizer 
bass 
treble 
bandpass 
bandreject 
allpass 
highpass 
lowpass 
lowshelf 
highshelf 
WEAK 
STRONG 
NB_FILTER 
LOWPASS 
FLAT 
AFLAT 
CHROMA 
COLOR 
ACOLOR 
XFLAT 
YFLAT 
NB_FILTERS 

Definition at line 40 of file vf_waveform.c.

Enumerator
OVERLAY 
STACK 
PARADE 
NB_DISPLAYS 

Definition at line 52 of file vf_waveform.c.

enum ScaleType
Enumerator
DIGITAL 
MILLIVOLTS 
IRE 
NB_SCALES 

Definition at line 59 of file vf_waveform.c.

Enumerator
GRAT_NONE 
GRAT_GREEN 
GRAT_ORANGE 
GRAT_INVERT 
NB_GRATICULES 

Definition at line 66 of file vf_waveform.c.

Function Documentation

AVFILTER_DEFINE_CLASS ( waveform  )
static int query_formats ( AVFilterContext ctx)
static

Definition at line 304 of file vf_waveform.c.

static void envelope_instant16 ( WaveformContext s,
AVFrame out,
int  plane,
int  component,
int  offset 
)
static

Definition at line 385 of file vf_waveform.c.

Referenced by envelope16(), and envelope_peak16().

static void envelope_instant ( WaveformContext s,
AVFrame out,
int  plane,
int  component,
int  offset 
)
static

Definition at line 433 of file vf_waveform.c.

Referenced by envelope(), and envelope_peak().

static void envelope_peak16 ( WaveformContext s,
AVFrame out,
int  plane,
int  component,
int  offset 
)
static

Definition at line 480 of file vf_waveform.c.

Referenced by envelope16().

static void envelope_peak ( WaveformContext s,
AVFrame out,
int  plane,
int  component,
int  offset 
)
static

Definition at line 550 of file vf_waveform.c.

Referenced by envelope().

static void envelope16 ( WaveformContext s,
AVFrame out,
int  plane,
int  component,
int  offset 
)
static

Definition at line 619 of file vf_waveform.c.

Referenced by filter_frame().

static void envelope ( WaveformContext s,
AVFrame out,
int  plane,
int  component,
int  offset 
)
static

Definition at line 630 of file vf_waveform.c.

Referenced by filter_frame().

static void update16 ( uint16_t *  target,
int  max,
int  intensity,
int  limit 
)
static

Definition at line 641 of file vf_waveform.c.

Referenced by acolor16(), chroma16(), flat16(), and lowpass16().

static void update ( uint8_t target,
int  max,
int  intensity 
)
static

Definition at line 649 of file vf_waveform.c.

Referenced by acolor(), chroma(), flat(), and lowpass().

static void update_cr ( uint8_t target,
int  unused,
int  intensity 
)
static

Definition at line 657 of file vf_waveform.c.

static void update16_cr ( uint16_t *  target,
int  unused,
int  intensity,
int  limit 
)
static

Definition at line 665 of file vf_waveform.c.

static av_always_inline void lowpass16 ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 673 of file vf_waveform.c.

static av_always_inline void lowpass ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 760 of file vf_waveform.c.

static av_always_inline void flat16 ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 868 of file vf_waveform.c.

static av_always_inline void flat ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static
static av_always_inline void chroma16 ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 1436 of file vf_waveform.c.

static av_always_inline void chroma ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static
static av_always_inline void color16 ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 1646 of file vf_waveform.c.

static av_always_inline void color ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 1779 of file vf_waveform.c.

static av_always_inline void acolor16 ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 1911 of file vf_waveform.c.

static av_always_inline void acolor ( WaveformContext s,
AVFrame in,
AVFrame out,
int  component,
int  intensity,
int  offset_y,
int  offset_x,
int  column,
int  mirror,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 2045 of file vf_waveform.c.

static void blend_vline ( uint8_t dst,
int  height,
int  linesize,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2493 of file vf_waveform.c.

Referenced by config_input().

static void blend_vline16 ( uint8_t ddst,
int  height,
int  linesize,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2504 of file vf_waveform.c.

Referenced by config_input().

static void blend_hline ( uint8_t dst,
int  width,
int  unused,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2516 of file vf_waveform.c.

Referenced by config_input().

static void blend_hline16 ( uint8_t ddst,
int  width,
int  unused,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2525 of file vf_waveform.c.

Referenced by config_input().

static void draw_htext ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2535 of file vf_waveform.c.

Referenced by config_input().

static void draw_htext16 ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2561 of file vf_waveform.c.

Referenced by config_input().

static void draw_vtext ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2587 of file vf_waveform.c.

Referenced by config_input().

static void draw_vtext16 ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2612 of file vf_waveform.c.

Referenced by config_input().

static void iblend_vline ( uint8_t dst,
int  height,
int  linesize,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2637 of file vf_waveform.c.

Referenced by config_input().

static void iblend_vline16 ( uint8_t ddst,
int  height,
int  linesize,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2648 of file vf_waveform.c.

Referenced by config_input().

static void iblend_hline ( uint8_t dst,
int  width,
int  unused,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2660 of file vf_waveform.c.

Referenced by config_input().

static void iblend_hline16 ( uint8_t ddst,
int  width,
int  unused,
float  o1,
float  o2,
int  v,
int  step 
)
static

Definition at line 2669 of file vf_waveform.c.

Referenced by config_input().

static void idraw_htext ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2679 of file vf_waveform.c.

Referenced by config_input().

static void idraw_htext16 ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2705 of file vf_waveform.c.

Referenced by config_input().

static void idraw_vtext ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2731 of file vf_waveform.c.

Referenced by config_input().

static void idraw_vtext16 ( AVFrame out,
int  x,
int  y,
int  mult,
float  o1,
float  o2,
const char *  txt,
const uint8_t  color[4] 
)
static

Definition at line 2756 of file vf_waveform.c.

Referenced by config_input().

static void graticule_none ( WaveformContext s,
AVFrame out 
)
static

Definition at line 2781 of file vf_waveform.c.

Referenced by config_input().

static void graticule_row ( WaveformContext s,
AVFrame out 
)
static

Definition at line 2785 of file vf_waveform.c.

Referenced by config_input().

static void graticule16_row ( WaveformContext s,
AVFrame out 
)
static

Definition at line 2826 of file vf_waveform.c.

Referenced by config_input().

static void graticule_column ( WaveformContext s,
AVFrame out 
)
static

Definition at line 2868 of file vf_waveform.c.

Referenced by config_input().

static void graticule16_column ( WaveformContext s,
AVFrame out 
)
static

Definition at line 2909 of file vf_waveform.c.

Referenced by config_input().

static int config_input ( AVFilterLink inlink)
static

Definition at line 2951 of file vf_waveform.c.

static int config_output ( AVFilterLink outlink)
static

Definition at line 3219 of file vf_waveform.c.

static int filter_frame ( AVFilterLink inlink,
AVFrame in 
)
static

Definition at line 3281 of file vf_waveform.c.

static av_cold void uninit ( AVFilterContext ctx)
static

Definition at line 3377 of file vf_waveform.c.

Variable Documentation

const AVOption waveform_options[]
static

Definition at line 131 of file vf_waveform.c.

enum AVPixelFormat in_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUVA422P9
Definition: pixfmt.h:422
#define AV_PIX_FMT_YUVA420P10
Definition: pixfmt.h:424
#define AV_PIX_FMT_YUVA422P10
Definition: pixfmt.h:425
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
planar GBR 4:4:4 24bpp
Definition: pixfmt.h:168
#define AV_PIX_FMT_GBRP10
Definition: pixfmt.h:403
#define AV_PIX_FMT_GRAY9
Definition: pixfmt.h:367
#define AV_PIX_FMT_YUV420P12
Definition: pixfmt.h:391
#define AV_PIX_FMT_GRAY10
Definition: pixfmt.h:368
#define AV_PIX_FMT_GRAY12
Definition: pixfmt.h:369
planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
Definition: pixfmt.h:101
#define AV_PIX_FMT_YUVA420P9
Definition: pixfmt.h:421
#define AV_PIX_FMT_GBRP9
Definition: pixfmt.h:402
planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range...
Definition: pixfmt.h:100
planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting col...
Definition: pixfmt.h:79
#define AV_PIX_FMT_YUV422P12
Definition: pixfmt.h:392
planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
Definition: pixfmt.h:176
#define AV_PIX_FMT_YUV444P10
Definition: pixfmt.h:390
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:70
#define AV_PIX_FMT_YUV422P9
Definition: pixfmt.h:385
planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting col...
Definition: pixfmt.h:78
#define AV_PIX_FMT_YUVA444P10
Definition: pixfmt.h:426
#define AV_PIX_FMT_YUV444P9
Definition: pixfmt.h:386
planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
Definition: pixfmt.h:177
#define AV_PIX_FMT_YUV420P10
Definition: pixfmt.h:387
planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples)
Definition: pixfmt.h:72
#define AV_PIX_FMT_YUV440P12
Definition: pixfmt.h:393
#define AV_PIX_FMT_YUV420P9
Definition: pixfmt.h:384
#define AV_PIX_FMT_GBRP12
Definition: pixfmt.h:404
#define AV_PIX_FMT_YUV422P10
Definition: pixfmt.h:388
#define AV_PIX_FMT_YUV444P12
Definition: pixfmt.h:394
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
Y , 8bpp.
Definition: pixfmt.h:74
planar GBRA 4:4:4:4 32bpp
Definition: pixfmt.h:215
#define AV_PIX_FMT_YUVA444P9
Definition: pixfmt.h:423
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
Definition: pixfmt.h:80
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
Definition: pixfmt.h:73
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor ...
Definition: pixfmt.h:258
planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
Definition: pixfmt.h:99

Definition at line 187 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat in_color_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUVA422P9
Definition: pixfmt.h:422
#define AV_PIX_FMT_YUVA420P10
Definition: pixfmt.h:424
#define AV_PIX_FMT_YUVA422P10
Definition: pixfmt.h:425
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
planar GBR 4:4:4 24bpp
Definition: pixfmt.h:168
#define AV_PIX_FMT_GBRP10
Definition: pixfmt.h:403
#define AV_PIX_FMT_YUV420P12
Definition: pixfmt.h:391
planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
Definition: pixfmt.h:101
#define AV_PIX_FMT_YUVA420P9
Definition: pixfmt.h:421
#define AV_PIX_FMT_GBRP9
Definition: pixfmt.h:402
planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range...
Definition: pixfmt.h:100
planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting col...
Definition: pixfmt.h:79
#define AV_PIX_FMT_YUV422P12
Definition: pixfmt.h:392
planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
Definition: pixfmt.h:176
#define AV_PIX_FMT_YUV444P10
Definition: pixfmt.h:390
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:70
#define AV_PIX_FMT_YUV422P9
Definition: pixfmt.h:385
planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting col...
Definition: pixfmt.h:78
#define AV_PIX_FMT_YUVA444P10
Definition: pixfmt.h:426
#define AV_PIX_FMT_YUV444P9
Definition: pixfmt.h:386
planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
Definition: pixfmt.h:177
#define AV_PIX_FMT_YUV420P10
Definition: pixfmt.h:387
#define AV_PIX_FMT_YUV440P12
Definition: pixfmt.h:393
#define AV_PIX_FMT_YUV420P9
Definition: pixfmt.h:384
#define AV_PIX_FMT_GBRP12
Definition: pixfmt.h:404
#define AV_PIX_FMT_YUV422P10
Definition: pixfmt.h:388
#define AV_PIX_FMT_YUV444P12
Definition: pixfmt.h:394
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
planar GBRA 4:4:4:4 32bpp
Definition: pixfmt.h:215
#define AV_PIX_FMT_YUVA444P9
Definition: pixfmt.h:423
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
Definition: pixfmt.h:80
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
Definition: pixfmt.h:73
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor ...
Definition: pixfmt.h:258
planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
Definition: pixfmt.h:99

Definition at line 205 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat in_flat_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUVA422P9
Definition: pixfmt.h:422
#define AV_PIX_FMT_YUVA420P10
Definition: pixfmt.h:424
#define AV_PIX_FMT_YUVA422P10
Definition: pixfmt.h:425
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
#define AV_PIX_FMT_YUV420P12
Definition: pixfmt.h:391
planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
Definition: pixfmt.h:101
#define AV_PIX_FMT_YUVA420P9
Definition: pixfmt.h:421
planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range...
Definition: pixfmt.h:100
planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting col...
Definition: pixfmt.h:79
#define AV_PIX_FMT_YUV422P12
Definition: pixfmt.h:392
planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
Definition: pixfmt.h:176
#define AV_PIX_FMT_YUV444P10
Definition: pixfmt.h:390
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition: pixfmt.h:70
#define AV_PIX_FMT_YUV422P9
Definition: pixfmt.h:385
planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting col...
Definition: pixfmt.h:78
#define AV_PIX_FMT_YUVA444P10
Definition: pixfmt.h:426
#define AV_PIX_FMT_YUV444P9
Definition: pixfmt.h:386
planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
Definition: pixfmt.h:177
#define AV_PIX_FMT_YUV420P10
Definition: pixfmt.h:387
#define AV_PIX_FMT_YUV440P12
Definition: pixfmt.h:393
#define AV_PIX_FMT_YUV420P9
Definition: pixfmt.h:384
#define AV_PIX_FMT_YUV422P10
Definition: pixfmt.h:388
#define AV_PIX_FMT_YUV444P12
Definition: pixfmt.h:394
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
#define AV_PIX_FMT_YUVA444P9
Definition: pixfmt.h:423
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
Definition: pixfmt.h:80
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)
Definition: pixfmt.h:73
planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor ...
Definition: pixfmt.h:258
planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
Definition: pixfmt.h:99

Definition at line 222 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_rgb8_lowpass_pix_fmts[]
static
Initial value:
= {
}
planar GBR 4:4:4 24bpp
Definition: pixfmt.h:168
planar GBRA 4:4:4:4 32bpp
Definition: pixfmt.h:215

Definition at line 237 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_rgb9_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_GBRP9
Definition: pixfmt.h:402

Definition at line 242 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_rgb10_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_GBRAP10
Definition: pixfmt.h:407
#define AV_PIX_FMT_GBRP10
Definition: pixfmt.h:403

Definition at line 247 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_rgb12_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_GBRAP12
Definition: pixfmt.h:408
#define AV_PIX_FMT_GBRP12
Definition: pixfmt.h:404

Definition at line 252 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_yuv8_lowpass_pix_fmts[]
static
Initial value:
= {
}
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
Definition: pixfmt.h:177
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
Definition: pixfmt.h:80

Definition at line 257 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_yuv9_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUV444P9
Definition: pixfmt.h:386
#define AV_PIX_FMT_YUVA444P9
Definition: pixfmt.h:423

Definition at line 262 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_yuv10_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUV444P10
Definition: pixfmt.h:390
#define AV_PIX_FMT_YUVA444P10
Definition: pixfmt.h:426

Definition at line 267 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_yuv12_lowpass_pix_fmts[]
static
Initial value:

Definition at line 272 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_gray8_lowpass_pix_fmts[]
static
Initial value:

Definition at line 277 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_gray9_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_GRAY9
Definition: pixfmt.h:367

Definition at line 282 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_gray10_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_GRAY10
Definition: pixfmt.h:368

Definition at line 287 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat out_gray12_lowpass_pix_fmts[]
static
Initial value:
= {
}
#define AV_PIX_FMT_GRAY12
Definition: pixfmt.h:369

Definition at line 292 of file vf_waveform.c.

Referenced by query_formats().

enum AVPixelFormat flat_pix_fmts[]
static
Initial value:
= {
}
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:71
#define AV_PIX_FMT_YUV444P10
Definition: pixfmt.h:390
#define AV_PIX_FMT_YUV444P9
Definition: pixfmt.h:386
#define AV_PIX_FMT_YUV444P12
Definition: pixfmt.h:394
planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting col...
Definition: pixfmt.h:80

Definition at line 297 of file vf_waveform.c.

const uint8_t black_yuva_color[4] = { 0, 127, 127, 255 }
static

Definition at line 2178 of file vf_waveform.c.

Referenced by config_input().

const uint8_t black_gbrp_color[4] = { 0, 0, 0, 255 }
static

Definition at line 2179 of file vf_waveform.c.

const GraticuleLines aflat_digital8[]
static
Initial value:
= {
{ { { "16", 16+128 }, { "16", 16+128 }, { "16", 16+128 }, { "0", 0+128 } } },
{ { { "128", 128+128 }, { "128", 128+128 }, { "128", 128+128 }, { "128", 128+128 } } },
{ { { "235", 235+128 }, { "240", 240+128 }, { "240", 240+128 }, { "255", 255+128 } } },
}

Definition at line 2181 of file vf_waveform.c.

const GraticuleLines aflat_digital9[]
static
Initial value:
= {
{ { { "32", 32+256 }, { "32", 32+256 }, { "32", 32+256 }, { "0", 0+256 } } },
{ { { "256", 256+256 }, { "256", 256+256 }, { "256", 256+256 }, { "256", 256+256 } } },
{ { { "470", 470+256 }, { "480", 480+256 }, { "480", 480+256 }, { "511", 511+256 } } },
}

Definition at line 2187 of file vf_waveform.c.

const GraticuleLines aflat_digital10[]
static
Initial value:
= {
{ { { "64", 64+512 }, { "64", 64+512 }, { "64", 64+512 }, { "0", 0+512 } } },
{ { { "512", 512+512 }, { "512", 512+512 }, { "512", 512+512 }, { "512", 512+512 } } },
{ { { "940", 940+512 }, { "960", 960+512 }, { "960", 960+512 }, { "1023", 1023+512 } } },
}

Definition at line 2193 of file vf_waveform.c.

const GraticuleLines aflat_digital12[]
static
Initial value:
= {
{ { { "256", 256+2048 }, { "256", 256+2048 }, { "256", 256+2048 }, { "0", 0+2048 } } },
{ { { "2048", 2048+2048 }, { "2048", 2048+2048 }, { "2048", 2048+2048 }, { "2048", 2048+2048 } } },
{ { { "3760", 3760+2048 }, { "3840", 3840+2048 }, { "3840", 3840+2048 }, { "4095", 4095+2048 } } },
}

Definition at line 2199 of file vf_waveform.c.

const GraticuleLines aflat_millivolts8[]
static
Initial value:
= {
{ { { "0", 16+128 }, { "0", 16+128 }, { "0", 16+128 }, { "0", 0+128 } } },
{ { { "175", 71+128 }, { "175", 72+128 }, { "175", 72+128 }, { "175", 64+128 } } },
{ { { "350", 126+128 }, { "350", 128+128 }, { "350", 128+128 }, { "350", 128+128 } } },
{ { { "525", 180+128 }, { "525", 184+128 }, { "525", 184+128 }, { "525", 192+128 } } },
{ { { "700", 235+128 }, { "700", 240+128 }, { "700", 240+128 }, { "700", 255+128 } } },
}

Definition at line 2205 of file vf_waveform.c.

const GraticuleLines aflat_millivolts9[]
static
Initial value:
= {
{ { { "0", 32+256 }, { "0", 32+256 }, { "0", 32+256 }, { "0", 0+256 } } },
{ { { "175", 142+256 }, { "175", 144+256 }, { "175", 144+256 }, { "175", 128+256 } } },
{ { { "350", 251+256 }, { "350", 256+256 }, { "350", 256+256 }, { "350", 256+256 } } },
{ { { "525", 361+256 }, { "525", 368+256 }, { "525", 368+256 }, { "525", 384+256 } } },
{ { { "700", 470+256 }, { "700", 480+256 }, { "700", 480+256 }, { "700", 511+256 } } },
}

Definition at line 2213 of file vf_waveform.c.

const GraticuleLines aflat_millivolts10[]
static
Initial value:
= {
{ { { "0", 64+512 }, { "0", 64+512 }, { "0", 64+512 }, { "0", 0+512 } } },
{ { { "175", 283+512 }, { "175", 288+512 }, { "175", 288+512 }, { "175", 256+512 } } },
{ { { "350", 502+512 }, { "350", 512+512 }, { "350", 512+512 }, { "350", 512+512 } } },
{ { { "525", 721+512 }, { "525", 736+512 }, { "525", 736+512 }, { "525", 768+512 } } },
{ { { "700", 940+512 }, { "700", 960+512 }, { "700", 960+512 }, { "700", 1023+512 } } },
}

Definition at line 2221 of file vf_waveform.c.

const GraticuleLines aflat_millivolts12[]
static
Initial value:
= {
{ { { "0", 256+2048 }, { "0", 256+2048 }, { "0", 256+2048 }, { "0", 0+2048 } } },
{ { { "175", 1132+2048 }, { "175", 1152+2048 }, { "175", 1152+2048 }, { "175", 1024+2048 } } },
{ { { "350", 2008+2048 }, { "350", 2048+2048 }, { "350", 2048+2048 }, { "350", 2048+2048 } } },
{ { { "525", 2884+2048 }, { "525", 2944+2048 }, { "525", 2944+2048 }, { "525", 3072+2048 } } },
{ { { "700", 3760+2048 }, { "700", 3840+2048 }, { "700", 3840+2048 }, { "700", 4095+2048 } } },
}

Definition at line 2229 of file vf_waveform.c.

const GraticuleLines aflat_ire8[]
static
Initial value:
= {
{ { { "-25", -39+128 }, { "-25", -40+128 }, { "-25", -40+128 }, { "-25", -64+128 } } },
{ { { "0", 16+128 }, { "0", 16+128 }, { "0", 16+128 }, { "0", 0+128 } } },
{ { { "25", 71+128 }, { "25", 72+128 }, { "25", 72+128 }, { "25", 64+128 } } },
{ { { "50", 126+128 }, { "50", 128+128 }, { "50", 128+128 }, { "50", 128+128 } } },
{ { { "75", 180+128 }, { "75", 184+128 }, { "75", 184+128 }, { "75", 192+128 } } },
{ { { "100", 235+128 }, { "100", 240+128 }, { "100", 240+128 }, { "100", 256+128 } } },
{ { { "125", 290+128 }, { "125", 296+128 }, { "125", 296+128 }, { "125", 320+128 } } },
}

Definition at line 2237 of file vf_waveform.c.

const GraticuleLines aflat_ire9[]
static
Initial value:
= {
{ { { "-25", -78+256 }, { "-25", -80+256 }, { "-25", -80+256 }, { "-25",-128+256 } } },
{ { { "0", 32+256 }, { "0", 32+256 }, { "0", 32+256 }, { "0", 0+256 } } },
{ { { "25", 142+256 }, { "25", 144+256 }, { "25", 144+256 }, { "25", 128+256 } } },
{ { { "50", 251+256 }, { "50", 256+256 }, { "50", 256+256 }, { "50", 256+256 } } },
{ { { "75", 361+256 }, { "75", 368+256 }, { "75", 368+256 }, { "75", 384+256 } } },
{ { { "100", 470+256 }, { "100", 480+256 }, { "100", 480+256 }, { "100", 512+256 } } },
{ { { "125", 580+256 }, { "125", 592+256 }, { "125", 592+256 }, { "125", 640+256 } } },
}

Definition at line 2247 of file vf_waveform.c.

const GraticuleLines aflat_ire10[]
static
Initial value:
= {
{ { { "-25",-156+512 }, { "-25",-160+512 }, { "-25",-160+512 }, { "-25", -256+512 } } },
{ { { "0", 64+512 }, { "0", 64+512 }, { "0", 64+512 }, { "0", 0+512 } } },
{ { { "25", 283+512 }, { "25", 288+512 }, { "25", 288+512 }, { "25", 256+512 } } },
{ { { "50", 502+512 }, { "50", 512+512 }, { "50", 512+512 }, { "50", 512+512 } } },
{ { { "75", 721+512 }, { "75", 736+512 }, { "75", 736+512 }, { "75", 768+512 } } },
{ { { "100", 940+512 }, { "100", 960+512 }, { "100", 960+512 }, { "100", 1024+512 } } },
{ { { "125",1160+512 }, { "125",1184+512 }, { "125",1184+512 }, { "125", 1280+512 } } },
}

Definition at line 2257 of file vf_waveform.c.

const GraticuleLines aflat_ire12[]
static
Initial value:
= {
{ { { "-25", -624+2048 }, { "-25", -640+2048 }, { "-25", -640+2048 }, { "-25",-1024+2048 } } },
{ { { "0", 256+2048 }, { "0", 256+2048 }, { "0", 256+2048 }, { "0", 0+2048 } } },
{ { { "25", 1132+2048 }, { "25", 1152+2048 }, { "25", 1152+2048 }, { "25", 1024+2048 } } },
{ { { "50", 2008+2048 }, { "50", 2048+2048 }, { "50", 2048+2048 }, { "50", 2048+2048 } } },
{ { { "75", 2884+2048 }, { "75", 2944+2048 }, { "75", 2944+2048 }, { "75", 3072+2048 } } },
{ { { "100", 3760+2048 }, { "100", 3840+2048 }, { "100", 3840+2048 }, { "100", 4096+2048 } } },
{ { { "125", 4640+2048 }, { "125", 4736+2048 }, { "125", 4736+2048 }, { "125", 5120+2048 } } },
}

Definition at line 2267 of file vf_waveform.c.

const GraticuleLines flat_digital8[]
static
Initial value:
= {
{ { { "16", 16+256 }, { "16", 16+256 }, { "16", 16+256 }, { "0", 0+256 } } },
{ { { "128", 128+256 }, { "128", 128+256 }, { "128", 128+256 }, { "128", 128+256 } } },
{ { { "235", 235+256 }, { "240", 240+256 }, { "240", 240+256 }, { "255", 255+256 } } },
}

Definition at line 2277 of file vf_waveform.c.

const GraticuleLines flat_digital9[]
static
Initial value:
= {
{ { { "32", 32+512 }, { "32", 32+512 }, { "32", 32+512 }, { "0", 0+512 } } },
{ { { "256", 256+512 }, { "256", 256+512 }, { "256", 256+512 }, { "256", 256+512 } } },
{ { { "470", 470+512 }, { "480", 480+512 }, { "480", 480+512 }, { "511", 511+512 } } },
}

Definition at line 2283 of file vf_waveform.c.

const GraticuleLines flat_digital10[]
static
Initial value:
= {
{ { { "64", 64+1024 }, { "64", 64+1024 }, { "64", 64+1024 }, { "0", 0+1024 } } },
{ { { "512", 512+1024 }, { "512", 512+1024 }, { "512", 512+1024 }, { "512", 512+1024 } } },
{ { { "940", 940+1024 }, { "960", 960+1024 }, { "960", 960+1024 }, { "1023", 1023+1024 } } },
}

Definition at line 2289 of file vf_waveform.c.

const GraticuleLines flat_digital12[]
static
Initial value:
= {
{ { { "256", 256+4096 }, { "256", 256+4096 }, { "256", 256+4096 }, { "0", 0+4096 } } },
{ { { "2048", 2048+4096 }, { "2048", 2048+4096 }, { "2048", 2048+4096 }, { "2048", 2048+4096 } } },
{ { { "3760", 3760+4096 }, { "3840", 3840+4096 }, { "3840", 3840+4096 }, { "4095", 4095+4096 } } },
}

Definition at line 2295 of file vf_waveform.c.

const GraticuleLines flat_millivolts8[]
static
Initial value:
= {
{ { { "0", 16+256 }, { "0", 16+256 }, { "0", 16+256 }, { "0", 0+256 } } },
{ { { "175", 71+256 }, { "175", 72+256 }, { "175", 72+256 }, { "175", 64+256 } } },
{ { { "350", 126+256 }, { "350", 128+256 }, { "350", 128+256 }, { "350", 128+256 } } },
{ { { "525", 180+256 }, { "525", 184+256 }, { "525", 184+256 }, { "525", 192+256 } } },
{ { { "700", 235+256 }, { "700", 240+256 }, { "700", 240+256 }, { "700", 255+256 } } },
}

Definition at line 2301 of file vf_waveform.c.

const GraticuleLines flat_millivolts9[]
static
Initial value:
= {
{ { { "0", 32+512 }, { "0", 32+512 }, { "0", 32+512 }, { "0", 0+512 } } },
{ { { "175", 142+512 }, { "175", 144+512 }, { "175", 144+512 }, { "175", 128+512 } } },
{ { { "350", 251+512 }, { "350", 256+512 }, { "350", 256+512 }, { "350", 256+512 } } },
{ { { "525", 361+512 }, { "525", 368+512 }, { "525", 368+512 }, { "525", 384+512 } } },
{ { { "700", 470+512 }, { "700", 480+512 }, { "700", 480+512 }, { "700", 511+512 } } },
}

Definition at line 2309 of file vf_waveform.c.

const GraticuleLines flat_millivolts10[]
static
Initial value:
= {
{ { { "0", 64+1024 }, { "0", 64+1024 }, { "0", 64+1024 }, { "0", 0+1024 } } },
{ { { "175", 283+1024 }, { "175", 288+1024 }, { "175", 288+1024 }, { "175", 256+1024 } } },
{ { { "350", 502+1024 }, { "350", 512+1024 }, { "350", 512+1024 }, { "350", 512+1024 } } },
{ { { "525", 721+1024 }, { "525", 736+1024 }, { "525", 736+1024 }, { "525", 768+1024 } } },
{ { { "700", 940+1024 }, { "700", 960+1024 }, { "700", 960+1024 }, { "700", 1023+1024 } } },
}

Definition at line 2317 of file vf_waveform.c.

const GraticuleLines flat_millivolts12[]
static
Initial value:
= {
{ { { "0", 256+4096 }, { "0", 256+4096 }, { "0", 256+4096 }, { "0", 0+4096 } } },
{ { { "175", 1132+4096 }, { "175", 1152+4096 }, { "175", 1152+4096 }, { "175", 1024+4096 } } },
{ { { "350", 2008+4096 }, { "350", 2048+4096 }, { "350", 2048+4096 }, { "350", 2048+4096 } } },
{ { { "525", 2884+4096 }, { "525", 2944+4096 }, { "525", 2944+4096 }, { "525", 3072+4096 } } },
{ { { "700", 3760+4096 }, { "700", 3840+4096 }, { "700", 3840+4096 }, { "700", 4095+4096 } } },
}

Definition at line 2325 of file vf_waveform.c.

const GraticuleLines flat_ire8[]
static
Initial value:
= {
{ { { "-25", -39+256 }, { "-25", -40+256 }, { "-25", -40+256 }, { "-25", -64+256 } } },
{ { { "0", 16+256 }, { "0", 16+256 }, { "0", 16+256 }, { "0", 0+256 } } },
{ { { "25", 71+256 }, { "25", 72+256 }, { "25", 72+256 }, { "25", 64+256 } } },
{ { { "50", 126+256 }, { "50", 128+256 }, { "50", 128+256 }, { "50", 128+256 } } },
{ { { "75", 180+256 }, { "75", 184+256 }, { "75", 184+256 }, { "75", 192+256 } } },
{ { { "100", 235+256 }, { "100", 240+256 }, { "100", 240+256 }, { "100", 256+256 } } },
{ { { "125", 290+256 }, { "125", 296+256 }, { "125", 296+256 }, { "125", 320+256 } } },
}

Definition at line 2333 of file vf_waveform.c.

const GraticuleLines flat_ire9[]
static
Initial value:
= {
{ { { "-25", -78+512 }, { "-25", -80+512 }, { "-25", -80+512 }, { "-25",-128+512 } } },
{ { { "0", 32+512 }, { "0", 32+512 }, { "0", 32+512 }, { "0", 0+512 } } },
{ { { "25", 142+512 }, { "25", 144+512 }, { "25", 144+512 }, { "25", 128+512 } } },
{ { { "50", 251+512 }, { "50", 256+512 }, { "50", 256+512 }, { "50", 256+512 } } },
{ { { "75", 361+512 }, { "75", 368+512 }, { "75", 368+512 }, { "75", 384+512 } } },
{ { { "100", 470+512 }, { "100", 480+512 }, { "100", 480+512 }, { "100", 512+512 } } },
{ { { "125", 580+512 }, { "125", 592+512 }, { "125", 592+512 }, { "125", 640+512 } } },
}

Definition at line 2343 of file vf_waveform.c.

const GraticuleLines flat_ire10[]
static
Initial value:
= {
{ { { "-25",-156+1024 }, { "-25",-160+1024 }, { "-25",-160+1024 }, { "-25", -256+1024 } } },
{ { { "0", 64+1024 }, { "0", 64+1024 }, { "0", 64+1024 }, { "0", 0+1024 } } },
{ { { "25", 283+1024 }, { "25", 288+1024 }, { "25", 288+1024 }, { "25", 256+1024 } } },
{ { { "50", 502+1024 }, { "50", 512+1024 }, { "50", 512+1024 }, { "50", 512+1024 } } },
{ { { "75", 721+1024 }, { "75", 736+1024 }, { "75", 736+1024 }, { "75", 768+1024 } } },
{ { { "100", 940+1024 }, { "100", 960+1024 }, { "100", 960+1024 }, { "100", 1024+1024 } } },
{ { { "125",1160+1024 }, { "125",1184+1024 }, { "125",1184+1024 }, { "125", 1280+1024 } } },
}

Definition at line 2353 of file vf_waveform.c.

const GraticuleLines flat_ire12[]
static
Initial value:
= {
{ { { "-25", -624+4096 }, { "-25", -640+4096 }, { "-25", -640+4096 }, { "-25",-1024+4096 } } },
{ { { "0", 256+4096 }, { "0", 256+4096 }, { "0", 256+4096 }, { "0", 0+4096 } } },
{ { { "25", 1132+4096 }, { "25", 1152+4096 }, { "25", 1152+4096 }, { "25", 1024+4096 } } },
{ { { "50", 2008+4096 }, { "50", 2048+4096 }, { "50", 2048+4096 }, { "50", 2048+4096 } } },
{ { { "75", 2884+4096 }, { "75", 2944+4096 }, { "75", 2944+4096 }, { "75", 3072+4096 } } },
{ { { "100", 3760+4096 }, { "100", 3840+4096 }, { "100", 3840+4096 }, { "100", 4096+4096 } } },
{ { { "125", 4640+4096 }, { "125", 4736+4096 }, { "125", 4736+4096 }, { "125", 5120+4096 } } },
}

Definition at line 2363 of file vf_waveform.c.

const GraticuleLines digital8[]
static
Initial value:
= {
{ { { "16", 16 }, { "16", 16 }, { "16", 16 }, { "0", 0 } } },
{ { { "128", 128 }, { "128", 128 }, { "128", 128 }, { "128", 128 } } },
{ { { "235", 235 }, { "240", 240 }, { "240", 240 }, { "255", 255 } } },
}

Definition at line 2373 of file vf_waveform.c.

const GraticuleLines digital9[]
static
Initial value:
= {
{ { { "32", 32 }, { "32", 32 }, { "32", 32 }, { "0", 0 } } },
{ { { "256", 256 }, { "256", 256 }, { "256", 256 }, { "256", 256 } } },
{ { { "470", 470 }, { "480", 480 }, { "480", 480 }, { "511", 511 } } },
}

Definition at line 2379 of file vf_waveform.c.

const GraticuleLines digital10[]
static
Initial value:
= {
{ { { "64", 64 }, { "64", 64 }, { "64", 64 }, { "0", 0 } } },
{ { { "512", 512 }, { "512", 512 }, { "512", 512 }, { "512", 512 } } },
{ { { "940", 940 }, { "960", 960 }, { "960", 960 }, { "1023", 1023 } } },
}

Definition at line 2385 of file vf_waveform.c.

const GraticuleLines digital12[]
static
Initial value:
= {
{ { { "256", 256 }, { "256", 256 }, { "256", 256 }, { "0", 0 } } },
{ { { "2048", 2048 }, { "2048", 2048 }, { "2048", 2048 }, { "2048", 2048 } } },
{ { { "3760", 3760 }, { "3840", 3840 }, { "3840", 3840 }, { "4095", 4095 } } },
}

Definition at line 2391 of file vf_waveform.c.

const GraticuleLines millivolts8[]
static
Initial value:
= {
{ { { "0", 16 }, { "0", 16 }, { "0", 16 }, { "0", 0 } } },
{ { { "175", 71 }, { "175", 72 }, { "175", 72 }, { "175", 64 } } },
{ { { "350", 126 }, { "350", 128 }, { "350", 128 }, { "350", 128 } } },
{ { { "525", 180 }, { "525", 184 }, { "525", 184 }, { "525", 192 } } },
{ { { "700", 235 }, { "700", 240 }, { "700", 240 }, { "700", 255 } } },
}

Definition at line 2397 of file vf_waveform.c.

const GraticuleLines millivolts9[]
static
Initial value:
= {
{ { { "0", 32 }, { "0", 32 }, { "0", 32 }, { "0", 0 } } },
{ { { "175", 142 }, { "175", 144 }, { "175", 144 }, { "175", 128 } } },
{ { { "350", 251 }, { "350", 256 }, { "350", 256 }, { "350", 256 } } },
{ { { "525", 361 }, { "525", 368 }, { "525", 368 }, { "525", 384 } } },
{ { { "700", 470 }, { "700", 480 }, { "700", 480 }, { "700", 511 } } },
}

Definition at line 2405 of file vf_waveform.c.

const GraticuleLines millivolts10[]
static
Initial value:
= {
{ { { "0", 64 }, { "0", 64 }, { "0", 64 }, { "0", 0 } } },
{ { { "175", 283 }, { "175", 288 }, { "175", 288 }, { "175", 256 } } },
{ { { "350", 502 }, { "350", 512 }, { "350", 512 }, { "350", 512 } } },
{ { { "525", 721 }, { "525", 736 }, { "525", 736 }, { "525", 768 } } },
{ { { "700", 940 }, { "700", 960 }, { "700", 960 }, { "700", 1023 } } },
}

Definition at line 2413 of file vf_waveform.c.

const GraticuleLines millivolts12[]
static
Initial value:
= {
{ { { "0", 256 }, { "0", 256 }, { "0", 256 }, { "0", 0 } } },
{ { { "175", 1132 }, { "175", 1152 }, { "175", 1152 }, { "175", 1024 } } },
{ { { "350", 2008 }, { "350", 2048 }, { "350", 2048 }, { "350", 2048 } } },
{ { { "525", 2884 }, { "525", 2944 }, { "525", 2944 }, { "525", 3072 } } },
{ { { "700", 3760 }, { "700", 3840 }, { "700", 3840 }, { "700", 4095 } } },
}

Definition at line 2421 of file vf_waveform.c.

const GraticuleLines ire8[]
static
Initial value:
= {
{ { { "0", 16 }, { "0", 16 }, { "0", 16 }, { "0", 0 } } },
{ { { "25", 71 }, { "25", 72 }, { "25", 72 }, { "25", 64 } } },
{ { { "50", 126 }, { "50", 128 }, { "50", 128 }, { "50", 128 } } },
{ { { "75", 180 }, { "75", 184 }, { "75", 184 }, { "75", 192 } } },
{ { { "100", 235 }, { "100", 240 }, { "100", 240 }, { "100", 255 } } },
}

Definition at line 2429 of file vf_waveform.c.

const GraticuleLines ire9[]
static
Initial value:
= {
{ { { "0", 32 }, { "0", 32 }, { "0", 32 }, { "0", 0 } } },
{ { { "25", 142 }, { "25", 144 }, { "25", 144 }, { "25", 128 } } },
{ { { "50", 251 }, { "50", 256 }, { "50", 256 }, { "50", 256 } } },
{ { { "75", 361 }, { "75", 368 }, { "75", 368 }, { "75", 384 } } },
{ { { "100", 470 }, { "100", 480 }, { "100", 480 }, { "100", 511 } } },
}

Definition at line 2437 of file vf_waveform.c.

const GraticuleLines ire10[]
static
Initial value:
= {
{ { { "0", 64 }, { "0", 64 }, { "0", 64 }, { "0", 0 } } },
{ { { "25", 283 }, { "25", 288 }, { "25", 288 }, { "25", 256 } } },
{ { { "50", 502 }, { "50", 512 }, { "50", 512 }, { "50", 512 } } },
{ { { "75", 721 }, { "75", 736 }, { "75", 736 }, { "75", 768 } } },
{ { { "100", 940 }, { "100", 960 }, { "100", 960 }, { "100", 1023 } } },
}

Definition at line 2445 of file vf_waveform.c.

const GraticuleLines ire12[]
static
Initial value:
= {
{ { { "0", 256 }, { "0", 256 }, { "0", 256 }, { "0", 0 } } },
{ { { "25", 1132 }, { "25", 1152 }, { "25", 1152 }, { "25", 1024 } } },
{ { { "50", 2008 }, { "50", 2048 }, { "50", 2048 }, { "50", 2048 } } },
{ { { "75", 2884 }, { "75", 2944 }, { "75", 2944 }, { "75", 3072 } } },
{ { { "100", 3760 }, { "100", 3840 }, { "100", 3840 }, { "100", 4095 } } },
}

Definition at line 2453 of file vf_waveform.c.

const GraticuleLines chroma_digital8[]
static
Initial value:
= {
{ { { "50", 50 }, { "50", 50 }, { "50", 50 }, { "50", 50 } } },
{ { { "100", 100 }, { "100", 100 }, { "100", 100 }, { "100", 100 } } },
{ { { "150", 150 }, { "150", 150 }, { "150", 150 }, { "150", 150 } } },
{ { { "200", 200 }, { "200", 200 }, { "200", 200 }, { "200", 200 } } },
{ { { "255", 255 }, { "255", 255 }, { "255", 255 }, { "255", 255 } } },
}

Definition at line 2461 of file vf_waveform.c.

const GraticuleLines chroma_digital9[]
static
Initial value:
= {
{ { { "100", 100 }, { "100", 100 }, { "100", 100 }, { "100", 100 } } },
{ { { "200", 200 }, { "200", 200 }, { "200", 200 }, { "200", 200 } } },
{ { { "300", 300 }, { "300", 300 }, { "300", 300 }, { "300", 300 } } },
{ { { "400", 400 }, { "400", 400 }, { "400", 400 }, { "400", 400 } } },
{ { { "500", 500 }, { "500", 500 }, { "500", 500 }, { "500", 500 } } },
}

Definition at line 2469 of file vf_waveform.c.

const GraticuleLines chroma_digital10[]
static
Initial value:
= {
{ { { "200", 200 }, { "200", 200 }, { "200", 200 }, { "200", 200 } } },
{ { { "400", 400 }, { "400", 400 }, { "400", 400 }, { "400", 400 } } },
{ { { "600", 600 }, { "600", 600 }, { "600", 600 }, { "600", 600 } } },
{ { { "800", 800 }, { "800", 800 }, { "800", 800 }, { "800", 800 } } },
{ { {"1000",1000 }, {"1000",1000 }, {"1000",1000 }, {"1000",1000 } } },
}

Definition at line 2477 of file vf_waveform.c.

const GraticuleLines chroma_digital12[]
static
Initial value:
= {
{ { { "800", 800 }, { "800", 800 }, { "800", 800 }, { "800", 800 } } },
{ { { "1600", 1600 }, { "1600", 1600 }, { "1600", 1600 }, { "1600", 1600 } } },
{ { { "2400", 2400 }, { "2400", 2400 }, { "2400", 2400 }, { "2400", 2400 } } },
{ { { "3200", 3200 }, { "3200", 3200 }, { "3200", 3200 }, { "3200", 3200 } } },
{ { { "4000", 4000 }, { "4000", 4000 }, { "4000", 4000 }, { "4000", 4000 } } },
}

Definition at line 2485 of file vf_waveform.c.

const AVFilterPad inputs[]
static
Initial value:
= {
{
.name = "default",
.filter_frame = filter_frame,
.config_props = config_input,
},
{ NULL }
}
#define NULL
Definition: coverity.c:32
static int config_input(AVFilterLink *inlink)
Definition: vf_waveform.c:2951
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
Definition: vf_waveform.c:3281

Definition at line 3384 of file vf_waveform.c.

const AVFilterPad outputs[]
static
Initial value:
= {
{
.name = "default",
.config_props = config_output,
},
{ NULL }
}
#define NULL
Definition: coverity.c:32
static int config_output(AVFilterLink *outlink)
Definition: vf_waveform.c:3219

Definition at line 3394 of file vf_waveform.c.

AVFilter ff_vf_waveform
Initial value:
= {
.name = "waveform",
.description = NULL_IF_CONFIG_SMALL("Video waveform monitor."),
.priv_size = sizeof(WaveformContext),
.priv_class = &waveform_class,
}
static const AVFilterPad inputs[]
Definition: vf_waveform.c:3384
static int query_formats(AVFilterContext *ctx)
Definition: vf_waveform.c:304
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
Definition: avfilter.h:116
static const AVFilterPad outputs[]
Definition: vf_waveform.c:3394
static av_cold void uninit(AVFilterContext *ctx)
Definition: vf_waveform.c:3377
#define flags(name, subs,...)
Definition: cbs_av1.c:561

Definition at line 3403 of file vf_waveform.c.