bool ACapture::nextFrame(Mat & frame){ Mat frm; bool hasNext; hasNext=extractFrame(frm); if (hasNext){ if (toGrayscale && frm.channels()>2){ Mat gray(frm.size(), CV_8UC1); cvtColor(frm, gray, CV_BGR2GRAY); gray.copyTo(frame); } else { frm.copyTo(frame); } return true; } return false; }
bool RtspStreamWorker::processPacket(struct AVPacket packet) { emit bytesDownloaded(packet.size); while (packet.size > 0) { bool breakLoop; AVFrame *frame = extractFrame(packet, &breakLoop); if (frame) { processFrame(frame); av_free(frame); } if (breakLoop) return false; } return true; }