2011-07-20 9 views
1

yuv420Pピクセルをバイナリファイルの代わりにバッファに書きたいと思っています。 私はluma、CbとCrがポインタに格納されているとします。yuv420バッファをコピーする

代わり
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) 

書き込みがmemcpyをthorughバッファにそれが

/* 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

'のはsizeof(サイズ* 1.5)'間違っている、これはコンパイルさえありませんか?代わりに 'malloc(size + 2 *(size >> 2))'を試しましたか?引数が逆になっているとmarinaraが言っているように、 'outpixel。* 'ではなく' buffer'に追加する必要があるように見えます。 – user786653

答えて

1

memcpyを呼び出すと、引数が逆になります。

ああ、C. の喜び:)

関連する問題