int CHikParser2::Deinit() { if (m_pOutBuff != NULL) { delete m_pOutBuff; m_pOutBuff = NULL; } WLock(m_rwLocker); /*if (m_aacHandle != NULL) { //faacEncClose(m_aacHandle); m_aacHandle = NULL; }*/ if (m_pAudioCache != NULL) { delete m_pAudioCache; m_pAudioCache = NULL; } RWUnlock(m_rwLocker); return J_OK; }
void MessageManager::loadUsers() { try { SimpleXML xml; SettingsManager::loadSettingFile(xml, CONFIG_DIR, CONFIG_NAME); auto cm = ClientManager::getInstance(); if (xml.findChild("Ignored")) { xml.stepIn(); xml.resetCurrentChild(); if (xml.findChild("Users")) { xml.stepIn(); while (xml.findChild("User")) { UserPtr user = cm->getUser(CID(xml.getChildAttrib("CID"))); { WLock(cm->getCS()); cm->addOfflineUser(user, xml.getChildAttrib("Nick"), xml.getChildAttrib("Hub"), (uint32_t)xml.getIntChildAttrib("LastSeen")); } WLock l(Ignorecs); ignoredUsers.emplace(user); user->setFlag(User::IGNORED); } xml.stepOut(); } xml.stepOut(); } } catch (const Exception& e) { LogManager::getInstance()->message(STRING_F(LOAD_FAILED_X, CONFIG_NAME % e.getError()), LogManager::LOG_ERROR); } }
void swap(this_type& m) { WLock(); m.WLock(); parent_type::swap(m); m.WUnlock(); WUnlock(); }
int CHikv3Parser::InputData(const char *pData, int nLen) { WLock(m_rwLocker); HIKANA_InputData(m_hNewHandle, (unsigned char *)pData, nLen); //m_nDataSize += nLen; RWUnlock(m_rwLocker); return J_MEMORY_ERROR; }
this_type& operator=(const this_type& m) { WLock(); m.RLock(); parent_type::operator=(m); m.RUnlock(); WUnlock(); return *this; }
int CLiveParser::InputData(const char *pData, int nLen) { WLock(m_rwLocker); if (m_dateType == J_VideoMjpeg) { *((int *)(m_pDataBuff + m_nDataSize)) = nLen; m_nDataSize += sizeof(int); } memcpy(m_pDataBuff + m_nDataSize, pData, nLen); m_nDataSize += nLen; RWUnlock(m_rwLocker); return J_OK; }
int CLiveParser::GetOnePacket(char *pData, J_StreamHeader &streamHeader) { WLock(m_rwLocker); if (m_dateType == J_VideoMjpeg) { if (m_nDataSize < (int)sizeof(int)) { streamHeader.dataLen = 0; RWUnlock(m_rwLocker); return J_NOT_COMPLATE; } int nOffset = 0; int nLen = *((int *)(m_pDataBuff)); nOffset += sizeof(int); memcpy(pData, m_pDataBuff + nOffset, nLen); nOffset += nLen; memmove(m_pDataBuff, m_pDataBuff + nOffset, m_nDataSize - nOffset); m_nDataSize -= nOffset; streamHeader.timeStamp = CTime::Instance()->GetLocalTime(0); streamHeader.dataLen = nLen; streamHeader.frameType = J_VideoIFrame; } else { int iDataLen = 640 * 480; if (m_nDataSize < iDataLen * 2) { streamHeader.dataLen = 0; RWUnlock(m_rwLocker); return J_NOT_COMPLATE; } streamHeader.timeStamp = CTime::Instance()->GetLocalTime(0); int nOffset = 0; YUV422To420((uint8_t *)m_pDataBuff, m_pPicIn->img.plane[0], m_pPicIn->img.plane[1], m_pPicIn->img.plane[2], 640, 480); nOffset = iDataLen * 2; m_pPicIn->i_pts = 0;//streamHeader.timeStamp * 90; //m_pPicIn->i_dts = streamHeader.timeStamp * 90; //++g_uiPTSFactor; encode(m_pX264Handle, m_pPicIn, m_pPicOut); memmove(m_pDataBuff, m_pDataBuff + nOffset, m_nDataSize - nOffset); m_nDataSize -= nOffset; nOffset = 0; for (int i = 0; i < m_iNal; ++i) { /*static FILE *fp = NULL; if (fp == NULL) fp = fopen("test.h264", "wb+"); fwrite(m_pNals[i].p_payload, 1, m_pNals[i].i_payload, fp);*/ memcpy(pData + nOffset, m_pNals[i].p_payload, m_pNals[i].i_payload); nOffset += m_pNals[i].i_payload; } streamHeader.dataLen = nOffset; streamHeader.frameType = J_VideoIFrame; } RWUnlock(m_rwLocker); return J_OK; }
~checked_set() { WLock(); }
~checked_multiset() { WLock(); }