void SaveYUV420(AVFrame* Frameyuv)
{//********************** 保存YUV数据FILE *yuv_file = fopen("yuv_file", "ab");if (yuv_file){qDebug() << "OK-----------";}char* buf = new char[Frameyuv->height * Frameyuv->width * 3 / 2];memset(buf, 0, Frameyuv->height * Frameyuv->width * 3 / 2);int height = Frameyuv->height;int width = Frameyuv->width;printf("decode video ok\n");int a = 0, i;for (i = 0; i < height; i++){memcpy(buf + a, Frameyuv->data[0] + i * Frameyuv->linesize[0], width);a += width;}for (i = 0; i < height / 2; i++){memcpy(buf + a, Frameyuv->data[1] + i * Frameyuv->linesize[1], width / 2);a += width / 2;}for (i = 0; i < height / 2; i++){memcpy(buf + a, Frameyuv->data[2] + i * Frameyuv->linesize[2], width / 2);a += width / 2;}fwrite(buf, 1, Frameyuv->height * Frameyuv->width * 3 / 2, yuv_file);delete buf;buf = NULL;fclose(yuv_file);
}