Commit 01eb3dc9cb70bc61df203a10440466d881f69ace

Authored by Erickson Silva
1 parent 77505731
Exists in master and in 1 other branch devel

Adiciona serviço 6 (OnlyAudio)

main.cpp
... ... @@ -28,9 +28,10 @@ void serviceSRT(char* path_in, char* path_srt, char* sublanguage, char* position
28 28 void serviceOnlySRT(char* path_file, char* transparency, char* username);
29 29 void serviceREC(char* path_video, char* sublanguage, char* position, char* size, char* transparency, char* username, char* rate);
30 30 void serviceREC(char* path_video, char* sublanguage, char* position, char* size, char* transparency, char* username);
31   -
  31 +void serviceOnlyAudio(char* path_audio, char* transparency, char* username, char* rate);
  32 +void serviceOnlyAudio(char* path_audio, char* transparency, char* username);
32 33 void serviceText(char* path_text, char* transparency, char* username, char* client_type);
33   -void serviceREC2();
  34 +
34 35 void help();
35 36 void fail(string msg);
36 37 void hasFailed();
... ... @@ -99,8 +100,16 @@ int main(int argc, char* argv[]) {
99 100 serviceOnlySRT(argv[2], argv[3], argv[4]);
100 101 break;
101 102 case 6:
102   - serviceREC2();
103   - hasInvalid();
  103 + if(argc <= 4){
  104 + cout << "\nParametros inválidos. Tente novamente.\nService Type REC: ./vlibras 6 INPUT_AUDIO TRANSPARENCY{0=Opaque, 1=Transparent} ID" << endl;
  105 + help();
  106 + hasInvalid();
  107 + break;
  108 + }
  109 + if (argc == 6)
  110 + serviceOnlyAudio(argv[2], argv[3], argv[4], argv[5]);
  111 + else
  112 + serviceOnlyAudio(argv[2], argv[3], argv[4]);
104 113 break;
105 114 default:
106 115 cout << "\nServiço inválido. Tente novamente." << endl;
... ... @@ -283,32 +292,52 @@ void serviceOnlySRT(char* path_file, char* transparency, char* id){
283 292  
284 293 }
285 294  
286   -void serviceREC2(){
287   -
288   - cout << "\n--> Serviço não disponível.\n" << endl;
  295 +void serviceOnlyAudio(char* path_audio, char* transparency, char* id, char* rate){
289 296  
290   -/**
291   - cout << "\nSERVICE RECOGNIZER FROM AUDIO - Delivers only LIBRAS Translation\n" << endl;
292   -
293   - char* path_in = (char*) argv[2];
294   - int transparency = (int) atoi(argv[3]);
295   - char* id = (char*) argv[4];
296   - filename = createFileToRespWeb(id);
  297 + ServiceWindowGenerationFromREC * service_rec;
  298 + service_rec = new ServiceWindowGenerationFromREC(
  299 + path_audio,
  300 + 0,
  301 + 0,
  302 + 0,
  303 + (int) atoi(transparency),
  304 + id, 6, rate);
297 305  
298   - printf("Main 1\n");
  306 + try{
  307 + service_rec->initialize();
  308 + }catch(ServiceException ex){
  309 + fail(ex.getMessage());
  310 + hasFailed();
  311 + return;
  312 + }
  313 + while(service_rec->isRunning()){
  314 + sleep(2);
  315 + }
  316 + delete service_rec;
  317 +}
  318 +
  319 +void serviceOnlyAudio(char* path_audio, char* transparency, char* id){
299 320  
300 321 ServiceWindowGenerationFromREC * service_rec;
301   - service_rec = new ServiceWindowGenerationFromREC(path_in, id, transparency, 6);
  322 + service_rec = new ServiceWindowGenerationFromREC(
  323 + path_audio,
  324 + 0,
  325 + 0,
  326 + 0,
  327 + (int) atoi(transparency),
  328 + id, 6);
302 329  
303   - service_rec->initialize();
304   -
  330 + try{
  331 + service_rec->initialize();
  332 + }catch(ServiceException ex){
  333 + fail(ex.getMessage());
  334 + hasFailed();
  335 + return;
  336 + }
305 337 while(service_rec->isRunning()){
306   - sleep(5);
307   - printf("\nservice_rec->isRunning()...\n");
  338 + sleep(2);
308 339 }
309   - printf("\nService REC_FROM_AUDIO finished!\n");
310   - updateRequestStatus(filename.c_str(), id, "true");
311   -**/
  340 + delete service_rec;
312 341 }
313 342  
314 343 void fail(string msg){
... ...
recognize/src/include/recognize.h
... ... @@ -45,12 +45,15 @@ public:
45 45 void notifyPCRBase(uint64_t pcrbase);
46 46  
47 47 bool isFinished();
  48 + void hasAudio();
  49 +
48 50  
49 51 void Run();
50 52 int count_lines;
51 53  
52 54 private:
53 55  
  56 + bool isAudio;
54 57 int64_t pcr_base;
55 58 bool hasPCRBase;
56 59 char* pathVideo;
... ...
recognize/src/recognize.cpp
... ... @@ -103,8 +103,8 @@ void Recognize::initialize() {
103 103 ifstream file(pathVideo, ifstream::binary);
104 104 if(!file.is_open()){
105 105 finished = true;
106   - Util::Logger::Instance()->writeLog((char*) "[ERRO: recognize.cpp] Arquivo de vídeo não encontrado.");
107   - throw RecognizeException("Falha ao abrir o arquivo de vídeo! Verifique se o mesmo existe.");
  106 + Util::Logger::Instance()->writeLog((char*) "[ERRO: recognize.cpp] Arquivo não encontrado.");
  107 + throw RecognizeException("Falha ao abrir o arquivo! Verifique se o mesmo existe.");
108 108 }
109 109 this->Start();
110 110 }
... ... @@ -112,7 +112,6 @@ void Recognize::initialize() {
112 112 void Recognize::Run(){
113 113  
114 114 finished = false;
115   -
116 115 createDir();
117 116 extractAudioFromVideo();
118 117 breakVideoParts(getTimeMediaSec());
... ... @@ -125,6 +124,10 @@ void Recognize::Run(){
125 124 notifyEndExtraction(count_lines);
126 125 }
127 126  
  127 +void Recognize::hasAudio(){
  128 + isAudio = true;
  129 +}
  130 +
128 131 void Recognize::setFrequency(int freq) {
129 132 frequency = freq;
130 133 }
... ...
servico/src/serviceWindowGeneration.cpp
... ... @@ -46,7 +46,7 @@ bool ServiceWindowGeneration::isRunning() {
46 46  
47 47 /* Quando o sincronizador termina, ele invoca esse método para avisar! */
48 48 void ServiceWindowGeneration::finalizouSincronizacao() {
49   - if (getRunningOption() != '2' && serviceType != SERVICE_TYPE_TEXT && serviceType != SERVICE_TYPE_SRT_ONLY) {
  49 + if (getRunningOption() != '2' && serviceType == SERVICE_TYPE_REC && serviceType == SERVICE_TYPE_SRT) {
50 50 mixer = new Mixer();
51 51 mixer->initialize(this->path_input, this->path_libras,this->position,this->size,this->transparency, this->user_id);
52 52 createThumbnail();
... ... @@ -255,6 +255,7 @@ void ServiceWindowGeneration::transcodeVideoToMp4() {
255 255 if (serviceType == SERVICE_TYPE_TEXT && strcmp(client_type, (char*)"WEB") == 0)
256 256 transcodeVideoToWebm();
257 257 else{
  258 +
258 259 //printf("[INFO]: A transcodificação para .mp4 está ativada!\n");
259 260 string command = "ffmpeg -i ";
260 261 command.append(path_libras)
... ...
servico/src/serviceWindowGenerationFromREC.cpp
... ... @@ -18,7 +18,7 @@ ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC(
18 18  
19 19 ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC(
20 20 char* path_video, int sublanguage, int position, int size, int transparency, char* id, int serviceType) {
21   -
  21 +
22 22 setPathInput(path_video);
23 23 setSubLanguage(sublanguage);
24 24 setPosition(position);
... ... @@ -39,28 +39,36 @@ void ServiceWindowGenerationFromREC::initialize() {
39 39  
40 40 rec->addListener(this);
41 41  
42   - inputfile = new InputFile(this->path_input);
43   - monitor_pcr_base = new MonitorPCR();
  42 + if (serviceType == 6){
  43 + rec->hasAudio();
  44 +
  45 + } else {
44 46  
45   - if (strstr(this->path_input, "ts") != NULL) {
46   - char* format_video = new char[3];
47   - strcpy(format_video, "ts");
48   - monitor_pcr_base->setFormatVideo(format_video);
  47 + inputfile = new InputFile(this->path_input);
  48 + monitor_pcr_base = new MonitorPCR();
  49 +
  50 + if (strstr(this->path_input, "ts") != NULL) {
  51 + char* format_video = new char[3];
  52 + strcpy(format_video, "ts");
  53 + monitor_pcr_base->setFormatVideo(format_video);
  54 + }
  55 +
  56 + monitor_pcr_base->addListenerPCRBase(rec);
  57 + inputfile->registraOuvinte(monitor_pcr_base);
  58 + try{
  59 + inputfile->initialize();
  60 + } catch(InputException ex){
  61 + throw ServiceException(ex.getMessage());
  62 + }
49 63 }
50 64  
51   - monitor_pcr_base->addListenerPCRBase(rec);
52   - inputfile->registraOuvinte(monitor_pcr_base);
53   -
54 65 ServiceWindowGeneration::initialize();
55   -
  66 +
56 67 try{
57   - inputfile->initialize();
58 68 rec->initialize();
59 69 } catch(RecognizeException ex){
60 70 throw ServiceException(ex.getMessage());
61   - } catch(InputException ex){
62   - throw ServiceException(ex.getMessage());
63   - }
  71 + }
64 72 this->Start();
65 73 }
66 74  
... ...