Go to the documentation of this file.
   21 #ifndef SWSCALE_SWSCALE_H 
   22 #define SWSCALE_SWSCALE_H 
   37 #ifndef HAVE_AV_CONFIG_H 
   65 #define SWS_FAST_BILINEAR     1 
   66 #define SWS_BILINEAR          2 
   69 #define SWS_POINT          0x10 
   71 #define SWS_BICUBLIN       0x40 
   72 #define SWS_GAUSS          0x80 
   73 #define SWS_SINC          0x100 
   74 #define SWS_LANCZOS       0x200 
   75 #define SWS_SPLINE        0x400 
   77 #define SWS_SRC_V_CHR_DROP_MASK     0x30000 
   78 #define SWS_SRC_V_CHR_DROP_SHIFT    16 
   80 #define SWS_PARAM_DEFAULT           123456 
   82 #define SWS_PRINT_INFO              0x1000 
   97 #define SWS_FULL_CHR_H_INT    0x2000 
  110 #define SWS_FULL_CHR_H_INP    0x4000 
  112 #define SWS_DIRECT_BGR        0x8000 
  114 #define SWS_ACCURATE_RND      0x40000 
  115 #define SWS_BITEXACT          0x80000 
  116 #define SWS_ERROR_DIFFUSION  0x800000 
  118 #define SWS_MAX_REDUCE_CUTOFF 0.002 
  120 #define SWS_CS_ITU709         1 
  122 #define SWS_CS_ITU601         5 
  123 #define SWS_CS_ITU624         5 
  124 #define SWS_CS_SMPTE170M      5 
  125 #define SWS_CS_SMPTE240M      7 
  126 #define SWS_CS_DEFAULT        5 
  127 #define SWS_CS_BT2020         9 
  249               const int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  250               uint8_t *
const dst[], 
const int dstStride[]);
 
  320                    unsigned int slice_height);
 
  340                       unsigned int slice_height);
 
  401                                 float lumaSharpen, 
float chromaSharpen,
 
  402                                 float chromaHShift, 
float chromaVShift,
 
  
struct SwsContext * sws_getCachedContext(struct SwsContext *context, 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.
 
AVPixelFormat
Pixel format.
 
int dstW
Width of destination luma/alpha planes.
 
This structure describes decoded (raw) audio or video data.
 
static const uint16_t table[]
 
void(* filter)(uint8_t *src, int stride, int qscale)
 
int srcRange
0 = MPG YUV range, 1 = JPG YUV range (source image).
 
int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[], const int srcStride[], int srcSliceY, int srcSliceH, uint8_t *const dst[], const int dstStride[])
Scale the image slice in srcSlice and put the resulting scaled slice in the image in dst.
 
void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette)
Convert an 8-bit paletted frame into a frame with a color depth of 24 bits.
 
int sws_send_slice(struct SwsContext *c, unsigned int slice_start, unsigned int slice_height)
Indicate that a horizontal slice of input data is available in the source frame previously provided t...
 
trying all byte sequences megabyte in length and selecting the best looking sequence will yield cases to try But a word about quality
 
void sws_freeVec(SwsVector *a)
 
int sws_receive_slice(struct SwsContext *c, unsigned int slice_start, unsigned int slice_height)
Request a horizontal slice of the output data to be written into the frame previously provided to sws...
 
const char * swscale_license(void)
Return the libswscale license.
 
const AVClass * sws_get_class(void)
Get the AVClass for swsContext.
 
enum AVPixelFormat srcFormat
Source pixel format.
 
int sws_frame_start(struct SwsContext *c, AVFrame *dst, const AVFrame *src)
Initialize the scaling process for a given pair of source/destination frames.
 
static enum AVPixelFormat pix_fmt
 
int length
number of coefficients in the vector
 
SwsVector * sws_allocVec(int length)
Allocate and return an uninitialized vector with length coefficients.
 
SwsVector * sws_getGaussianVec(double variance, double quality)
Return a normalized Gaussian curve used to filter stuff quality = 3 is high quality,...
 
enum AVPixelFormat dstFormat
Destination pixel format.
 
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your context
 
Describe the class of an AVClass context structure.
 
SwsFilter * sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, float lumaSharpen, float chromaSharpen, float chromaHShift, float chromaVShift, int verbose)
 
struct SwsContext * sws_alloc_context(void)
Allocate an empty SwsContext.
 
double * coeff
pointer to the list of coefficients
 
int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], int srcRange, const int table[4], int dstRange, int brightness, int contrast, int saturation)
 
void sws_scaleVec(SwsVector *a, double scalar)
Scale all the coefficients of a by the scalar value.
 
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
 
struct 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.
 
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
 
int srcH
Height of source luma/alpha planes.
 
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
 
const char * swscale_configuration(void)
Return the libswscale build-time configuration.
 
int sws_isSupportedInput(enum AVPixelFormat pix_fmt)
Return a positive value if pix_fmt is a supported input format, 0 otherwise.
 
#define av_warn_unused_result
 
int sws_scale_frame(struct SwsContext *c, AVFrame *dst, const AVFrame *src)
Scale source data from src and write the output to dst.
 
int srcW
Width of source luma/alpha planes.
 
int sws_isSupportedEndiannessConversion(enum AVPixelFormat pix_fmt)
 
int dstRange
0 = MPG YUV range, 1 = JPG YUV range (destination image).
 
unsigned int sws_receive_slice_alignment(const struct SwsContext *c)
Get the alignment required for slices.
 
int sws_isSupportedOutput(enum AVPixelFormat pix_fmt)
Return a positive value if pix_fmt is a supported output format, 0 otherwise.
 
void sws_freeFilter(SwsFilter *filter)
 
static int slice_start(SliceContext *sc, VVCContext *s, VVCFrameContext *fc, const CodedBitstreamUnit *unit, const int is_first_slice)
 
void sws_frame_end(struct SwsContext *c)
Finish the scaling process for a pair of source/destination frames previously submitted with sws_fram...
 
int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table, int *srcRange, int **table, int *dstRange, int *brightness, int *contrast, int *saturation)
 
av_warn_unused_result int sws_init_context(struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter)
Initialize the swscaler context sws_context.
 
void sws_freeContext(struct SwsContext *swsContext)
Free the swscaler context swsContext.
 
const int * sws_getCoefficients(int colorspace)
Return a pointer to yuv<->rgb coefficients for the given colorspace suitable for sws_setColorspaceDet...
 
unsigned swscale_version(void)
 
#define flags(name, subs,...)
 
void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette)
Convert an 8-bit paletted frame into a frame with a color depth of 32 bits.
 
int dstH
Height of destination luma/alpha planes.
 
void sws_normalizeVec(SwsVector *a, double height)
Scale all the coefficients of a so that their sum equals height.
 
double param[2]
Input parameters for scaling algorithms that need them.