当我读取二进制 mkv 时,集群的 id 是 E7 字节并且时间戳具有无符号整数值,但是当我读取它时,id 并没有给我正确的时间戳。
double mkVSParser::get_clusters_timestamps(char *&package,unsigned long &size)
{
uint8_t *data_to_find = new uint8_t;
*data_to_find=0xE7;//the id
char * buffer = new char[sizeof (uint8_t)];
uint8_t current_data[sizeof (uint8_t)];
for(int i=0;i<size;i++)//finde the first 0xE7 in an cluster
{
memcpy(&buffer[0],&package[i],sizeof (uint8_t));
memcpy(¤t_data[0],buffer,sizeof (uint8_t));
if (memcmp(data_to_find, current_data, sizeof (uint8_t)) == 0)
{
unsigned int timestemp;
std::cout<<"position of byte =="<<i<<"and id =="<<(unsigned int)package[i]<<std::endl;
memcpy(×temp,&package[i+1],sizeof(unsigned int));
std::cout<<"cluster timestemp ="<<timestemp<<std::endl;
return 0;
}
}
return 0;
}
有什么我错过的吗?