World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Image related

AVPicture types, pixel formats and basic image planes manipulation. Подробнее...

+ Граф связей класса Image related:

Перечисления

enum  AVPictureType {
  AV_PICTURE_TYPE_NONE = 0, AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B,
  AV_PICTURE_TYPE_S, AV_PICTURE_TYPE_SI, AV_PICTURE_TYPE_SP, AV_PICTURE_TYPE_BI
}
 

Функции

char av_get_picture_type_char (enum AVPictureType pict_type)
 
void av_image_fill_max_pixsteps (int max_pixsteps[4], int max_pixstep_comps[4], const AVPixFmtDescriptor *pixdesc)
 
int av_image_get_linesize (enum AVPixelFormat pix_fmt, int width, int plane)
 
int av_image_fill_linesizes (int linesizes[4], enum AVPixelFormat pix_fmt, int width)
 
int av_image_fill_pointers (uint8_t *data[4], enum AVPixelFormat pix_fmt, int height, uint8_t *ptr, const int linesizes[4])
 
int av_image_alloc (uint8_t *pointers[4], int linesizes[4], int w, int h, enum AVPixelFormat pix_fmt, int align)
 
void av_image_copy_plane (uint8_t *dst, int dst_linesize, const uint8_t *src, int src_linesize, int bytewidth, int height)
 
void av_image_copy (uint8_t *dst_data[4], int dst_linesizes[4], const uint8_t *src_data[4], const int src_linesizes[4], enum AVPixelFormat pix_fmt, int width, int height)
 
void av_image_copy_uc_from (uint8_t *dst_data[4], const ptrdiff_t dst_linesizes[4], const uint8_t *src_data[4], const ptrdiff_t src_linesizes[4], enum AVPixelFormat pix_fmt, int width, int height)
 
int av_image_fill_arrays (uint8_t *dst_data[4], int dst_linesize[4], const uint8_t *src, enum AVPixelFormat pix_fmt, int width, int height, int align)
 
int av_image_get_buffer_size (enum AVPixelFormat pix_fmt, int width, int height, int align)
 
int av_image_copy_to_buffer (uint8_t *dst, int dst_size, const uint8_t *const src_data[4], const int src_linesize[4], enum AVPixelFormat pix_fmt, int width, int height, int align)
 
int av_image_check_size (unsigned int w, unsigned int h, int log_offset, void *log_ctx)
 
int av_image_check_size2 (unsigned int w, unsigned int h, int64_t max_pixels, enum AVPixelFormat pix_fmt, int log_offset, void *log_ctx)
 
int av_image_check_sar (unsigned int w, unsigned int h, AVRational sar)
 
int av_image_fill_black (uint8_t *dst_data[4], const ptrdiff_t dst_linesize[4], enum AVPixelFormat pix_fmt, enum AVColorRange range, int width, int height)
 

Подробное описание

AVPicture types, pixel formats and basic image planes manipulation.

Перечисления

◆ AVPictureType

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/avutil.h>

Элементы перечислений
AV_PICTURE_TYPE_NONE 

Undefined.

AV_PICTURE_TYPE_I 

Intra.

AV_PICTURE_TYPE_P 

Predicted.

AV_PICTURE_TYPE_B 

Bi-dir predicted.

AV_PICTURE_TYPE_S 

S(GMC)-VOP MPEG-4.

AV_PICTURE_TYPE_SI 

Switching Intra.

AV_PICTURE_TYPE_SP 

Switching Predicted.

AV_PICTURE_TYPE_BI 

BI type.

См. определение в файле avutil.h строка 272

Функции

◆ av_get_picture_type_char()

char av_get_picture_type_char ( enum AVPictureType  pict_type)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/avutil.h>

Return a single letter to describe the given picture type pict_type.

Аргументы
[in]pict_typethe picture type
Возвращает
a single character representing the picture type, '?' if pict_type is unknown

◆ av_image_fill_max_pixsteps()

