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;

    }

  }

}

你可能感兴趣的:(YUY2转换为I420格式)