forked from FFmpeg/FFmpeg
lavu: add FF_CEIL_RSHIFT and use it in various places.
This commit is contained in:
parent
d9cb1e0e15
commit
570d63eef3
17 changed files with 45 additions and 41 deletions
|
@ -357,8 +357,8 @@ static int decode_slice(AVCodecContext *c, void *arg)
|
||||||
|
|
||||||
av_assert1(width && height);
|
av_assert1(width && height);
|
||||||
if (f->colorspace == 0) {
|
if (f->colorspace == 0) {
|
||||||
const int chroma_width = -((-width) >> f->chroma_h_shift);
|
const int chroma_width = FF_CEIL_RSHIFT(width, f->chroma_h_shift);
|
||||||
const int chroma_height = -((-height) >> f->chroma_v_shift);
|
const int chroma_height = FF_CEIL_RSHIFT(height, f->chroma_v_shift);
|
||||||
const int cx = x >> f->chroma_h_shift;
|
const int cx = x >> f->chroma_h_shift;
|
||||||
const int cy = y >> f->chroma_v_shift;
|
const int cy = y >> f->chroma_v_shift;
|
||||||
decode_plane(fs, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0);
|
decode_plane(fs, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0);
|
||||||
|
|
|
@ -973,8 +973,8 @@ static int encode_slice(AVCodecContext *c, void *arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f->colorspace == 0) {
|
if (f->colorspace == 0) {
|
||||||
const int chroma_width = -((-width) >> f->chroma_h_shift);
|
const int chroma_width = FF_CEIL_RSHIFT(width, f->chroma_h_shift);
|
||||||
const int chroma_height = -((-height) >> f->chroma_v_shift);
|
const int chroma_height = FF_CEIL_RSHIFT(height, f->chroma_v_shift);
|
||||||
const int cx = x >> f->chroma_h_shift;
|
const int cx = x >> f->chroma_h_shift;
|
||||||
const int cy = y >> f->chroma_v_shift;
|
const int cy = y >> f->chroma_v_shift;
|
||||||
|
|
||||||
|
|
|
@ -388,8 +388,8 @@ static int mimic_decode_frame(AVCodecContext *avctx, void *data,
|
||||||
avctx->height = height;
|
avctx->height = height;
|
||||||
avctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
avctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
||||||
for (i = 0; i < 3; i++) {
|
for (i = 0; i < 3; i++) {
|
||||||
ctx->num_vblocks[i] = -((-height) >> (3 + !!i));
|
ctx->num_vblocks[i] = FF_CEIL_RSHIFT(height, 3 + !!i);
|
||||||
ctx->num_hblocks[i] = width >> (3 + !!i);
|
ctx->num_hblocks[i] = width >> (3 + !!i);
|
||||||
}
|
}
|
||||||
} else if (width != ctx->avctx->width || height != ctx->avctx->height) {
|
} else if (width != ctx->avctx->width || height != ctx->avctx->height) {
|
||||||
avpriv_request_sample(avctx, "Resolution changing");
|
avpriv_request_sample(avctx, "Resolution changing");
|
||||||
|
|
|
@ -1847,8 +1847,8 @@ the_end:
|
||||||
int w = s->width;
|
int w = s->width;
|
||||||
int h = s->height;
|
int h = s->height;
|
||||||
if(index && index<3){
|
if(index && index<3){
|
||||||
w = -((-w) >> hshift);
|
w = FF_CEIL_RSHIFT(w, hshift);
|
||||||
h = -((-h) >> vshift);
|
h = FF_CEIL_RSHIFT(h, vshift);
|
||||||
}
|
}
|
||||||
if(dst){
|
if(dst){
|
||||||
uint8_t *dst2 = dst + s->linesize[index]*(h-1);
|
uint8_t *dst2 = dst + s->linesize[index]*(h-1);
|
||||||
|
|
|
@ -81,8 +81,8 @@ void ff_snow_reset_contexts(SnowContext *s){ //FIXME better initial contexts
|
||||||
}
|
}
|
||||||
|
|
||||||
int ff_snow_alloc_blocks(SnowContext *s){
|
int ff_snow_alloc_blocks(SnowContext *s){
|
||||||
int w= -((-s->avctx->width )>>LOG2_MB_SIZE);
|
int w= FF_CEIL_RSHIFT(s->avctx->width, LOG2_MB_SIZE);
|
||||||
int h= -((-s->avctx->height)>>LOG2_MB_SIZE);
|
int h= FF_CEIL_RSHIFT(s->avctx->height, LOG2_MB_SIZE);
|
||||||
|
|
||||||
s->b_width = w;
|
s->b_width = w;
|
||||||
s->b_height= h;
|
s->b_height= h;
|
||||||
|
|
|
@ -179,8 +179,8 @@ void avcodec_set_dimensions(AVCodecContext *s, int width, int height)
|
||||||
{
|
{
|
||||||
s->coded_width = width;
|
s->coded_width = width;
|
||||||
s->coded_height = height;
|
s->coded_height = height;
|
||||||
s->width = -((-width ) >> s->lowres);
|
s->width = FF_CEIL_RSHIFT(width, s->lowres);
|
||||||
s->height = -((-height) >> s->lowres);
|
s->height = FF_CEIL_RSHIFT(height, s->lowres);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (ARCH_ARM && HAVE_NEON) || ARCH_PPC || HAVE_MMX
|
#if (ARCH_ARM && HAVE_NEON) || ARCH_PPC || HAVE_MMX
|
||||||
|
@ -573,8 +573,9 @@ void avpriv_color_frame(AVFrame *frame, const int c[4])
|
||||||
for (p = 0; p<desc->nb_components; p++) {
|
for (p = 0; p<desc->nb_components; p++) {
|
||||||
uint8_t *dst = frame->data[p];
|
uint8_t *dst = frame->data[p];
|
||||||
int is_chroma = p == 1 || p == 2;
|
int is_chroma = p == 1 || p == 2;
|
||||||
int bytes = -((-frame->width) >> (is_chroma ? desc->log2_chroma_w : 0));
|
int bytes = is_chroma ? FF_CEIL_RSHIFT(frame->width, desc->log2_chroma_w) : frame->width;
|
||||||
for (y = 0; y<-((-frame->height) >> (is_chroma ? desc->log2_chroma_h : 0)); y++){
|
int height = is_chroma ? FF_CEIL_RSHIFT(frame->height, desc->log2_chroma_h) : frame->height;
|
||||||
|
for (y = 0; y < height; y++) {
|
||||||
if (desc->comp[0].depth_minus1 >= 8) {
|
if (desc->comp[0].depth_minus1 >= 8) {
|
||||||
for (x = 0; x<bytes; x++)
|
for (x = 0; x<bytes; x++)
|
||||||
((uint16_t*)dst)[x] = c[p];
|
((uint16_t*)dst)[x] = c[p];
|
||||||
|
@ -623,8 +624,8 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame)
|
||||||
|
|
||||||
switch (avctx->codec->type) {
|
switch (avctx->codec->type) {
|
||||||
case AVMEDIA_TYPE_VIDEO:
|
case AVMEDIA_TYPE_VIDEO:
|
||||||
frame->width = FFMAX(avctx->width , -((-avctx->coded_width )>>avctx->lowres));
|
frame->width = FFMAX(avctx->width, FF_CEIL_RSHIFT(avctx->coded_width, avctx->lowres));
|
||||||
frame->height = FFMAX(avctx->height, -((-avctx->coded_height)>>avctx->lowres));
|
frame->height = FFMAX(avctx->height, FF_CEIL_RSHIFT(avctx->coded_height, avctx->lowres));
|
||||||
if (frame->format < 0)
|
if (frame->format < 0)
|
||||||
frame->format = avctx->pix_fmt;
|
frame->format = avctx->pix_fmt;
|
||||||
if (!frame->sample_aspect_ratio.num)
|
if (!frame->sample_aspect_ratio.num)
|
||||||
|
|
|
@ -135,7 +135,8 @@ int ff_opencl_deshake_process_inout_buf(AVFilterContext *ctx, AVFrame *in, AVFra
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
AVFilterLink *link = ctx->inputs[0];
|
AVFilterLink *link = ctx->inputs[0];
|
||||||
DeshakeContext *deshake = ctx->priv;
|
DeshakeContext *deshake = ctx->priv;
|
||||||
int chroma_height = -((-link->h) >> av_pix_fmt_desc_get(link->format)->log2_chroma_h);
|
const int hshift = av_pix_fmt_desc_get(link->format)->log2_chroma_h;
|
||||||
|
int chroma_height = FF_CEIL_RSHIFT(link->h, hshift);
|
||||||
|
|
||||||
if ((!deshake->opencl_ctx.cl_inbuf) || (!deshake->opencl_ctx.cl_outbuf)) {
|
if ((!deshake->opencl_ctx.cl_inbuf) || (!deshake->opencl_ctx.cl_outbuf)) {
|
||||||
deshake->opencl_ctx.in_plane_size[0] = (in->linesize[0] * in->height);
|
deshake->opencl_ctx.in_plane_size[0] = (in->linesize[0] * in->height);
|
||||||
|
|
|
@ -172,8 +172,8 @@ static int config_input(AVFilterLink *inlink)
|
||||||
if (!gf->buf)
|
if (!gf->buf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
gf->chroma_w = -((-inlink->w) >> hsub);
|
gf->chroma_w = FF_CEIL_RSHIFT(inlink->w, hsub);
|
||||||
gf->chroma_h = -((-inlink->h) >> vsub);
|
gf->chroma_h = FF_CEIL_RSHIFT(inlink->h, vsub);
|
||||||
gf->chroma_r = av_clip(((((gf->radius >> hsub) + (gf->radius >> vsub)) / 2 ) + 1) & ~1, 4, 32);
|
gf->chroma_r = av_clip(((((gf->radius >> hsub) + (gf->radius >> vsub)) / 2 ) + 1) & ~1, 4, 32);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -175,7 +175,7 @@ void copy_picture_field(uint8_t *dst[4], int dst_linesize[4],
|
||||||
int h, i;
|
int h, i;
|
||||||
|
|
||||||
for (plane = 0; plane < desc->nb_components; plane++) {
|
for (plane = 0; plane < desc->nb_components; plane++) {
|
||||||
int lines = plane == 1 || plane == 2 ? -((-src_h) >> vsub) : src_h;
|
int lines = plane == 1 || plane == 2 ? FF_CEIL_RSHIFT(src_h, vsub) : src_h;
|
||||||
int linesize = av_image_get_linesize(format, w, plane);
|
int linesize = av_image_get_linesize(format, w, plane);
|
||||||
uint8_t *dstp = dst[plane];
|
uint8_t *dstp = dst[plane];
|
||||||
const uint8_t *srcp = src[plane];
|
const uint8_t *srcp = src[plane];
|
||||||
|
|
|
@ -48,6 +48,8 @@
|
||||||
#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
|
#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
|
||||||
/* assume b>0 */
|
/* assume b>0 */
|
||||||
#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
|
#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
|
||||||
|
/* assume a>0 and b>0 */
|
||||||
|
#define FF_CEIL_RSHIFT(a,b) (-((-(a)) >> (b)))
|
||||||
#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
|
#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
|
||||||
#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
|
#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
|
||||||
#define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
|
#define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
|
||||||
|
|
|
@ -138,7 +138,7 @@ static int get_video_buffer(AVFrame *frame, int align)
|
||||||
for (i = 0; i < 4 && frame->linesize[i]; i++) {
|
for (i = 0; i < 4 && frame->linesize[i]; i++) {
|
||||||
int h = FFALIGN(frame->height, 32);
|
int h = FFALIGN(frame->height, 32);
|
||||||
if (i == 1 || i == 2)
|
if (i == 1 || i == 2)
|
||||||
h = -((-h) >> desc->log2_chroma_h);
|
h = FF_CEIL_RSHIFT(h, desc->log2_chroma_h);
|
||||||
|
|
||||||
frame->buf[i] = av_buffer_alloc(frame->linesize[i] * h + 16);
|
frame->buf[i] = av_buffer_alloc(frame->linesize[i] * h + 16);
|
||||||
if (!frame->buf[i])
|
if (!frame->buf[i])
|
||||||
|
|
|
@ -284,7 +284,7 @@ void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4],
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (i == 1 || i == 2) {
|
if (i == 1 || i == 2) {
|
||||||
h= -((-height)>>desc->log2_chroma_h);
|
h = FF_CEIL_RSHIFT(height, desc->log2_chroma_h);
|
||||||
}
|
}
|
||||||
av_image_copy_plane(dst_data[i], dst_linesizes[i],
|
av_image_copy_plane(dst_data[i], dst_linesizes[i],
|
||||||
src_data[i], src_linesizes[i],
|
src_data[i], src_linesizes[i],
|
||||||
|
|
|
@ -823,7 +823,7 @@ static void yuyvtoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth = -((-width) >> 1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y = 0; y < height; y++) {
|
for (y = 0; y < height; y++) {
|
||||||
extract_even_c(src, ydst, width);
|
extract_even_c(src, ydst, width);
|
||||||
|
@ -843,7 +843,7 @@ static void yuyvtoyuv422_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth = -((-width) >> 1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y = 0; y < height; y++) {
|
for (y = 0; y < height; y++) {
|
||||||
extract_even_c(src, ydst, width);
|
extract_even_c(src, ydst, width);
|
||||||
|
@ -861,7 +861,7 @@ static void uyvytoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth = -((-width) >> 1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y = 0; y < height; y++) {
|
for (y = 0; y < height; y++) {
|
||||||
extract_even_c(src + 1, ydst, width);
|
extract_even_c(src + 1, ydst, width);
|
||||||
|
@ -881,7 +881,7 @@ static void uyvytoyuv422_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth = -((-width) >> 1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y = 0; y < height; y++) {
|
for (y = 0; y < height; y++) {
|
||||||
extract_even_c(src + 1, ydst, width);
|
extract_even_c(src + 1, ydst, width);
|
||||||
|
|
|
@ -373,8 +373,8 @@ static int swScale(SwsContext *c, const uint8_t *src[],
|
||||||
yuv2packed2_fn yuv2packed2 = c->yuv2packed2;
|
yuv2packed2_fn yuv2packed2 = c->yuv2packed2;
|
||||||
yuv2packedX_fn yuv2packedX = c->yuv2packedX;
|
yuv2packedX_fn yuv2packedX = c->yuv2packedX;
|
||||||
yuv2anyX_fn yuv2anyX = c->yuv2anyX;
|
yuv2anyX_fn yuv2anyX = c->yuv2anyX;
|
||||||
const int chrSrcSliceY = srcSliceY >> c->chrSrcVSubSample;
|
const int chrSrcSliceY = srcSliceY >> c->chrSrcVSubSample;
|
||||||
const int chrSrcSliceH = -((-srcSliceH) >> c->chrSrcVSubSample);
|
const int chrSrcSliceH = FF_CEIL_RSHIFT(srcSliceH, c->chrSrcVSubSample);
|
||||||
int should_dither = is9_OR_10BPS(c->srcFormat) ||
|
int should_dither = is9_OR_10BPS(c->srcFormat) ||
|
||||||
is16BPS(c->srcFormat);
|
is16BPS(c->srcFormat);
|
||||||
int lastDstY;
|
int lastDstY;
|
||||||
|
@ -491,7 +491,7 @@ static int swScale(SwsContext *c, const uint8_t *src[],
|
||||||
|
|
||||||
// Do we have enough lines in this slice to output the dstY line
|
// Do we have enough lines in this slice to output the dstY line
|
||||||
enough_lines = lastLumSrcY2 < srcSliceY + srcSliceH &&
|
enough_lines = lastLumSrcY2 < srcSliceY + srcSliceH &&
|
||||||
lastChrSrcY < -((-srcSliceY - srcSliceH) >> c->chrSrcVSubSample);
|
lastChrSrcY < FF_CEIL_RSHIFT(srcSliceY + srcSliceH, c->chrSrcVSubSample);
|
||||||
|
|
||||||
if (!enough_lines) {
|
if (!enough_lines) {
|
||||||
lastLumSrcY = srcSliceY + srcSliceH - 1;
|
lastLumSrcY = srcSliceY + srcSliceH - 1;
|
||||||
|
|
|
@ -852,9 +852,9 @@ static int planarCopyWrapper(SwsContext *c, const uint8_t *src[],
|
||||||
const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->dstFormat);
|
const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->dstFormat);
|
||||||
int plane, i, j;
|
int plane, i, j;
|
||||||
for (plane = 0; plane < 4; plane++) {
|
for (plane = 0; plane < 4; plane++) {
|
||||||
int length = (plane == 0 || plane == 3) ? c->srcW : -((-c->srcW ) >> c->chrDstHSubSample);
|
int length = (plane == 0 || plane == 3) ? c->srcW : FF_CEIL_RSHIFT(c->srcW, c->chrDstHSubSample);
|
||||||
int y = (plane == 0 || plane == 3) ? srcSliceY: -((-srcSliceY) >> c->chrDstVSubSample);
|
int y = (plane == 0 || plane == 3) ? srcSliceY: FF_CEIL_RSHIFT(srcSliceY, c->chrDstVSubSample);
|
||||||
int height = (plane == 0 || plane == 3) ? srcSliceH: -((-srcSliceH) >> c->chrDstVSubSample);
|
int height = (plane == 0 || plane == 3) ? srcSliceH: FF_CEIL_RSHIFT(srcSliceH, c->chrDstVSubSample);
|
||||||
const uint8_t *srcPtr = src[plane];
|
const uint8_t *srcPtr = src[plane];
|
||||||
uint8_t *dstPtr = dst[plane] + dstStride[plane] * y;
|
uint8_t *dstPtr = dst[plane] + dstStride[plane] * y;
|
||||||
int shiftonly= plane==1 || plane==2 || (!c->srcRange && plane==0);
|
int shiftonly= plane==1 || plane==2 || (!c->srcRange && plane==0);
|
||||||
|
|
|
@ -1228,11 +1228,11 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
|
||||||
(flags & SWS_FAST_BILINEAR)))
|
(flags & SWS_FAST_BILINEAR)))
|
||||||
c->chrSrcHSubSample = 1;
|
c->chrSrcHSubSample = 1;
|
||||||
|
|
||||||
// Note the -((-x)>>y) is so that we always round toward +inf.
|
// Note the FF_CEIL_RSHIFT is so that we always round toward +inf.
|
||||||
c->chrSrcW = -((-srcW) >> c->chrSrcHSubSample);
|
c->chrSrcW = FF_CEIL_RSHIFT(srcW, c->chrSrcHSubSample);
|
||||||
c->chrSrcH = -((-srcH) >> c->chrSrcVSubSample);
|
c->chrSrcH = FF_CEIL_RSHIFT(srcH, c->chrSrcVSubSample);
|
||||||
c->chrDstW = -((-dstW) >> c->chrDstHSubSample);
|
c->chrDstW = FF_CEIL_RSHIFT(dstW, c->chrDstHSubSample);
|
||||||
c->chrDstH = -((-dstH) >> c->chrDstVSubSample);
|
c->chrDstH = FF_CEIL_RSHIFT(dstH, c->chrDstVSubSample);
|
||||||
|
|
||||||
FF_ALLOC_OR_GOTO(c, c->formatConvBuffer, FFALIGN(srcW*2+78, 16) * 2, fail);
|
FF_ALLOC_OR_GOTO(c, c->formatConvBuffer, FFALIGN(srcW*2+78, 16) * 2, fail);
|
||||||
|
|
||||||
|
|
|
@ -2354,7 +2354,7 @@ static void RENAME(yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth= -((-width)>>1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y=0; y<height; y++) {
|
for (y=0; y<height; y++) {
|
||||||
RENAME(extract_even)(src, ydst, width);
|
RENAME(extract_even)(src, ydst, width);
|
||||||
|
@ -2380,7 +2380,7 @@ static void RENAME(yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth= -((-width)>>1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y=0; y<height; y++) {
|
for (y=0; y<height; y++) {
|
||||||
RENAME(extract_even)(src, ydst, width);
|
RENAME(extract_even)(src, ydst, width);
|
||||||
|
@ -2404,7 +2404,7 @@ static void RENAME(uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth= -((-width)>>1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y=0; y<height; y++) {
|
for (y=0; y<height; y++) {
|
||||||
RENAME(extract_even)(src+1, ydst, width);
|
RENAME(extract_even)(src+1, ydst, width);
|
||||||
|
@ -2430,7 +2430,7 @@ static void RENAME(uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, co
|
||||||
int lumStride, int chromStride, int srcStride)
|
int lumStride, int chromStride, int srcStride)
|
||||||
{
|
{
|
||||||
int y;
|
int y;
|
||||||
const int chromWidth= -((-width)>>1);
|
const int chromWidth = FF_CEIL_RSHIFT(width, 1);
|
||||||
|
|
||||||
for (y=0; y<height; y++) {
|
for (y=0; y<height; y++) {
|
||||||
RENAME(extract_even)(src+1, ydst, width);
|
RENAME(extract_even)(src+1, ydst, width);
|
||||||
|
|
Loading…
Add table
Reference in a new issue