/****************************************************************************
*** 作用 :
*** 第一,求ts流中pat,pmt表的crc32;
第二,验证crc32是否正确,验证时,把len加4,把4个字节的crc写到crc32_table的后面,得到crc为0,则crc为正确的。
*** 备注 : crc32_table是根据32位的crc码字得来。在vlc的开源代码中有代码。
****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int MakeTable(uint32_t *crc32_table)
{
for(uint32_t i = 0; i < 256; i++ ) {
uint32_t k = 0;
for(uint32_t j = (i << 24) | 0x800000; j != 0x80000000; j <<= 1 ) {
k = (k << 1) ^ (((k ^ j) & 0x80000000) ? 0x04c11db7 : 0);
}
crc32_table[i] = k;
}
}
uint32_t Crc32Calculate(uint8_t *buffer, uint32_t size, uint32_t *crc32_table)
{
uint32_t crc32_reg = 0xFFFFFFFF
ts crc32 验证与计算
最新推荐文章于 2024-07-28 17:08:49 发布
本文介绍如何计算并验证TS流中的PAT、PMT表的CRC32值。通过创建CRC32表并使用循环进行位运算计算CRC,然后验证CRC是否正确,以确保数据完整性。
摘要由CSDN通过智能技术生成