Данные потока Rtsp из проблемы искажения кадра закодированных данных NVR (Live555, C ++, Qt, Rtsp, FramedSource) - PullRequest
0 голосов
/ 19 июня 2020

Я получаю закодированные кадры из 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

...