任务七
任务描述:把前几个阶段解析出来的表整合起来,并且展示出来,输入一个存在的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=