4,465
社区成员




while(1)
{
if(ioctl(dev,IOCTRL_RD_IMG_DATA,rgb))
{
printf("ioctl DISPLAY_IMG_DATA error\n");
exit(1);
}
/*rgb565转为rgb24*/
for(y=0;y<240;y++)
for(x=0;x<320;x++)
rgb565_2_rgb24(pfbmap+x*3+y*320*3,(unsigned short)rgb[y*320+x]);
/*RGB转为YUV*/
ConvertRGB2YUV(m_param.width,m_param.height,pfbmap,cam_yuv);
/*调用t264库文件中的T264_encode()函数进行编码*/
iActualLen=T264_encode(m_t264,cam_yuv,m_pDst,m_lDstSize);
rate=(float)(m_lDstSize-iActualLen)*100/m_lDstSize;
printf("encoded:%d,%d bytes,encoded rate:%.3f\n",m_lDstSize,iActualLen,rate);
memcpy(m_pPoolData,&m_t264->frame_num,1);
memcpy(m_pPoolData+1,m_pDst,iActualLen);
iActualLen++;
/*从m_pPoolData数据缓冲区发送iActualLen字节数据到addrdst地址处,实现了数据的传输*/
sendto(sockfd,m_pPoolData,iActualLen,0,(struct sockaddr*)&addrdst,sizeof(struct sockaddr_in));
}