avfilter/vf_normalize: typedef all structs

This commit is contained in:
Paul B Mahol 2019-10-07 12:17:14 +02:00
parent 651a0f6308
commit c303d0979f
1 changed files with 13 additions and 9 deletions

View File

@ -81,6 +81,17 @@
#include "internal.h"
#include "video.h"
typedef struct NormalizeHistory {
uint8_t *history; // History entries.
uint32_t history_sum; // Sum of history entries.
} NormalizeHistory;
typedef struct NormalizeLocal {
uint8_t in; // Original input byte value for this frame.
float smoothed; // Smoothed input value [0,255].
float out; // Output value [0,255]
} NormalizeLocal;
typedef struct NormalizeContext {
const AVClass *class;
@ -98,10 +109,7 @@ typedef struct NormalizeContext {
int frame_num; // Increments on each frame, starting from 0.
// Per-extremum, per-channel history, for temporal smoothing.
struct {
uint8_t *history; // History entries.
uint32_t history_sum; // Sum of history entries.
} min[3], max[3]; // Min and max for each channel in {R,G,B}.
NormalizeHistory min[3], max[3]; // Min and max for each channel in {R,G,B}.
uint8_t *history_mem; // Single allocation for above history entries
} NormalizeContext;
@ -126,11 +134,7 @@ AVFILTER_DEFINE_CLASS(normalize);
static void normalize(NormalizeContext *s, AVFrame *in, AVFrame *out)
{
// Per-extremum, per-channel local variables.
struct {
uint8_t in; // Original input byte value for this frame.
float smoothed; // Smoothed input value [0,255].
float out; // Output value [0,255].
} min[3], max[3]; // Min and max for each channel in {R,G,B}.
NormalizeLocal min[3], max[3]; // Min and max for each channel in {R,G,B}.
float rgb_min_smoothed; // Min input range for linked normalization
float rgb_max_smoothed; // Max input range for linked normalization