本人在做视频帧数据的写入和读取,在写入的程序中,有如下数据结构,
struct frame_flag /* 每帧标记,共32个字节 */
{
int byte_flag;
enum XESAP_FRAME_TYPE frame_type;
int frame_date_len;
struct timeval frame_time;
void *date;
int frame_size;
int frame_seq;
};
程序中对每个成员赋值:
memset(&add_frame_flag, 0 ,sizeof(add_frame_flag));
add_frame_flag.byte_flag = 0x20100422;
add_frame_flag.frame_type = tf.dex_p->U.frame.type;
add_frame_flag.frame_time.tv_sec = tf.dex_p->birthsec.tv_sec;
add_frame_flag.frame_date_len = tf.dex_p->U.frame.data_len +
add_frame_flag.frame_seq = 7;
add_frame_flag.frame_size = 8;
add_frame_flag.date = tf.dex_p->U.frame.data;
tf.dex_p->U.frame.data = &add_frame_flag;
但是在读取时发现,这样的每帧的头信息,即32个字节中,这两个值 int frame_size; int frame_seq;都是0。不明白原因,甚是疑惑啊。
也看了很多的关于字节对齐的资料,还是不能解决问题啊。
各位大侠,请多多指教哦。 |