解析TS流之解析TS包头数据

这篇博客主要介绍了TS流解析的过程,重点在于解析204字节TS包的头部数据。文章通过定义头文件`ts_head.h`和源码文件`ts_head.cpp`,展示了如何提取包头中的关键信息,如连续计数器、附加域控制、PID等。通过`read_ts()`函数,实现了读取TS包并存储包头后面数据的功能,为后续的TS流解析打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解析TS流是一个很复杂的过程,首先需要解析TS包头的数据。这里不将分188字节和204字节分开说明,我解析的包为204字节的,188的包解析过程是一样的。

首先我们要定义头文件,头文件的作用为定义一些结构体和函数的申明。

这里给出头文件的源码(我命名为ts_head,h):

#include "define.h"
#ifndef TS_HEAD_H
#define TS_HEAD_H
//.....................结构体的定义..................

typedef struct  //定义包头结构体
{
 unsigned int continuity_counter : 4;//连续计数器
 unsigned int adaptation_field_control : 2;//附加域控制
 unsigned int transport_scambling_control : 2;//加密标志
    unsigned int PID : 13; //packet ID号
 unsigned int transport_priority : 1;//优先级标志
    unsigned int payload_uint_start_indicator : 1;//开始标志
 unsigned int transport_error_indicator : 1; //错误指示信息
 unsigned int sync_byte : 8;//8bit的同步字节

}Pack_hd_st;
typedef struct
{
 Pack_hd_st pack_head;//包头的数据
 unsigned char *buff;//指向包头后面的200字节数据
 int counter;//用来判定文件是否读到尾
}Pac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值