我想将yuv420P像素写入缓冲区而不是二进制文件。 假设我有luma,Cb和Cr存储在指针中。
luma = output_pixel.luma;
cb = output_pixel.cb;
cr = output_pixel.cr;
int size = lenght * width;
/* this is working */
fwrite(out_pixel.luma,1,size,out_file)
fwrite(out_pixel.cb,1, size>> 2,out_file)
fwrite(out_pixel.cr,1,size >>2 ,out_file)
相反,如果在缓冲区中写入,则无法正常工作,例如
/* this is not working */
char *buffer = (char *)malloc(sizeof(size * 1.5));
memcpy(out_pixel.luma ,buffer,size);
memcpy(out_pixel.cb + size,buffer,size >> 2);
memcpy(out_pixel.cr + size + (size >> 2),buffer,size >> 2);
PS。只想复制o / p缓冲区中的像素。
答案 0 :(得分:1)
当您调用memcpy时,您的参数会被颠倒。
啊,C的喜悦啊 :)