static void gst_video_balance_planar411_ip (GstVideoBalance * videobalance, guint8 * data, gint width, gint height) { int x, y; guint8 *ydata; guint8 *udata, *vdata; gint ystride, ustride, vstride; gint width2, height2; ydata = data + GST_VIDEO_I420_Y_OFFSET (width, height); ystride = GST_VIDEO_I420_Y_ROWSTRIDE (width); for (y = 0; y < height; y++) { oil_tablelookup_u8 (ydata, 1, ydata, 1, videobalance->tabley, 1, width); ydata += ystride; } width2 = width >> 1; height2 = height >> 1; udata = data + GST_VIDEO_I420_U_OFFSET (width, height); vdata = data + GST_VIDEO_I420_V_OFFSET (width, height); ustride = GST_VIDEO_I420_U_ROWSTRIDE (width); vstride = GST_VIDEO_I420_V_ROWSTRIDE (width); for (y = 0; y < height2; y++) { guint8 *uptr, *vptr; guint8 u1, v1; uptr = udata + y * ustride; vptr = vdata + y * vstride; for (x = 0; x < width2; x++) { u1 = *uptr; v1 = *vptr; *uptr++ = videobalance->tableu[u1][v1]; *vptr++ = videobalance->tablev[u1][v1]; } } }
static void gst_gamma_planar411_ip (GstGamma * gamma, guint8 * data, gint size) { oil_tablelookup_u8 (data, 1, data, 1, gamma->gamma_table, 1, size); }