extratorCC.h
2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
* File: PacketPES.h
* Author: felipe
*
* Created on 19 de Outubro de 2009, 14:49
*/
#ifndef _EXTRATORCC_H
#define _EXTRATORCC_H
#include <cstring>
#include <string>
#include <list>
#include <pthread.h>
#include <iostream>
#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<OuvinteCC*> * ouvintes;
// Mutex para evitar mutiplas chamadas de notificadores
pthread_mutex_t *mutex;
};
#endif