YUY2转换为I420格式

做windows视频采集时需要将yuy2格式转换为I420格式,

void YUY2toI420(int inWidth, int inHeight, uint8_t* pSrc, uint8_t* pDest) 
{
  int i, j;
  uint8_t* u = pDest + (inWidth * inHeight);
  uint8_t* v = u + (inWidth * inHeight) / 4;

  for (i = 0; i < inHeight / 2; i++) {
    uint8_t* src_l1 = pSrc + inWidth * 2 * 2 * i;
    uint8_t* src_l2 = src_l1 + inWidth * 2;
    uint8_t* y_l1 = pDest + inWidth * 2 * i;
    uint8_t* y_l2 = y_l1 + inWidth;
    for (j = 0; j < inWidth / 2; j++) {
      *y_l1++ = src_l1[0];
      *u++ = src_l1[1];
      *y_l1++ = src_l1[2];
      *v++ = src_l1[3];
      *y_l2++ = src_l2[0];
      *y_l2++ = src_l2[2];
      src_l1 += 4;
      src_l2 += 4;
    }
  }
}

 

你可能感兴趣的:(window多媒体技术,yuy2,i420)