rem: rgb = malloc (width * height * 3);
add: rgb = (guchar *) malloc (width * height * 3);
context: guint8 * yv12torgb (guint8 *src_y, guint8 *src_u, guint8 *src_v,		                            int width, int height) {	  int     i, j;	  int     y, u, v;	  int     r, g, b;	  int     sub_i_uv;	  int     sub_j_uv;	  int     uv_width, uv_height;	  guchar *rgb;	  uv_width  = width / 2;	  uv_height = height / 2;	  rgb = malloc (width * height * 3);	  if (!rgb)		  return NULL;	  for (i = 0; i < height; ++i) {		  /* calculate u & v rows */		  sub_i_uv = ((i * uv_height) / height);		  for (j = 0; j < width; ++j) {			  /* calculate u & v columns */			  sub_j_uv = ((j * uv_width) / width);	  /***************************************************	   *  Colour conversion from	   *    http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html#RTFToC30	   *	   *  Thanks to Billy Biggs <vektor@dumbterm.net>	   *  for the pointer and the following conversion.	   *	   *   R' = [ 1.1644         0    1.5960 ]   ([ Y' ]   [  16 ])	   *   G' = [ 1.1644   -0.3918   -0.8130 ] * ([ Cb ] - [ 128 ])	   *   B' = [ 1.1644    2.0172         0 ]   ([ Cr ]   [ 128 ])	   *	   *  Where in xine the above values are represented as	   *   Y' == image->y	   *   Cb == image->u	   *   Cr == image->v	   *	   ***************************************************/			  y = src_y[(i * width) + j] - 16;			  u = src_u[(sub_i_uv * uv_width) + sub_j_uv] - 128;			  v = src_v[(sub_i_uv * uv_width) + sub_j_uv] - 128;			  r = (1.1644 * y) + (1.5960 * v);			  g = (1.1644 * y) - (0.3918 * u) - (0.8130 * v);			  b = (1.1644 * y) + (2.0172 * u);			  clip_8_bit (r);			  clip_8_bit (g);			  clip_8_bit (b);			  rgb[(i * width + j) * 3 + 0] = r;			  rgb[(i * width + j) * 3 + 1] = g;			  rgb[(i * width + j) * 3 + 2] = b;		  }	  }	  return rgb;}