FFmpeg
Macros | Enumerations | Functions
transform.h File Reference

transform input video More...

#include <stdint.h>

Go to the source code of this file.

Macros

 
 
 
#define  FILL_DEFAULT   FILL_ORIGINAL
 

Enumerations

 
 

Functions

void  avfilter_get_matrix (float x_shift, float y_shift, float angle, float zoom, float *matrix)
  Get an affine transformation matrix from a given translation, rotation, and zoom factor. More...
 
void  avfilter_add_matrix (const float *m1, const float *m2, float *result)
  Add two matrices together. More...
 
void  avfilter_sub_matrix (const float *m1, const float *m2, float *result)
  Subtract one matrix from another. More...
 
void  avfilter_mul_matrix (const float *m1, float scalar, float *result)
  Multiply a matrix by a scalar value. More...
 
int  avfilter_transform (const uint8_t *src, uint8_t *dst, int src_stride, int dst_stride, int width, int height, const float *matrix, enum InterpolateMethod interpolate, enum FillMethod fill)
  Do an affine transformation with the given interpolation method. More...
 

Detailed Description

transform input video

All matrices are defined as a single 9-item block of contiguous memory. For example, the identity matrix would be:

float *matrix = {1, 0, 0,
 0, 1, 0,
 0, 0, 1};

Definition in file transform.h.

Macro Definition Documentation

#define INTERPOLATE_DEFAULT   INTERPOLATE_BILINEAR

Definition at line 47 of file transform.h.

#define INTERPOLATE_FAST   INTERPOLATE_NEAREST

Definition at line 48 of file transform.h.

#define INTERPOLATE_BEST   INTERPOLATE_BIQUADRATIC

Definition at line 49 of file transform.h.

#define FILL_DEFAULT   FILL_ORIGINAL

Definition at line 60 of file transform.h.

Enumeration Type Documentation

Enumerator
INTERPOLATE_NEAREST 
INTERPOLATE_BILINEAR 
INTERPOLATE_BIQUADRATIC 
INTERPOLATE_COUNT 

Definition at line 39 of file transform.h.

enum FillMethod
Enumerator
FILL_BLANK 
FILL_ORIGINAL 
FILL_CLAMP 
FILL_MIRROR 
FILL_COUNT 

Definition at line 51 of file transform.h.

Function Documentation

void avfilter_get_matrix ( float  x_shift,
float  y_shift,
float  angle,
float  zoom,
float *  matrix 
)

Get an affine transformation matrix from a given translation, rotation, and zoom factor.

The matrix will look like:

[ zoom * cos(angle), -sin(angle), x_shift, sin(angle), zoom * cos(angle), y_shift, 0, 0, 1 ]

Parameters
x_shift horizontal translation
y_shift vertical translation
angle rotation in radians
zoom scale percent (1.0 = 100%)
matrix 9-item affine transformation matrix

Definition at line 106 of file transform.c.

Referenced by filter_frame().

void avfilter_add_matrix ( const float *  m1,
const float *  m2,
float *  result 
)

Add two matrices together.

result = m1 + m2.

Parameters
m1 9-item transformation matrix
m2 9-item transformation matrix
result 9-item transformation matrix

Definition at line 118 of file transform.c.

void avfilter_sub_matrix ( const float *  m1,
const float *  m2,
float *  result 
)

Subtract one matrix from another.

result = m1 - m2.

Parameters
m1 9-item transformation matrix
m2 9-item transformation matrix
result 9-item transformation matrix

Definition at line 125 of file transform.c.

void avfilter_mul_matrix ( const float *  m1,
float  scalar,
float *  result 
)

Multiply a matrix by a scalar value.

result = m1 * scalar.

Parameters
m1 9-item transformation matrix
scalar a number
result 9-item transformation matrix

Definition at line 132 of file transform.c.

int avfilter_transform ( const uint8_tsrc,
uint8_tdst,
int  src_stride,
int  dst_stride,
int  width,
int  height,
const float *  matrix,
enum InterpolateMethod  interpolate,
enum FillMethod  fill 
)

Do an affine transformation with the given interpolation method.

This multiplies each vector [x,y,1] by the matrix and then interpolates to get the final value.

Parameters
src source image
dst destination image
src_stride source image line size in bytes
dst_stride destination image line size in bytes
width image width in pixels
height image height in pixels
matrix 9-item affine transformation matrix
interpolate pixel interpolation method
fill edge fill method
Returns
negative on error

Definition at line 139 of file transform.c.

Referenced by deshake_transform_c().


Generated on Fri Jan 12 2018 01:46:13 for FFmpeg by   doxygen 1.8.6

AltStyle によって変換されたページ (->オリジナル) /