前期搞的cpci视频采集卡已经完成,不过对于h264压缩部分没有理解,用的代码都是在评估板上抄的,下面要深入研究一下了。
有兴趣的我们一起研究吧。
下面是linux下的一段代码,慢慢开始调试了。。。。
int tw2835_encoder_hd1(unsigned char *ptr, struct ct656_vbi_ext_info *vbi_data, int *tlength)
{
int inx;
int tVBI;
int length;
AVFrame pict;
int k;
for(k = 0; k < 2; k++) {
tVBI = (vbi_data->field[k].data[1])&0xff;
inx = tVBI&0xf;
if((tVBI&0xf0) != 0xe0) {
return -1;
}
pict.data[0]=(unsigned char*)(ptr+k*(image_width*image_height));
pict.data[1]=(unsigned char*)(ptr+(frame_width*frame_height)+ k*(image_width*image_height/2));
pict.data[2]= 0;
length=favc_encode(&video_setting[inx],(unsigned char *)out_virt_buffer[inx],(void *)&pict,inx);
tlength[inx]+=length;
//fwrite((unsigned char*)out_virt_buffer[inx],1,length,dout[inx]);
//fwrite((unsigned char*)&length,sizeof(length),1,dout_len[inx]);
if(inx==0)
{
if(writeData((unsigned char*)out_virt_buffer[inx],length)<=0) //write pci
{
START_SEND = 0;
printf("\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n");
}
}
}
return 0;
}