static int planarToNv12Wrapper(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY, int srcSliceH, uint8_t* dstParam[], int dstStride[]) { uint8_t *dst = dstParam[1] + dstStride[1]*srcSliceY/2; copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW, dstParam[0], dstStride[0]); if (c->dstFormat == PIX_FMT_NV12) interleaveBytes(src[1], src[2], dst, c->srcW/2, srcSliceH/2, srcStride[1], srcStride[2], dstStride[0]); else interleaveBytes(src[2], src[1], dst, c->srcW/2, srcSliceH/2, srcStride[2], srcStride[1], dstStride[0]); return srcSliceH; }
static void draw_slice_g200(uint8_t *image[], int stride[], int width,int height,int x,int y) { uint8_t *dest; uint32_t bespitch = (mga_vid_config.src_width + 31) & ~31; dest = vid_data + bespitch*y + x; mem2agpcpy_pic(dest, image[0], width, height, bespitch, stride[0]); width/=2;height/=2;x/=2;y/=2; dest = vid_data + bespitch*mga_vid_config.src_height + bespitch*y + 2*x; interleaveBytes(image[1],image[2],dest, width, height, stride[1], stride[2], bespitch); }