serviceWindowGeneration.h 2.59 KB
#ifndef SERVICEWINDOWGENERATION_H
#define	SERVICEWINDOWGENERATION_H

#include <stdlib.h>
#include <locale>
#include <string>
#include "extratorCC.h"
#include "demux.h"
#include "dprintf.h"
#include "inmanagementdata.h"
#include "ouvinteTradutor.h"
#include "tradutorPortGlosa.h"
#include <iostream>
#include <vector>
//#include "httpstreamer.h"
#include "synchronizer.h"
#include "ouvinteSynchronizer.h"
#include "Mixer.h"
#include <fcntl.h>
#include "listenerMonitorPCRBase.h"
#include <sys/time.h>
#include "monitor_pcr.h"
#include "inputFile.h"
#include <limits.h>
#include "dprintf.h"
#include "serviceException.h"
#include <lavidlib/base/RuntimeException.h>

#define SERVICE_TYPE_CC 1 /* Closed Caption */
#define SERVICE_TYPE_SRT 2 /* Subtitle SRT */
#define SERVICE_TYPE_REC 3 /* Reconhecimento de Voz */
#define SERVICE_TYPE_TEXT 4 /* Texto */
#define SERVICE_TYPE_SRT_ONLY 5 /* Subtitle SRT ONLY */
#define SERVICE_TYPE_REC_ONLY_LIBRAS 6 /* Subtitle SRT ONLY */

using namespace Tradutor;
using namespace Util;
using namespace std;

class ServiceWindowGeneration : public OuvinteTradutor, public OuvinteSynchronizer{

protected:

    TradutorPortGlosa * tradutor;
    //HttpStreamer *sincronizador; 
    Synchronizer * sincronizador;
    MonitorPCR * monitor_pcr_base;
    InputFile * inputfile;
    Mixer * mixer;

    vector<int64_t> * vetor_pts;
	
    char* path_input;
    char* path_audio;
    char* path_libras;
    char* client_type;

    bool running;

    bool finish;
    char* user_id;

    int size, position, transparency, sublanguage, serviceType, numero_legendas, legendas_enviadas;

    void setSize(int);
    void setPosition(int);
    void setTransparency(int);
    void setSubLanguage(int sublang);
    void setServiceType(int type);
    void setUserId(char* _userId);
    void setClientType(char* client_type);
    void setPathInput(char* _path_input);

    void transcodeVideoToWebm();
    void transcodeVideoToMp4();
    void createThumbnail();

public:

    ServiceWindowGeneration();
    ~ServiceWindowGeneration();
    //virtual void notificaGlosaTraduzida( vector<string> * glosas);
    virtual void codifica(vector<string> * glosas);
    virtual void finalizouSincronizacao();
    //virtual void notifyPCRBase(uint64_t pcr_base);
    void initialize();
    TradutorPortGlosa * getTradutor();
    void adicionaPTS(int64_t pts);
    bool isRunning();
    char getRunningOption();

    char* getPathLibras();
    char* getUserId();
    char* getClientType();
    char* getPathInput();
    string getPathAPI();
    void setPathLibras();
    void setSizeOfSubtitles(int sub_size);
};

#endif /* SERVICEWINDOWGENERATION_H */