libdvbpsi源码分析(四)PAT表解析/重建
【推荐阅读】微服务还能火多久?>>> 由上一章 libdvbpsi源码分析(三)PSI decocder详细分析 ,我们知道了psi decoder的构建过程。本章将延续上文 以PAT表详细解析为例,由点及面的概述libdvbpsi的实现。 下面详细分析pat decoder解码器的创建过程: a、首先通过dvbpsi_new创建一个通用的decoder,但还未真正的实例化为pat decoder,即pat decoder还未初始化。 dvbpsi_t *dvbpsi_new(dvbpsi_message_cb callback, enum dvbpsi_msg_level level) { dvbpsi_t *p_dvbpsi = calloc(1, sizeof(dvbpsi_t)); if (p_dvbpsi == NULL) return NULL; p_dvbpsi->p_decoder = NULL; //赋值为NULL,pat decoder还未初始化 p_dvbpsi->pf_message = callback; p_dvbpsi->i_msg_level = level; return p_dvbpsi; } b、初始化PAT decoder 并且绑定pat表的解析handle动作。其中dvbpsi_pat_attach中dvbpsi_decoder