TS码流解析-7-整合相关表,并且生成可播放文件

本文介绍了如何将解析出的TS码流表整合,并根据指定PID导出可播放的TS文件。通过查找PMT,遍历码流文件,实现了相关数据的另存。实习期间,作者在码流解码方面取得进步,同时提供了完整的代码资源。
摘要由CSDN通过智能技术生成

任务七

任务描述:把前几个阶段解析出来的表整合起来,并且展示出来,输入一个存在的pid,然后导出一个ts文件,并且能够在KMP上播放

步骤

这里主要是根据输入的PID,去寻找对应的PMT中的内容,并且根据对应的elementary的PID遍历码流文件,把相关的文件另存,然后用播放器播放。既然表已经解析完了,那么重点就是寻找跟另存的功能实现,另外怎么显示,显示什么,得看需要方怎么要求了,下面是另存的代码

/*****************************************************************************
*   Function Name: check_pid_callback
*   Description  : the pid check callback function
*   Parameters   : STREAM_MESSAGE  *stream_message                   
*                  unsigned int ts_package_pid  
*   Returns : static int
*             1 success match
*             0 match error
*****************************************************************************/
static int check_pid_callback(STREAM_MESSAGE  *stream_message, unsigned int ts_package_pid)
{
   
    while(stream_message != NULL)
    {
   
        if (stream_message->elementary_pid ==  ts_package_pid)
        {
   
            return 1;
        }
        stream_message = stream_message->next;
    }
    return 0;
}
/*****************************************************************************
*   Function Name: get_package_head
*   Description  : copy the package head to the package_head struct
*   Parameters   : unsigned char *package_buffer     
*                  TS_PACKAGE_HEAD *ts_package_head  
*   Returns : void
*****************************************************************************/
void get_package_head(unsigned char *package_buffer, TS_PACKAGE_HEAD *ts_package_head)
{
   
    if ((NULL==package_buffer) || (NULL=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值