Commit 01eb3dc9cb70bc61df203a10440466d881f69ace
1 parent
77505731
Exists in
master
and in
1 other branch
Adiciona serviço 6 (OnlyAudio)
Showing
5 changed files
with
86 additions
and
42 deletions
Show diff stats
main.cpp
@@ -28,9 +28,10 @@ void serviceSRT(char* path_in, char* path_srt, char* sublanguage, char* position | @@ -28,9 +28,10 @@ void serviceSRT(char* path_in, char* path_srt, char* sublanguage, char* position | ||
28 | void serviceOnlySRT(char* path_file, char* transparency, char* username); | 28 | void serviceOnlySRT(char* path_file, char* transparency, char* username); |
29 | void serviceREC(char* path_video, char* sublanguage, char* position, char* size, char* transparency, char* username, char* rate); | 29 | void serviceREC(char* path_video, char* sublanguage, char* position, char* size, char* transparency, char* username, char* rate); |
30 | void serviceREC(char* path_video, char* sublanguage, char* position, char* size, char* transparency, char* username); | 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 | void serviceText(char* path_text, char* transparency, char* username, char* client_type); | 33 | void serviceText(char* path_text, char* transparency, char* username, char* client_type); |
33 | -void serviceREC2(); | 34 | + |
34 | void help(); | 35 | void help(); |
35 | void fail(string msg); | 36 | void fail(string msg); |
36 | void hasFailed(); | 37 | void hasFailed(); |
@@ -99,8 +100,16 @@ int main(int argc, char* argv[]) { | @@ -99,8 +100,16 @@ int main(int argc, char* argv[]) { | ||
99 | serviceOnlySRT(argv[2], argv[3], argv[4]); | 100 | serviceOnlySRT(argv[2], argv[3], argv[4]); |
100 | break; | 101 | break; |
101 | case 6: | 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 | break; | 113 | break; |
105 | default: | 114 | default: |
106 | cout << "\nServiço inválido. Tente novamente." << endl; | 115 | cout << "\nServiço inválido. Tente novamente." << endl; |
@@ -283,32 +292,52 @@ void serviceOnlySRT(char* path_file, char* transparency, char* id){ | @@ -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 | ServiceWindowGenerationFromREC * service_rec; | 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 | while(service_rec->isRunning()){ | 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 | void fail(string msg){ | 343 | void fail(string msg){ |
recognize/src/include/recognize.h
@@ -45,12 +45,15 @@ public: | @@ -45,12 +45,15 @@ public: | ||
45 | void notifyPCRBase(uint64_t pcrbase); | 45 | void notifyPCRBase(uint64_t pcrbase); |
46 | 46 | ||
47 | bool isFinished(); | 47 | bool isFinished(); |
48 | + void hasAudio(); | ||
49 | + | ||
48 | 50 | ||
49 | void Run(); | 51 | void Run(); |
50 | int count_lines; | 52 | int count_lines; |
51 | 53 | ||
52 | private: | 54 | private: |
53 | 55 | ||
56 | + bool isAudio; | ||
54 | int64_t pcr_base; | 57 | int64_t pcr_base; |
55 | bool hasPCRBase; | 58 | bool hasPCRBase; |
56 | char* pathVideo; | 59 | char* pathVideo; |
recognize/src/recognize.cpp
@@ -103,8 +103,8 @@ void Recognize::initialize() { | @@ -103,8 +103,8 @@ void Recognize::initialize() { | ||
103 | ifstream file(pathVideo, ifstream::binary); | 103 | ifstream file(pathVideo, ifstream::binary); |
104 | if(!file.is_open()){ | 104 | if(!file.is_open()){ |
105 | finished = true; | 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 | this->Start(); | 109 | this->Start(); |
110 | } | 110 | } |
@@ -112,7 +112,6 @@ void Recognize::initialize() { | @@ -112,7 +112,6 @@ void Recognize::initialize() { | ||
112 | void Recognize::Run(){ | 112 | void Recognize::Run(){ |
113 | 113 | ||
114 | finished = false; | 114 | finished = false; |
115 | - | ||
116 | createDir(); | 115 | createDir(); |
117 | extractAudioFromVideo(); | 116 | extractAudioFromVideo(); |
118 | breakVideoParts(getTimeMediaSec()); | 117 | breakVideoParts(getTimeMediaSec()); |
@@ -125,6 +124,10 @@ void Recognize::Run(){ | @@ -125,6 +124,10 @@ void Recognize::Run(){ | ||
125 | notifyEndExtraction(count_lines); | 124 | notifyEndExtraction(count_lines); |
126 | } | 125 | } |
127 | 126 | ||
127 | +void Recognize::hasAudio(){ | ||
128 | + isAudio = true; | ||
129 | +} | ||
130 | + | ||
128 | void Recognize::setFrequency(int freq) { | 131 | void Recognize::setFrequency(int freq) { |
129 | frequency = freq; | 132 | frequency = freq; |
130 | } | 133 | } |
servico/src/serviceWindowGeneration.cpp
@@ -46,7 +46,7 @@ bool ServiceWindowGeneration::isRunning() { | @@ -46,7 +46,7 @@ bool ServiceWindowGeneration::isRunning() { | ||
46 | 46 | ||
47 | /* Quando o sincronizador termina, ele invoca esse método para avisar! */ | 47 | /* Quando o sincronizador termina, ele invoca esse método para avisar! */ |
48 | void ServiceWindowGeneration::finalizouSincronizacao() { | 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 | mixer = new Mixer(); | 50 | mixer = new Mixer(); |
51 | mixer->initialize(this->path_input, this->path_libras,this->position,this->size,this->transparency, this->user_id); | 51 | mixer->initialize(this->path_input, this->path_libras,this->position,this->size,this->transparency, this->user_id); |
52 | createThumbnail(); | 52 | createThumbnail(); |
@@ -255,6 +255,7 @@ void ServiceWindowGeneration::transcodeVideoToMp4() { | @@ -255,6 +255,7 @@ void ServiceWindowGeneration::transcodeVideoToMp4() { | ||
255 | if (serviceType == SERVICE_TYPE_TEXT && strcmp(client_type, (char*)"WEB") == 0) | 255 | if (serviceType == SERVICE_TYPE_TEXT && strcmp(client_type, (char*)"WEB") == 0) |
256 | transcodeVideoToWebm(); | 256 | transcodeVideoToWebm(); |
257 | else{ | 257 | else{ |
258 | + | ||
258 | //printf("[INFO]: A transcodificação para .mp4 está ativada!\n"); | 259 | //printf("[INFO]: A transcodificação para .mp4 está ativada!\n"); |
259 | string command = "ffmpeg -i "; | 260 | string command = "ffmpeg -i "; |
260 | command.append(path_libras) | 261 | command.append(path_libras) |
servico/src/serviceWindowGenerationFromREC.cpp
@@ -18,7 +18,7 @@ ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC( | @@ -18,7 +18,7 @@ ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC( | ||
18 | 18 | ||
19 | ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC( | 19 | ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC( |
20 | char* path_video, int sublanguage, int position, int size, int transparency, char* id, int serviceType) { | 20 | char* path_video, int sublanguage, int position, int size, int transparency, char* id, int serviceType) { |
21 | - | 21 | + |
22 | setPathInput(path_video); | 22 | setPathInput(path_video); |
23 | setSubLanguage(sublanguage); | 23 | setSubLanguage(sublanguage); |
24 | setPosition(position); | 24 | setPosition(position); |
@@ -39,28 +39,36 @@ void ServiceWindowGenerationFromREC::initialize() { | @@ -39,28 +39,36 @@ void ServiceWindowGenerationFromREC::initialize() { | ||
39 | 39 | ||
40 | rec->addListener(this); | 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 | ServiceWindowGeneration::initialize(); | 65 | ServiceWindowGeneration::initialize(); |
55 | - | 66 | + |
56 | try{ | 67 | try{ |
57 | - inputfile->initialize(); | ||
58 | rec->initialize(); | 68 | rec->initialize(); |
59 | } catch(RecognizeException ex){ | 69 | } catch(RecognizeException ex){ |
60 | throw ServiceException(ex.getMessage()); | 70 | throw ServiceException(ex.getMessage()); |
61 | - } catch(InputException ex){ | ||
62 | - throw ServiceException(ex.getMessage()); | ||
63 | - } | 71 | + } |
64 | this->Start(); | 72 | this->Start(); |
65 | } | 73 | } |
66 | 74 |