AV_PIX_FMT_NV12,
AV_PIX_FMT_YUV444P,
AV_PIX_FMT_P010,
- AV_PIX_FMT_P016
+ AV_PIX_FMT_P016,
+ AV_PIX_FMT_YUV444P16,
};
#define DIV_UP(a, b) ( ((a) + (b) - 1) / (b) )
.res.pitch2D.numChannels = channels,
.res.pitch2D.width = src_width,
.res.pitch2D.height = src_height,
- .res.pitch2D.pitchInBytes = src_pitch,
+ .res.pitch2D.pitchInBytes = src_pitch * pixel_size,
.res.pitch2D.devPtr = (CUdeviceptr)src_dptr,
};
out->data[0], out->width, out->height, out->linesize[0],
1);
call_resize_kernel(ctx, s->cu_func_uchar, 1,
- in->data[0]+in->linesize[0]*in->height, in->width/2, in->height/2, in->linesize[0]/2,
- out->data[0]+out->linesize[0]*out->height, out->width/2, out->height/2, out->linesize[0]/2,
+ in->data[1], in->width/2, in->height/2, in->linesize[0]/2,
+ out->data[1], out->width/2, out->height/2, out->linesize[0]/2,
1);
call_resize_kernel(ctx, s->cu_func_uchar, 1,
- in->data[0]+ ALIGN_UP((in->linesize[0]*in->height*5)/4, s->tex_alignment), in->width/2, in->height/2, in->linesize[0]/2,
- out->data[0]+(out->linesize[0]*out->height*5)/4, out->width/2, out->height/2, out->linesize[0]/2,
+ in->data[2], in->width/2, in->height/2, in->linesize[0]/2,
+ out->data[2], out->width/2, out->height/2, out->linesize[0]/2,
1);
break;
case AV_PIX_FMT_YUV444P:
out->data[0], out->width, out->height, out->linesize[0],
1);
call_resize_kernel(ctx, s->cu_func_uchar, 1,
- in->data[0]+in->linesize[0]*in->height, in->width, in->height, in->linesize[0],
- out->data[0]+out->linesize[0]*out->height, out->width, out->height, out->linesize[0],
+ in->data[1], in->width, in->height, in->linesize[0],
+ out->data[1], out->width, out->height, out->linesize[0],
1);
call_resize_kernel(ctx, s->cu_func_uchar, 1,
- in->data[0]+in->linesize[0]*in->height*2, in->width, in->height, in->linesize[0],
- out->data[0]+out->linesize[0]*out->height*2, out->width, out->height, out->linesize[0],
+ in->data[2], in->width, in->height, in->linesize[0],
+ out->data[2], out->width, out->height, out->linesize[0],
1);
break;
+ case AV_PIX_FMT_YUV444P16:
+ call_resize_kernel(ctx, s->cu_func_ushort, 1,
+ in->data[0], in->width, in->height, in->linesize[0] / 2,
+ out->data[0], out->width, out->height, out->linesize[0] / 2,
+ 2);
+ call_resize_kernel(ctx, s->cu_func_ushort, 1,
+ in->data[1], in->width, in->height, in->linesize[1] / 2,
+ out->data[1], out->width, out->height, out->linesize[1] / 2,
+ 2);
+ call_resize_kernel(ctx, s->cu_func_ushort, 1,
+ in->data[2], in->width, in->height, in->linesize[2] / 2,
+ out->data[2], out->width, out->height, out->linesize[2] / 2,
+ 2);
+ break;
case AV_PIX_FMT_NV12:
call_resize_kernel(ctx, s->cu_func_uchar, 1,
in->data[0], in->width, in->height, in->linesize[0],
1);
call_resize_kernel(ctx, s->cu_func_uchar2, 2,
in->data[1], in->width/2, in->height/2, in->linesize[1],
- out->data[0] + out->linesize[0] * ((out->height + 31) & ~0x1f), out->width/2, out->height/2, out->linesize[1]/2,
+ out->data[1], out->width/2, out->height/2, out->linesize[1]/2,
1);
break;
case AV_PIX_FMT_P010LE:
2);
call_resize_kernel(ctx, s->cu_func_ushort2, 2,
in->data[1], in->width / 2, in->height / 2, in->linesize[1]/2,
- out->data[0] + out->linesize[0] * ((out->height + 31) & ~0x1f), out->width / 2, out->height / 2, out->linesize[1] / 4,
+ out->data[1], out->width / 2, out->height / 2, out->linesize[1] / 4,
2);
break;
case AV_PIX_FMT_P016LE:
2);
call_resize_kernel(ctx, s->cu_func_ushort2, 2,
in->data[1], in->width / 2, in->height / 2, in->linesize[1] / 2,
- out->data[0] + out->linesize[0] * ((out->height + 31) & ~0x1f), out->width / 2, out->height / 2, out->linesize[1] / 4,
+ out->data[1], out->width / 2, out->height / 2, out->linesize[1] / 4,
2);
break;
default: