TS码流解析-1-判断包长

前言

最近刚入职,公司是做机顶盒业务的,首要任务是要解TS码流,特意前来记录下编写的步骤,留些脚印来证明自己从事过该行业!!!!对于什么是TS流以及其他的相关知识,我这里就不赘述了。

任务一

给你一个TS流的文件,让你判断该包长是188字节还是204字节。一般来说,TS码流都是由一个个TS包组成的,每个包都是以0x47开始,204字节的是在188字节的基础多了16个字节的校验码。

思路

1.读取文件
2.读取字节
3.判断读取到的字节是否为0x47,是,记录当前位置save_position,执行4,否,执行2
4.读取下一个188或204包长的头字节,头字节是否为0x47,是,累计次数++,次数>10,执行5,次数<10,执行4,否,移动到save_position,执行3
5.返回包长长度

代码

//用于对0x47的判断次数,进入之前保存位置,出来之后重置读取的位置
static int check_times(FILE *ts_file, const int package_length, long int *offset)
{
   
    int loop = 1;
    int return_value = 1;

    *offset = ftell(ts_file);
    /*---------------------------------------------------------*/
    /* Starting at 0x47 is there enough size to check 10 times?*/
    /*---------------------------------------------------------*/
    if (fseek(ts_file, package_length * 10 - 
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值