FFmpeg
|
#include "config.h"
#include <inttypes.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/cpu.h"
#include "libavutil/csp.h"
#include "libavutil/emms.h"
#include "libavutil/hdr_dynamic_metadata.h"
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/libm.h"
#include "libavutil/mastering_display_metadata.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/slicethread.h"
#include "libavutil/thread.h"
#include "libavutil/aarch64/cpu.h"
#include "libavutil/ppc/cpu.h"
#include "libavutil/x86/asm.h"
#include "libavutil/x86/cpu.h"
#include "libavutil/loongarch/cpu.h"
#include "rgb2rgb.h"
#include "swscale.h"
#include "swscale_internal.h"
#include "utils.h"
#include "graph.h"
Go to the source code of this file.
Data Structures | |
struct | FormatEntry |
struct | ScaleAlgorithm |
Macros | |
#define | _DEFAULT_SOURCE |
#define | _SVID_SOURCE |
#define | _DARWIN_C_SOURCE |
#define | USE_MMAP 0 |
Functions | |
static SwsContext * | alloc_set_opts (int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, const double *param) |
Allocate and return an SwsContext without performing initialization. More... | |
int | ff_shuffle_filter_coefficients (SwsInternal *c, int *filterPos, int filterSize, int16_t *filter, int dstW) |
int | sws_isSupportedInput (enum AVPixelFormat pix_fmt) |
Return a positive value if pix_fmt is a supported input format, 0 otherwise. More... | |
int | sws_isSupportedOutput (enum AVPixelFormat pix_fmt) |
Return a positive value if pix_fmt is a supported output format, 0 otherwise. More... | |
int | sws_isSupportedEndiannessConversion (enum AVPixelFormat pix_fmt) |
static double | getSplineCoeff (double a, double b, double c, double d, double dist) |
static av_cold int | get_local_pos (SwsInternal *s, int chr_subsample, int pos, int dir) |
static av_cold int | initFilter (int16_t **outFilter, int32_t **filterPos, int *outFilterSize, int xInc, int srcW, int dstW, int filterAlign, int one, int flags, int cpu_flags, SwsVector *srcFilter, SwsVector *dstFilter, double param[2], int srcPos, int dstPos) |
static void | fill_rgb2yuv_table (SwsInternal *c, const int table[4], int dstRange) |
static void | fill_xyztables (SwsInternal *c) |
static int | handle_jpeg (enum AVPixelFormat *format) |
static int | handle_0alpha (enum AVPixelFormat *format) |
static int | handle_xyz (enum AVPixelFormat *format) |
static void | handle_formats (SwsContext *sws) |
static int | range_override_needed (enum AVPixelFormat format) |
int | sws_setColorspaceDetails (SwsContext *sws, const int inv_table[4], int srcRange, const int table[4], int dstRange, int brightness, int contrast, int saturation) |
int | sws_getColorspaceDetails (SwsContext *sws, int **inv_table, int *srcRange, int **table, int *dstRange, int *brightness, int *contrast, int *saturation) |
SwsContext * | sws_alloc_context (void) |
Allocate an empty SwsContext and set its fields to default values. More... | |
static uint16_t * | alloc_gamma_tbl (double e) |
static enum AVPixelFormat | alphaless_fmt (enum AVPixelFormat fmt) |
av_cold int | ff_sws_init_single_context (SwsContext *sws, SwsFilter *srcFilter, SwsFilter *dstFilter) |
static int | context_init_threaded (SwsContext *sws, SwsFilter *src_filter, SwsFilter *dst_filter) |
av_cold int | sws_init_context (SwsContext *sws, SwsFilter *srcFilter, SwsFilter *dstFilter) |
Initialize the swscaler context sws_context. More... | |
SwsContext * | sws_getContext (int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) |
Allocate and return an SwsContext. More... | |
static int | isnan_vec (SwsVector *a) |
static void | makenan_vec (SwsVector *a) |
SwsVector * | sws_allocVec (int length) |
Allocate and return an uninitialized vector with length coefficients. More... | |
SwsVector * | sws_getGaussianVec (double variance, double quality) |
Return a normalized Gaussian curve used to filter stuff quality = 3 is high quality, lower is lower quality. More... | |
static SwsVector * | sws_getConstVec (double c, int length) |
Allocate and return a vector with length coefficients, all with the same value c. More... | |
static SwsVector * | sws_getIdentityVec (void) |
Allocate and return a vector with just one coefficient, with value 1.0. More... | |
static double | sws_dcVec (SwsVector *a) |
void | sws_scaleVec (SwsVector *a, double scalar) |
Scale all the coefficients of a by the scalar value. More... | |
void | sws_normalizeVec (SwsVector *a, double height) |
Scale all the coefficients of a so that their sum equals height. More... | |
static SwsVector * | sws_sumVec (SwsVector *a, SwsVector *b) |
static SwsVector * | sws_getShiftedVec (SwsVector *a, int shift) |
static void | sws_shiftVec (SwsVector *a, int shift) |
static void | sws_addVec (SwsVector *a, SwsVector *b) |
static void | sws_printVec2 (SwsVector *a, AVClass *log_ctx, int log_level) |
Print with av_log() a textual representation of the vector a if log_level <= av_log_level. More... | |
void | sws_freeVec (SwsVector *a) |
void | sws_freeFilter (SwsFilter *filter) |
SwsFilter * | sws_getDefaultFilter (float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose) |
void | sws_freeContext (SwsContext *sws) |
Free the swscaler context swsContext. More... | |
void | sws_free_context (SwsContext **pctx) |
Free the context and everything associated with it, and write NULL to the provided pointer. More... | |
SwsContext * | sws_getCachedContext (SwsContext *prev, int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dstFormat, int flags, SwsFilter *srcFilter, SwsFilter *dstFilter, const double *param) |
Check if context can be reused, otherwise reallocate a new one. More... | |
int | ff_range_add (RangeList *rl, unsigned int start, unsigned int len) |
SwsFormat | ff_fmt_from_frame (const AVFrame *frame, int field) |
This function also sanitizes and strips the input data, removing irrelevant fields for certain formats. More... | |
static int | infer_prim_ref (SwsColor *csp, const SwsColor *ref) |
static int | infer_trc_ref (SwsColor *csp, const SwsColor *ref) |
int | ff_infer_colors (SwsColor *src, SwsColor *dst) |
int | sws_test_format (enum AVPixelFormat format, int output) |
Test if a given pixel format is supported. More... | |
int | sws_test_colorspace (enum AVColorSpace csp, int output) |
Test if a given color space is supported. More... | |
int | sws_test_primaries (enum AVColorPrimaries prim, int output) |
Test if a given set of color primaries is supported. More... | |
int | sws_test_transfer (enum AVColorTransferCharacteristic trc, int output) |
Test if a given color transfer function is supported. More... | |
static int | test_range (enum AVColorRange range) |
static int | test_loc (enum AVChromaLocation loc) |
int | ff_test_fmt (const SwsFormat *fmt, int output) |
int | sws_test_frame (const AVFrame *frame, int output) |
Helper function to run all sws_test_* against a frame, as well as testing the basic frame properties for sanity. More... | |
int | sws_is_noop (const AVFrame *dst, const AVFrame *src) |
Check if a given conversion is a noop. More... | |
Variables | |
static const FormatEntry | format_entries [] |
static const ScaleAlgorithm | scale_algorithms [] |
#define USE_MMAP 0 |
|
static |
Allocate and return an SwsContext without performing initialization.
Definition at line 295 of file utils.c.
Referenced by ff_sws_init_single_context(), sws_getContext(), and sws_setColorspaceDetails().
int ff_shuffle_filter_coefficients | ( | SwsInternal * | c, |
int * | filterPos, | ||
int | filterSize, | ||
int16_t * | filter, | ||
int | dstW | ||
) |
Definition at line 319 of file utils.c.
Referenced by check_hscale(), and ff_sws_init_single_context().
Definition at line 394 of file utils.c.
Referenced by initFilter().
|
static |
Definition at line 407 of file utils.c.
Referenced by ff_sws_init_single_context().
|
static |
Definition at line 436 of file utils.c.
Referenced by ff_sws_init_single_context().
|
static |
|
static |
Definition at line 939 of file utils.c.
Referenced by handle_formats().
|
static |
Definition at line 975 of file utils.c.
Referenced by sws_init_context().
|
static |
Definition at line 1013 of file utils.c.
Referenced by handle_formats().
|
static |
Definition at line 1024 of file utils.c.
Referenced by handle_formats().
|
static |
Definition at line 1033 of file utils.c.
Referenced by ff_sws_init_single_context(), and sws_setColorspaceDetails().
|
static |
Definition at line 1044 of file utils.c.
Referenced by sws_getColorspaceDetails(), and sws_setColorspaceDetails().
|
static |
Definition at line 1244 of file utils.c.
Referenced by ff_sws_init_single_context().
|
static |
Definition at line 1258 of file utils.c.
Referenced by ff_sws_init_single_context().
av_cold int ff_sws_init_single_context | ( | SwsContext * | sws, |
SwsFilter * | srcFilter, | ||
SwsFilter * | dstFilter | ||
) |
Definition at line 1319 of file utils.c.
Referenced by context_init_threaded(), init_legacy_subpass(), and sws_init_context().
|
static |
Definition at line 2037 of file utils.c.
Referenced by sws_init_context().
|
static |
Definition at line 2140 of file utils.c.
Referenced by sws_getDefaultFilter().
|
static |
Definition at line 2149 of file utils.c.
Referenced by sws_addVec(), and sws_shiftVec().
Allocate and return a vector with length coefficients, all with the same value c.
Definition at line 2204 of file utils.c.
Referenced by sws_getIdentityVec(), sws_getShiftedVec(), and sws_sumVec().
|
static |
Allocate and return a vector with just one coefficient, with value 1.0.
Definition at line 2223 of file utils.c.
Referenced by sws_getDefaultFilter().
Definition at line 2228 of file utils.c.
Referenced by sws_normalizeVec().
Definition at line 2252 of file utils.c.
Referenced by sws_addVec().
Definition at line 2270 of file utils.c.
Referenced by sws_shiftVec().
|
static |
Definition at line 2288 of file utils.c.
Referenced by sws_getDefaultFilter().
Definition at line 2302 of file utils.c.
Referenced by sws_getDefaultFilter().
Print with av_log() a textual representation of the vector a if log_level <= av_log_level.
Definition at line 2320 of file utils.c.
Referenced by sws_getDefaultFilter().
int ff_range_add | ( | RangeList * | rl, |
unsigned int | start, | ||
unsigned int | len | ||
) |
Definition at line 2592 of file utils.c.
Referenced by sws_send_slice().
This function also sanitizes and strips the input data, removing irrelevant fields for certain formats.
Calculate largest value from histogram to use as fallback for clips with missing MaxSCL information. Note that this may end up picking the "reserved" value at the 5% percentile, which in practice appears to track the brightest pixel in the scene.
Definition at line 2656 of file utils.c.
Referenced by sws_frame_setup(), sws_is_noop(), and sws_test_frame().
Definition at line 2808 of file utils.c.
Referenced by ff_infer_colors().
Definition at line 2832 of file utils.c.
Referenced by ff_infer_colors().
Definition at line 2857 of file utils.c.
Referenced by adapt_colors().
|
static |
Definition at line 2909 of file utils.c.
Referenced by ff_test_fmt().
|
static |
Definition at line 2914 of file utils.c.
Referenced by ff_test_fmt().
int ff_test_fmt | ( | const SwsFormat * | fmt, |
int | output | ||
) |
Definition at line 2919 of file utils.c.
Referenced by sws_frame_setup(), and sws_test_frame().
|
static |
Definition at line 75 of file utils.c.
Referenced by sws_isSupportedEndiannessConversion(), sws_isSupportedInput(), and sws_isSupportedOutput().
|
static |
Definition at line 422 of file utils.c.
Referenced by ff_sws_init_single_context(), and initFilter().