60 #if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
63 int has_alpha,
int *loss_ptr){
76 int has_alpha,
int *loss_ptr){
93 int planes[4] = { 0 };
127 dst->
data[1] = src->
data[1] + ((top_band >> y_shift) * src->
linesize[1]) + (left_band >> x_shift);
128 dst->
data[2] = src->
data[2] + ((top_band >> y_shift) * src->
linesize[2]) + (left_band >> x_shift);
130 if(top_band % (1<<y_shift) || left_band % (1<<x_shift))
132 dst->
data[0] = src->
data[0] + (top_band * src->
linesize[0]) + (left_band * max_step[0]);
162 if (padtop || padleft) {
163 memset(dst->
data[0], color[0],
164 dst->
linesize[0] * padtop + (padleft * max_step[0]));
167 if (padleft || padright) {
169 (dst->
linesize[0] - (padright * max_step[0]));
170 yheight = height - 1 - (padtop + padbottom);
171 for (y = 0; y < yheight; y++) {
172 memset(optr, color[0], (padleft + padright) * max_step[0]);
177 if (padbottom || padright) {
178 optr = dst->
data[0] + dst->
linesize[0] * (height - padbottom) -
179 (padright * max_step[0]);
180 memset(optr, color[0], dst->
linesize[0] * padbottom +
181 (padright * max_step[0]));
187 for (i = 0; i < 3; i++) {
191 if (padtop || padleft) {
192 memset(dst->
data[i], color[i],
193 dst->
linesize[i] * (padtop >> y_shift) + (padleft >> x_shift));
196 if (padleft || padright) {
197 optr = dst->
data[i] + dst->
linesize[i] * (padtop >> y_shift) +
198 (dst->
linesize[i] - (padright >> x_shift));
199 yheight = (height - 1 - (padtop + padbottom)) >> y_shift;
200 for (y = 0; y < yheight; y++) {
201 memset(optr, color[i], (padleft + padright) >> x_shift);
208 optr = dst->
data[i] + dst->
linesize[i] * (padtop >> y_shift) +
209 (padleft >> x_shift);
210 memcpy(optr, iptr, (width - padleft - padright) >> x_shift);
212 optr = dst->
data[i] + dst->
linesize[i] * (padtop >> y_shift) +
213 (dst->
linesize[i] - (padright >> x_shift));
214 yheight = (height - 1 - (padtop + padbottom)) >> y_shift;
215 for (y = 0; y < yheight; y++) {
216 memset(optr, color[i], (padleft + padright) >> x_shift);
217 memcpy(optr + ((padleft + padright) >> x_shift), iptr,
218 (width - padleft - padright) >> x_shift);
224 if (padbottom || padright) {
226 ((height - padbottom) >> y_shift) - (padright >> x_shift);
227 memset(optr, color[i],dst->
linesize[i] *
228 (padbottom >> y_shift) + (padright >> x_shift));
244 if(!desc || !desc->
name) {
int plane
Which of the 4 planes contains the component.
static enum AVPixelFormat pix_fmt
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
int av_picture_crop(AVPicture *dst, const AVPicture *src, enum AVPixelFormat pix_fmt, int top_band, int left_band)
Various defines for YUV<->RGB conversion.
int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum AVPixelFormat pix_fmt, int padtop, int padbottom, int padleft, int padright, int *color)
uint8_t log2_chroma_w
Amount to shift the luma width right to find the chroma width.
int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt, int has_alpha)
void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4], const AVPixFmtDescriptor *pixdesc)
Compute the max pixel step for each plane of an image with a format described by pixdesc.
#define av_assert0(cond)
assert() equivalent, that is always enabled.
AVComponentDescriptor comp[4]
Parameters that describe how pixels are packed.
#define AV_PIX_FMT_FLAG_ALPHA
The pixel format has an alpha channel.
attribute_deprecated int linesize[AV_NUM_DATA_POINTERS]
number of bytes per line
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
uint8_t log2_chroma_h
Amount to shift the luma height right to find the chroma height.
#define AV_PIX_FMT_FLAG_RGB
The pixel format contains RGB-like data (as opposed to YUV/grayscale).
static FF_DISABLE_DEPRECATION_WARNINGS int is_yuv_planar(const AVPixFmtDescriptor *desc)
int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel for the pixel format described by pixdesc, including any padding ...
enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
Find the best pixel format to convert to given a certain source pixel format.
simple assert() macros that are a bit more flexible than ISO C assert().
common internal API header
uint64_t flags
Combination of AV_PIX_FMT_FLAG_...
uint8_t nb_components
The number of components each pixel has, (1-4)
attribute_deprecated uint8_t * data[AV_NUM_DATA_POINTERS]
pointers to the image data planes
void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift)
Utility function to access log2_chroma_w log2_chroma_h from the pixel format AVPixFmtDescriptor.
enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
#define AV_LOG_INFO
Standard information.
Libavcodec external API header.
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
BYTE int const BYTE int int int height
int av_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt, int has_alpha)
Compute what kind of losses will occur when converting from one specific pixel format to another...
#define FF_DISABLE_DEPRECATION_WARNINGS
common internal api header.
common internal and external API header
enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
Compute what kind of losses will occur when converting from one specific pixel format to another...
#define FF_ENABLE_DEPRECATION_WARNINGS
number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of...
int main(int argc, char **argv)
AVPixelFormat
Pixel format.
#define AV_PIX_FMT_FLAG_PLANAR
At least one pixel component is not in the first data plane.