Я получаю закодированные кадры из nvr с помощью этой функции обратного вызова для канала 0
void get_encframe(pFrameHeadr pFrmHdr,unsigned int dwContextEnc){
if(dwContextEnc == 0){
mtx.lock();
allow[dwContextEnc] = 10;
memcpy(buff, 0, dataSizee);
memcpy(buff, pFrmHdr->pData, pFrmHdr->dataSize);
dataSizee = pFrmHdr->dataSize;
mtx.unlock();
}
}
DeliveryFrame внутри собственного класса Framed Source
void DeviceSource::deliverFrame(){
if(!isCurrentlyAwaitingData())
return;
u_int8_t* newFrameDataStart = (u_int8_t*) buff;
unsigned newFrameSize = dataSizee;
mtx.lock();
if(newFrameSize > fMaxSize) {
fFrameSize = fMaxSize;
fNumTruncatedBytes = newFrameSize - fMaxSize;
}
else {
fFrameSize = newFrameSize;
}
gettimeofday(&fPresentationTime, NULL);
memcpy(fTo, newFrameDataStart, fFrameSize);
mtx.unlock();
FramedSource::afterGetting(this);
}
1012 *, webrt c и проигрыватель hls с прокси-сервером translate hls Моя проблема в том, что поток rtsp застревает каждые несколько секунд, и иногда в потоке возникают искажения. Я до сих пор не знаю, почему это так, после 2 месяцев исследования.
заранее спасибо за все ваши комментарии
Burak Beyaz