Commit 96c7c6e5c22390aab79908e47e6b57acfe107ea5
1 parent
5f361ee2
Exists in
master
and in
1 other branch
Remoção do componente MonitorPCR(Ajuste)
Showing
3 changed files
with
0 additions
and
148 deletions
Show diff stats
monitorPCR/src/include/listenerMonitorPCRBase.h
| ... | ... | @@ -1,21 +0,0 @@ |
| 1 | -/* | |
| 2 | - * File: listenerMonitorPCRBase.h | |
| 3 | - * Author: leonardo | |
| 4 | - * | |
| 5 | - * Created on 18 de Fevereiro de 2012, 20:46 | |
| 6 | - */ | |
| 7 | - | |
| 8 | -#ifndef LISTENERMONITORPCRBASE_H | |
| 9 | -#define LISTENERMONITORPCRBASE_H | |
| 10 | - | |
| 11 | -#include <stdint.h> | |
| 12 | - | |
| 13 | -class ListenerMonitorPCRBase { | |
| 14 | - | |
| 15 | -public: | |
| 16 | - virtual void notifyPCRBase(uint64_t pcrbase) = 0; | |
| 17 | - | |
| 18 | -}; | |
| 19 | - | |
| 20 | -#endif /* LISTENERMONITORPCRBASE_H */ | |
| 21 | - |
monitorPCR/src/include/monitor_pcr.h
| ... | ... | @@ -1,56 +0,0 @@ |
| 1 | -/* | |
| 2 | - * File: monitor_pcr.h | |
| 3 | - * Author: leonardo | |
| 4 | - * | |
| 5 | - * Created on 17 de Fevereiro de 2012, 17:36 | |
| 6 | - */ | |
| 7 | - | |
| 8 | -#ifndef MONITOR_PCR_H | |
| 9 | -#define MONITOR_PCR_H | |
| 10 | - | |
| 11 | -#include <stdio.h> | |
| 12 | -#include <string.h> | |
| 13 | -#include <locale> | |
| 14 | -#include <stdint.h> | |
| 15 | -#include <list> | |
| 16 | -#include "listenerInput.h" | |
| 17 | -#include "listenerMonitorPCRBase.h" | |
| 18 | -#include "dprintf.h" | |
| 19 | - | |
| 20 | -#define PCRBASE_PADRAO 1000000 | |
| 21 | - | |
| 22 | -using namespace std; | |
| 23 | - | |
| 24 | -class MonitorPCR: public ListenerInput { | |
| 25 | - | |
| 26 | - public: | |
| 27 | - | |
| 28 | - char* extvideo; | |
| 29 | - | |
| 30 | - MonitorPCR(); | |
| 31 | - ~MonitorPCR(); | |
| 32 | - | |
| 33 | - void addListenerPCRBase(ListenerMonitorPCRBase * listener); | |
| 34 | - void notifyListenersWithPCRBase(uint64_t pcrbase); | |
| 35 | - uint64_t getPCRBase(); | |
| 36 | - void notifyInput(unsigned char* packet); | |
| 37 | - | |
| 38 | - /** | |
| 39 | - * Informa para o monitor o formato do vídeo que está sendo manipulado. | |
| 40 | - * Caso seja qualquer outro diferente de Transport Stream (TS), os componentes | |
| 41 | - * observadores devem receber a notificação de um valor de PCR padrão. | |
| 42 | - */ | |
| 43 | - void setFormatVideo(char* format); | |
| 44 | - | |
| 45 | - private: | |
| 46 | - | |
| 47 | - void readPCRBase(unsigned char* packet); | |
| 48 | - | |
| 49 | - list<ListenerMonitorPCRBase*> *listeners; | |
| 50 | - uint64_t pcr_base; | |
| 51 | - bool find; | |
| 52 | - | |
| 53 | -}; | |
| 54 | - | |
| 55 | -#endif /* MONITOR_PCR_H */ | |
| 56 | - |
monitorPCR/src/monitor_pcr.cpp
| ... | ... | @@ -1,71 +0,0 @@ |
| 1 | -#include "monitor_pcr.h" | |
| 2 | - | |
| 3 | -MonitorPCR::MonitorPCR(){ | |
| 4 | - pcr_base = 0; | |
| 5 | - find = false; | |
| 6 | - extvideo = (char*) ""; | |
| 7 | - listeners = new list<ListenerMonitorPCRBase*>(); | |
| 8 | - DPRINTF("Done!\n"); | |
| 9 | -} | |
| 10 | - | |
| 11 | - | |
| 12 | -MonitorPCR::~MonitorPCR(){ | |
| 13 | - DDDPRINTF("Monitor PCR finalized!\n"); | |
| 14 | -} | |
| 15 | - | |
| 16 | - | |
| 17 | -uint64_t MonitorPCR::getPCRBase(){ | |
| 18 | - return pcr_base; | |
| 19 | -} | |
| 20 | - | |
| 21 | - | |
| 22 | -void MonitorPCR::setFormatVideo(char* format) { | |
| 23 | - extvideo = format; | |
| 24 | -} | |
| 25 | - | |
| 26 | - | |
| 27 | -void MonitorPCR::notifyInput(unsigned char* packet) { | |
| 28 | - | |
| 29 | - if (!find) { // verifica se o PCRBase já foi encontrado | |
| 30 | - *extvideo = tolower(*extvideo); | |
| 31 | - if (strcmp(extvideo, (char*) "ts") == 0) { // se for TS procura nos pacotes | |
| 32 | - readPCRBase(packet); | |
| 33 | - } else { // outros formatos de vídeo, define o PCR padrão = 1000000 | |
| 34 | - notifyListenersWithPCRBase((uint64_t) PCRBASE_PADRAO); | |
| 35 | - find = true; | |
| 36 | - } | |
| 37 | - } | |
| 38 | - | |
| 39 | -} | |
| 40 | - | |
| 41 | - | |
| 42 | -void MonitorPCR::readPCRBase(unsigned char* packet){ | |
| 43 | - | |
| 44 | - if (packet[0] == 0x47 && !find){ | |
| 45 | - if((((packet[1] & 0x1F) << 8) | packet[2]) != 0xFF) { | |
| 46 | - int adaptation_field_control = ((packet[3] & 0x30) >> 4); | |
| 47 | - if (adaptation_field_control == 2 || adaptation_field_control == 3) { | |
| 48 | - int adaptation_field_length = packet[4]; | |
| 49 | - if (adaptation_field_length > 0) { | |
| 50 | - if (((packet[5] & 0x10) >> 4) == 1) { | |
| 51 | - uint64_t program_clock_reference_base = (uint64_t) packet[6] << 25 | packet[7] << 17 | packet[8] << 9 | |
| 52 | - | packet[9] << 1 | (packet[10] & 0x80) >> 7; | |
| 53 | - notifyListenersWithPCRBase(program_clock_reference_base); | |
| 54 | - find = true; | |
| 55 | - } | |
| 56 | - } | |
| 57 | - } | |
| 58 | - } | |
| 59 | - } | |
| 60 | - | |
| 61 | -} | |
| 62 | - | |
| 63 | -void MonitorPCR::addListenerPCRBase(ListenerMonitorPCRBase * listener){ | |
| 64 | - this->listeners->push_back(listener); | |
| 65 | -} | |
| 66 | - | |
| 67 | -void MonitorPCR::notifyListenersWithPCRBase(uint64_t pcrbase){ | |
| 68 | - for(list<ListenerMonitorPCRBase*>::iterator it = this->listeners->begin(); it != this->listeners->end(); it++){ | |
| 69 | - (*it)->notifyPCRBase(pcrbase); | |
| 70 | - } | |
| 71 | -} |