Go to the documentation of this file.
42 *h_shift =
desc->log2_chroma_w;
43 *v_shift =
desc->log2_chroma_h;
47 #if FF_API_AVCODEC_PIX_FMT
70 int has_alpha,
int *loss_ptr){
77 loss = loss_ptr ? *loss_ptr : 0;
99 for (
i = 0;
i <
desc->nb_components;
i++)
120 y_shift =
desc->log2_chroma_h;
121 x_shift =
desc->log2_chroma_w;
125 dst->
data[0] =
src->data[0] + (top_band *
src->linesize[0]) + left_band;
126 dst->
data[1] =
src->data[1] + ((top_band >> y_shift) *
src->linesize[1]) + (left_band >> x_shift);
127 dst->
data[2] =
src->data[2] + ((top_band >> y_shift) *
src->linesize[2]) + (left_band >> x_shift);
129 if(top_band % (1<<y_shift) || left_band % (1<<x_shift))
131 dst->
data[0] =
src->data[0] + (top_band *
src->linesize[0]) + (left_band * max_step[0]);
161 if (padtop || padleft) {
163 dst->
linesize[0] * padtop + (padleft * max_step[0]));
166 if (padleft || padright) {
168 (dst->
linesize[0] - (padright * max_step[0]));
169 yheight =
height - 1 - (padtop + padbottom);
170 for (y = 0; y < yheight; y++) {
171 memset(optr,
color[0], (padleft + padright) * max_step[0]);
176 if (padbottom || padright) {
178 (padright * max_step[0]);
180 (padright * max_step[0]));
186 for (
i = 0;
i < 3;
i++) {
187 x_shift =
i ?
desc->log2_chroma_w : 0;
188 y_shift =
i ?
desc->log2_chroma_h : 0;
190 if (padtop || padleft) {
192 dst->
linesize[
i] * (padtop >> y_shift) + (padleft >> x_shift));
195 if (padleft || padright) {
197 (dst->
linesize[
i] - (padright >> x_shift));
198 yheight = (
height - 1 - (padtop + padbottom)) >> y_shift;
199 for (y = 0; y < yheight; y++) {
200 memset(optr,
color[
i], (padleft + padright) >> x_shift);
208 (padleft >> x_shift);
209 memcpy(optr, iptr, (
width - padleft - padright) >> x_shift);
210 iptr +=
src->linesize[
i];
212 (dst->
linesize[
i] - (padright >> x_shift));
213 yheight = (
height - 1 - (padtop + padbottom)) >> y_shift;
214 for (y = 0; y < yheight; y++) {
215 memset(optr,
color[
i], (padleft + padright) >> x_shift);
216 memcpy(optr + ((padleft + padright) >> x_shift), iptr,
217 (
width - padleft - padright) >> x_shift);
218 iptr +=
src->linesize[
i];
223 if (padbottom || padright) {
225 ((
height - padbottom) >> y_shift) - (padright >> x_shift);
227 (padbottom >> y_shift) + (padright >> x_shift));
#define FF_ENABLE_DEPRECATION_WARNINGS
AVPixelFormat
Pixel format.
static FF_DISABLE_DEPRECATION_WARNINGS int is_yuv_planar(const AVPixFmtDescriptor *desc)
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
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.
attribute_deprecated uint8_t * data[AV_NUM_DATA_POINTERS]
pointers to the image data planes
@ AV_PIX_FMT_NB
number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of...
#define av_assert0(cond)
assert() equivalent, that is always enabled.
static enum AVPixelFormat pix_fmt
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)
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 AV_PIX_FMT_FLAG_RGB
The pixel format contains RGB-like data (as opposed to YUV/grayscale).
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)
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)
int av_picture_crop(AVPicture *dst, const AVPicture *src, enum AVPixelFormat pix_fmt, int top_band, int left_band)
void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift)
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 AV_PIX_FMT_FLAG_PLANAR
At least one pixel component is not in the first data plane.
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 FF_DISABLE_DEPRECATION_WARNINGS
static const struct @322 planes[]
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
attribute_deprecated int linesize[AV_NUM_DATA_POINTERS]
number of bytes per line
int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt, int has_alpha)