|
|
|
@ -28,7 +28,10 @@ |
|
|
|
|
#include "pixfmt.h" |
|
|
|
|
|
|
|
|
|
typedef struct AVComponentDescriptor { |
|
|
|
|
uint16_t plane :2; ///< which of the 4 planes contains the component
|
|
|
|
|
/**
|
|
|
|
|
* Which of the 4 planes contains the component. |
|
|
|
|
*/ |
|
|
|
|
uint16_t plane : 2; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of elements between 2 horizontally consecutive pixels minus 1. |
|
|
|
@ -41,8 +44,17 @@ typedef struct AVComponentDescriptor{ |
|
|
|
|
* Elements are bits for bitstream formats, bytes otherwise. |
|
|
|
|
*/ |
|
|
|
|
uint16_t offset_plus1 : 3; |
|
|
|
|
uint16_t shift :3; ///< number of least significant bits that must be shifted away to get the value
|
|
|
|
|
uint16_t depth_minus1 :4; ///< number of bits in the component minus 1
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of least significant bits that must be shifted away |
|
|
|
|
* to get the value. |
|
|
|
|
*/ |
|
|
|
|
uint16_t shift : 3; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Number of bits in the component minus 1. |
|
|
|
|
*/ |
|
|
|
|
uint16_t depth_minus1 : 4; |
|
|
|
|
} AVComponentDescriptor; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -157,8 +169,9 @@ extern attribute_deprecated const AVPixFmtDescriptor av_pix_fmt_descriptors[]; |
|
|
|
|
* component c in data[1] to dst, rather than the palette indexes in |
|
|
|
|
* data[0]. The behavior is undefined if the format is not paletted. |
|
|
|
|
*/ |
|
|
|
|
void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4], |
|
|
|
|
const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component); |
|
|
|
|
void av_read_image_line(uint16_t *dst, const uint8_t *data[4], |
|
|
|
|
const int linesize[4], const AVPixFmtDescriptor *desc, |
|
|
|
|
int x, int y, int c, int w, int read_pal_component); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Write the values from src to the pixel format component c of an |
|
|
|
@ -174,8 +187,9 @@ void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesiz |
|
|
|
|
* @param w the width of the line to write, that is the number of |
|
|
|
|
* values to write to the image line |
|
|
|
|
*/ |
|
|
|
|
void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesize[4], |
|
|
|
|
const AVPixFmtDescriptor *desc, int x, int y, int c, int w); |
|
|
|
|
void av_write_image_line(const uint16_t *src, uint8_t *data[4], |
|
|
|
|
const int linesize[4], const AVPixFmtDescriptor *desc, |
|
|
|
|
int x, int y, int c, int w); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Return the pixel format corresponding to name. |
|
|
|
@ -208,7 +222,8 @@ const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt); |
|
|
|
|
* corresponding info string, or a negative value to print the |
|
|
|
|
* corresponding header. |
|
|
|
|
*/ |
|
|
|
|
char *av_get_pix_fmt_string (char *buf, int buf_size, enum AVPixelFormat pix_fmt); |
|
|
|
|
char *av_get_pix_fmt_string(char *buf, int buf_size, |
|
|
|
|
enum AVPixelFormat pix_fmt); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Return the number of bits per pixel used by the pixel format |
|
|
|
@ -261,7 +276,6 @@ int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, |
|
|
|
|
*/ |
|
|
|
|
int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Utility function to swap the endianness of a pixel format. |
|
|
|
|
* |
|
|
|
@ -272,5 +286,4 @@ int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); |
|
|
|
|
*/ |
|
|
|
|
enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* AVUTIL_PIXDESC_H */ |
|
|
|
|