/* * File: PacketPES.h * Author: felipe * * Created on 19 de Outubro de 2009, 14:49 */ #ifndef _EXTRATORCC_H #define _EXTRATORCC_H #include #include #include #include #include #include "ouvinteCC.h" #include "stdint.h" #include "ouvinteInput.h" #include "demuxListener.h" using namespace std; class ExtratorCC : /*public OuvinteInput,*/ public DemuxListener { public: ExtratorCC(); ~ExtratorCC(); int packetPES(unsigned char *pacote); void synchronizedPesData(int PES_packet_data_byte, unsigned char *pacote); void dataGroup(int PES_packet_data_byte, unsigned char *pacote); void captionData(int PES_packet_data_byte, unsigned char *pacote, int data_group_id); void dataUnit(int PES_packet_data_byte, unsigned char *pacote); int verificaPESStreamIDSynchronized(unsigned char * PESPacket); int verificaPESStreamID(unsigned char * PESPacket); int verificaPESStartCode(unsigned char * PESPacket); int contemAF(unsigned char * pacote); int contemDTS(unsigned char * PESPacket); int contemESCR(unsigned char * PESPacket); int contemPayloadData(unsigned char *pacote); int contemPayloadStartIndicator(unsigned char *pacote); int contemPCR(unsigned char * pacote); int contemPTS(unsigned char * PESPacket); int contemDSM(unsigned char * PESPacket); int contemAdditional(unsigned char * PESPacket); int contemES_rate(unsigned char * PESPacket); int contemPES_CRC(unsigned char * PESPacket); int contemPES_extension(unsigned char * PESPacket); short unsigned GetTamanhoAF(unsigned char *pacote); int64_t extractPTS(unsigned char * PESPacket); int64_t extractDTS(unsigned char * PESPacket); virtual void registraOuvinte(OuvinteCC * ouvinte); virtual void removeOuvinte(OuvinteCC * ouvinte); virtual void notificaOuvintes(unsigned char * CC); //virtual void chegouInput(unsigned char *pacote); virtual void notifySection(int PID, unsigned char* section, int sectionSize); virtual void notifyErroCRC(int numErroCRC, int PID, int tableID, int tableIDX, unsigned char* section, int sectionSize); virtual void notifyOldSection(int PID, int tableID, int tableIDX); private: string ClosedCaption; int64_t PTS, DTS; std::list * ouvintes; // Mutex para evitar mutiplas chamadas de notificadores pthread_mutex_t *mutex; }; #endif