int decode_task() { OutputBuffer * cb = &(getPlayerData()->buffer); PlayerControl * pc = &(getPlayerData()->playerControl); DecoderControl * dc = &(getPlayerData()->decoderControl); unblockSignals(); mpm_enter(MPM_DECODE); fprintf(stderr,"0 In the decode_task:\r\n"); /* CHILD TASK */ while(1) { if(dc->cycleLogFiles) { myfprintfCloseAndOpenLogFile(); dc->cycleLogFiles = 0; } else if(dc->start || dc->seek) { fprintf(stderr,"CAlling decodestart func :\r\n"); decodeStart(pc, cb, dc); } else if(dc->stop) { dc->state = DECODE_STATE_STOP; dc->stop = 0; } else{ my_usleep(10000); // fprintf(stderr,"in the decode_task sleep:\r\n"); } } return EXIT_SUCCESS; /* END OF CHILD TASK */ }
// Decodes the received IR message // Returns 0 if no data ready, 1 if data ready. // Results of decoding are stored in results int IRrecv::decode(decode_results *results) { if (decodeStart(results) == ERR) return ERR; debug_println("Attempting NEC decode"); if (decodeNEC(results)) { return DECODED; } debug_println("Attempting Sony decode"); if (decodeSony(results)) { return DECODED; } debug_println("Attempting Sanyo decode"); if (decodeSanyo(results)) { return DECODED; } debug_println("Attempting Mitsubishi decode"); if (decodeMitsubishi(results)) { return DECODED; } debug_println("Attempting RC5 decode"); if (decodeRC5(results)) { return DECODED; } debug_println("Attempting RC6 decode"); if (decodeRC6(results)) { return DECODED; } debug_println("Attempting Panasonic decode"); if (decodePanasonic(results)) { return DECODED; } debug_println("Attempting JVC decode"); if (decodeJVC(results)) { return DECODED; } // decodeHash returns a hash on any input. // Thus, it needs to be last in the list. // If you add any decodes, add them before this. if (decodeHash(results)) { return DECODED; } // Throw away and start over resume(); return ERR; }
bool VppInputDecodeCapi::config(NativeDisplay& nativeDisplay) { decodeSetNativeDisplay(m_decoder, &nativeDisplay); VideoConfigBuffer configBuffer; memset(&configBuffer, 0, sizeof(configBuffer)); configBuffer.profile = VAProfileNone; const string codecData = m_input->getCodecData(); if (codecData.size()) { configBuffer.data = (uint8_t*)codecData.data(); configBuffer.size = codecData.size(); } configBuffer.width = m_input->getWidth(); configBuffer.height = m_input->getHeight(); Decode_Status status = decodeStart(m_decoder, &configBuffer); return status == DECODE_SUCCESS; }