FFmpeg
[フレーム]
Files | Functions
Display transformation matrix functions
libavutil » Video related

Files

file   display.h
 

Functions

  Extract the rotation component of the transformation matrix. More...
 
  Initialize a transformation matrix describing a pure clockwise rotation by the specified angle (in degrees). More...
 
void  av_display_matrix_flip (int32_t matrix[9], int hflip, int vflip)
  Flip the input matrix horizontally and/or vertically. More...
 

Detailed Description

The display transformation matrix specifies an affine transformation that should be applied to video frames for correct presentation. It is compatible with the matrices stored in the ISO/IEC 14496-12 container format.

The data is a 3x3 matrix represented as a 9-element array:

| a b u |
(a, b, u, c, d, v, x, y, w) -> | c d v |
| x y w |

All numbers are stored in native endianness, as 16.16 fixed-point values, except for u, v and w, which are stored as 2.30 fixed-point values.

The transformation maps a point (p, q) in the source (pre-transformation) frame to the point (p', q') in the destination (post-transformation) frame as follows:

| a b u |
(p, q, 1) . | c d v | = z * (p', q', 1)
| x y w |

The transformation can also be more explicitly written in components as follows:

p' = (a * p + c * q + x) / z;
q' = (b * p + d * q + y) / z;
z = u * p + v * q + w

Function Documentation

av_display_rotation_get()

double av_display_rotation_get ( const int32_t  matrix[9] )

Extract the rotation component of the transformation matrix.

Parameters
matrix the transformation matrix
Returns
the angle (in degrees) by which the transformation rotates the frame counterclockwise. The angle will be in range [-180.0, 180.0], or NaN if the matrix is singular.
Note
floating point numbers are inherently inexact, so callers are recommended to round the return value to nearest integer before use.

Definition at line 35 of file display.c.

Referenced by av_exif_matrix_to_orientation(), dump_sidedata(), filter_frame(), get_rotation(), main(), and print_displaymatrix().

av_display_rotation_set()

void av_display_rotation_set ( int32_t  matrix[9],
double  angle 
)

Initialize a transformation matrix describing a pure clockwise rotation by the specified angle (in degrees).

Parameters
[out] matrix a transformation matrix (will be fully overwritten by this function)
angle rotation angle in degrees.

Definition at line 51 of file display.c.

Referenced by add_display_matrix(), add_display_matrix_to_stream(), av_exif_orientation_to_matrix(), cri_decode_frame(), ff_h2645_sei_to_frame(), h264_metadata_handle_display_orientation(), main(), and set_display_matrix_from_item().

av_display_matrix_flip()

void av_display_matrix_flip ( int32_t  matrix[9],
int  hflip,
int  vflip 
)

Flip the input matrix horizontally and/or vertically.

Parameters
[in,out] matrix a transformation matrix
hflip whether the matrix should be flipped horizontally
vflip whether the matrix should be flipped vertically

Definition at line 66 of file display.c.

Referenced by add_display_matrix(), add_display_matrix_to_stream(), av_exif_orientation_to_matrix(), cri_decode_frame(), ff_h2645_sei_to_frame(), h264_metadata_handle_display_orientation(), libjxl_preprocess_stream(), main(), and set_display_matrix_from_item().


Generated on Tue Nov 18 2025 19:24:19 for FFmpeg by   doxygen 1.8.17

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