void av_image_fill_max_pixsteps ( int  max_pixsteps[4],
int  max_pixstep_comps[4],
const AVPixFmtDescriptor pixdesc 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Compute the max pixel step for each plane of an image with a format described by pixdesc.

The pixel step is the distance in bytes between the first byte of the group of bytes which describe a pixel component and the first byte of the successive group in the same plane for the same component.

Аргументы
max_pixstepsan array which is filled with the max pixel step for each plane. Since a plane may contain different pixel components, the computed max_pixsteps[plane] is relative to the component in the plane with the max pixel step.
max_pixstep_compsan array which is filled with the component for each plane which has the max pixel step. May be NULL.

◆ av_image_get_linesize()

int av_image_get_linesize ( enum AVPixelFormat  pix_fmt,
int  width,
int  plane 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Compute the size of an image line with format pix_fmt and width width for the plane plane.

Возвращает
the computed size in bytes

◆ av_image_fill_linesizes()

int av_image_fill_linesizes ( int  linesizes[4],
enum AVPixelFormat  pix_fmt,
int  width 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Fill plane linesizes for an image with pixel format pix_fmt and width width.

Аргументы
linesizesarray to be filled with the linesize for each plane
Возвращает
>= 0 in case of success, a negative error code otherwise

Используется в AVVideoStream::decode_frame().

+ Граф вызова функции:

◆ av_image_fill_pointers()

int av_image_fill_pointers ( uint8_t data[4],
enum AVPixelFormat  pix_fmt,
int  height,
uint8_t ptr,
const int  linesizes[4] 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Fill plane data pointers for an image with pixel format pix_fmt and height height.

Аргументы
datapointers array to be filled with the pointer for each image plane
ptrthe pointer to a buffer which will contain the image
linesizesthe array containing the linesize for each plane, should be filled by av_image_fill_linesizes()
Возвращает
the size in bytes required for the image buffer, a negative error code in case of failure

◆ av_image_alloc()

int av_image_alloc ( uint8_t pointers[4],
int  linesizes[4],
int  w,
int  h,
enum AVPixelFormat  pix_fmt,
int  align 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Allocate an image with size w and h and pixel format pix_fmt, and fill pointers and linesizes accordingly. The allocated image buffer has to be freed by using av_freep(&pointers[0]).

Аргументы
alignthe value to use for buffer size alignment
Возвращает
the size in bytes required for the image buffer, a negative error code in case of failure

◆ av_image_copy_plane()

void av_image_copy_plane ( uint8_t dst,
int  dst_linesize,
const uint8_t src,
int  src_linesize,
int  bytewidth,
int  height 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Copy image plane from src to dst. That is, copy "height" number of lines of "bytewidth" bytes each. The first byte of each successive line is separated by *_linesize bytes.

bytewidth must be contained by both absolute values of dst_linesize and src_linesize, otherwise the function behavior is undefined.

Аргументы
dst_linesizelinesize for the image plane in dst
src_linesizelinesize for the image plane in src

◆ av_image_copy()

void av_image_copy ( uint8_t dst_data[4],
int  dst_linesizes[4],
const uint8_t src_data[4],
const int  src_linesizes[4],
enum AVPixelFormat  pix_fmt,
int  width,
int  height 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Copy image in src_data to dst_data.

Аргументы
dst_linesizeslinesizes for the image in dst_data
src_linesizeslinesizes for the image in src_data

◆ av_image_copy_uc_from()

void av_image_copy_uc_from ( uint8_t dst_data[4],
const ptrdiff_t  dst_linesizes[4],
const uint8_t src_data[4],
const ptrdiff_t  src_linesizes[4],
enum AVPixelFormat  pix_fmt,
int  width,
int  height 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Copy image data located in uncacheable (e.g. GPU mapped) memory. Where available, this function will use special functionality for reading from such memory, which may result in greatly improved performance compared to plain av_image_copy().

The data pointers and the linesizes must be aligned to the maximum required by the CPU architecture.

Заметки
The linesize parameters have the type ptrdiff_t here, while they are int for av_image_copy().
On x86, the linesizes currently need to be aligned to the cacheline size (i.e. 64) to get improved performance.

◆ av_image_fill_arrays()

int av_image_fill_arrays ( uint8_t dst_data[4],
int  dst_linesize[4],
const uint8_t src,
enum AVPixelFormat  pix_fmt,
int  width,
int  height,
int  align 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Setup the data pointers and linesizes based on the specified image parameters and the provided array.

The fields of the given image are filled in by using the src address which points to the image data buffer. Depending on the specified pixel format, one or multiple image data pointers and line sizes will be set. If a planar format is specified, several pointers will be set pointing to the different picture planes and the line sizes of the different planes will be stored in the lines_sizes array. Call with src == NULL to get the required size for the src buffer.

To allocate the buffer and fill in the dst_data and dst_linesize in one call, use av_image_alloc().

Аргументы
dst_datadata pointers to be filled in
dst_linesizelinesizes for the image in dst_data to be filled in
srcbuffer which will contain or contains the actual image data, can be NULL
pix_fmtthe pixel format of the image
widththe width of the image in pixels
heightthe height of the image in pixels
alignthe value used in src for linesize alignment
Возвращает
the size in bytes required for src, a negative error code in case of failure

◆ av_image_get_buffer_size()

int av_image_get_buffer_size ( enum AVPixelFormat  pix_fmt,
int  width,
int  height,
int  align 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Return the size in bytes of the amount of data required to store an image with the given parameters.

Аргументы
pix_fmtthe pixel format of the image
widththe width of the image in pixels
heightthe height of the image in pixels
alignthe assumed linesize alignment
Возвращает
the buffer size in bytes, a negative error code in case of failure

◆ av_image_copy_to_buffer()

int av_image_copy_to_buffer ( uint8_t dst,
int  dst_size,
const uint8_t *const  src_data[4],
const int  src_linesize[4],
enum AVPixelFormat  pix_fmt,
int  width,
int  height,
int  align 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Copy image data from an image into a buffer.

av_image_get_buffer_size() can be used to compute the required size for the buffer to fill.

Аргументы
dsta buffer into which picture data will be copied
dst_sizethe size in bytes of dst
src_datapointers containing the source image data
src_linesizelinesizes for the image in src_data
pix_fmtthe pixel format of the source image
widththe width of the source image in pixels
heightthe height of the source image in pixels
alignthe assumed linesize alignment for dst
Возвращает
the number of bytes written to dst, or a negative value (error code) on error

◆ av_image_check_size()

int av_image_check_size ( unsigned int  w,
unsigned int  h,
int  log_offset,
void log_ctx 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Check if the given dimension of an image is valid, meaning that all bytes of the image can be addressed with a signed int.

Аргументы
wthe width of the picture
hthe height of the picture
log_offsetthe offset to sum to the log level for logging with log_ctx
log_ctxthe parent logging context, it may be NULL
Возвращает
>= 0 if valid, a negative error code otherwise

◆ av_image_check_size2()

int av_image_check_size2 ( unsigned int  w,
unsigned int  h,
int64_t  max_pixels,
enum AVPixelFormat  pix_fmt,
int  log_offset,
void log_ctx 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Check if the given dimension of an image is valid, meaning that all bytes of a plane of an image with the specified pix_fmt can be addressed with a signed int.

Аргументы
wthe width of the picture
hthe height of the picture
max_pixelsthe maximum number of pixels the user wants to accept
pix_fmtthe pixel format, can be AV_PIX_FMT_NONE if unknown.
log_offsetthe offset to sum to the log level for logging with log_ctx
log_ctxthe parent logging context, it may be NULL
Возвращает
>= 0 if valid, a negative error code otherwise

◆ av_image_check_sar()

int av_image_check_sar ( unsigned int  w,
unsigned int  h,
AVRational  sar 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Check if the given sample aspect ratio of an image is valid.

It is considered invalid if the denominator is 0 or if applying the ratio to the image size would make the smaller dimension less than 1. If the sar numerator is 0, it is considered unknown and will return as valid.

Аргументы
wwidth of the image
hheight of the image
sarsample aspect ratio of the image
Возвращает
0 if valid, a negative AVERROR code otherwise

◆ av_image_fill_black()

int av_image_fill_black ( uint8_t dst_data[4],
const ptrdiff_t  dst_linesize[4],
enum AVPixelFormat  pix_fmt,
enum AVColorRange  range,
int  width,
int  height 
)

#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavutil/imgutils.h>

Overwrite the image data with black. This is suitable for filling a sub-rectangle of an image, meaning the padding between the right most pixel and the left most pixel on the next line will not be overwritten. For some formats, the image size might be rounded up due to inherent alignment.

If the pixel format has alpha, the alpha is cleared to opaque.

This can return an error if the pixel format is not supported. Normally, all non-hwaccel pixel formats should be supported.

Passing NULL for dst_data is allowed. Then the function returns whether the operation would have succeeded. (It can return an error if the pix_fmt is not supported.)

Аргументы
dst_datadata pointers to destination image
dst_linesizelinesizes for the destination image
pix_fmtthe pixel format of the image
rangethe color range of the image (important for colorspaces such as YUV)
widththe width of the image in pixels
heightthe height of the image in pixels
Возвращает
0 if the image data was cleared, a negative AVERROR code otherwise
AV_PICTURE_TYPE_SI
@ AV_PICTURE_TYPE_SI
Switching Intra.
Definition: avutil.h:278
AV_PICTURE_TYPE_I
@ AV_PICTURE_TYPE_I
Intra.
Definition: avutil.h:274
AV_PICTURE_TYPE_SP
@ AV_PICTURE_TYPE_SP
Switching Predicted.
Definition: avutil.h:279
AV_PICTURE_TYPE_NONE
@ AV_PICTURE_TYPE_NONE
Undefined.
Definition: avutil.h:273
AV_PICTURE_TYPE_B
@ AV_PICTURE_TYPE_B
Bi-dir predicted.
Definition: avutil.h:276
AV_PICTURE_TYPE_P
@ AV_PICTURE_TYPE_P
Predicted.
Definition: avutil.h:275
AV_PICTURE_TYPE_BI
@ AV_PICTURE_TYPE_BI
BI type.
Definition: avutil.h:280
AV_PICTURE_TYPE_S
@ AV_PICTURE_TYPE_S
S(GMC)-VOP MPEG-4.
Definition: avutil.h:277