void CamClient::newStream() { // remove the old streams if (m_avmuxPort != -1) clientRemoveService(m_avmuxPort); m_avmuxPort = -1; if (m_encoder != NULL) m_encoder->exitThread(); m_encoder = NULL; // and start the new streams QSettings *settings = SyntroUtils::getSettings(); settings->beginGroup(CAMCLIENT_STREAM_GROUP); m_compressedVideoRate = settings->value(CAMCLIENT_GS_VIDEO_RATE).toInt(); m_compressedAudioRate = settings->value(CAMCLIENT_GS_AUDIO_RATE).toInt(); m_avmuxPort = clientAddService(SYNTRO_STREAMNAME_AVMUX, SERVICETYPE_MULTICAST, true); settings->endGroup(); m_gotAudioFormat = false; m_gotVideoFormat = false; delete settings; m_avParams.avmuxSubtype = SYNTRO_RECORD_TYPE_AVMUX_RTP; m_avParams.videoSubtype = SYNTRO_RECORD_TYPE_VIDEO_RTPH264; m_avParams.audioSubtype = SYNTRO_RECORD_TYPE_AUDIO_RTPAAC; m_encoder = new AVMuxEncode(0); m_encoder->resumeThread(); }
void ViewClient::newSource(const QString source) { if (m_servicePort != -1) clientRemoveService(m_servicePort); m_servicePort = clientAddService(SyntroUtils::insertStreamNameInPath(source, SYNTRO_STREAMNAME_GLOVE), SERVICETYPE_MULTICAST, false); }
void StoreClient::deleteStreamSource(int index) { if ((index < 0) || (index >= SYNTROSTORE_MAX_STREAMS)) { logWarn(QString("Got deleteStreamSource with out of range index %1").arg(index)); return; } if (m_diskManagers[index] == NULL) return; // not currently active clientRemoveService(m_sources[index]->port); m_diskManagers[index]->exitThread(); m_diskManagers[index]->wait(5); delete m_sources[index]; m_sources[index] = NULL; }
void ViewClient::appClientExit() { if (m_servicePort != -1) clientRemoveService(m_servicePort); m_servicePort = -1; }
void CamClient::newStream() { // remove the old streams if (m_avmuxPortHighRate != -1) clientRemoveService(m_avmuxPortHighRate); m_avmuxPortHighRate = -1; if (m_avmuxPortLowRate != -1) clientRemoveService(m_avmuxPortLowRate); m_avmuxPortLowRate = -1; // and start the new streams QSettings *settings = SyntroUtils::getSettings(); settings->beginGroup(CAMCLIENT_STREAM_GROUP); m_highRateMinInterval = settings->value(CAMCLIENT_HIGHRATEVIDEO_MININTERVAL).toInt(); m_highRateMaxInterval = settings->value(CAMCLIENT_HIGHRATEVIDEO_MAXINTERVAL).toInt(); m_highRateNullInterval = settings->value(CAMCLIENT_HIGHRATEVIDEO_NULLINTERVAL).toInt(); m_lowRateMinInterval = settings->value(CAMCLIENT_LOWRATEVIDEO_MININTERVAL).toInt(); m_lowRateMaxInterval = settings->value(CAMCLIENT_LOWRATEVIDEO_MAXINTERVAL).toInt(); m_lowRateNullInterval = settings->value(CAMCLIENT_LOWRATEVIDEO_NULLINTERVAL).toInt(); m_generateLowRate = settings->value(CAMCLIENT_GENERATE_LOWRATE).toBool(); m_lowRateHalfRes = settings->value(CAMCLIENT_LOWRATE_HALFRES).toBool(); m_avmuxPortHighRate = clientAddService(SYNTRO_STREAMNAME_AVMUX, SERVICETYPE_MULTICAST, true); if (m_generateLowRate) m_avmuxPortLowRate = clientAddService(SYNTRO_STREAMNAME_AVMUXLR, SERVICETYPE_MULTICAST, true); settings->endGroup(); m_gotAudioFormat = false; m_gotVideoFormat = false; settings->beginGroup(CAMCLIENT_MOTION_GROUP); m_tilesToSkip = settings->value(CAMCLIENT_MOTION_TILESTOSKIP).toInt(); m_intervalsToSkip = settings->value(CAMCLIENT_MOTION_INTERVALSTOSKIP).toInt(); m_minDelta = settings->value(CAMCLIENT_MOTION_MIN_DELTA).toInt(); m_minNoise = settings->value(CAMCLIENT_MOTION_MIN_NOISE).toInt(); m_deltaInterval = settings->value(CAMCLIENT_MOTION_DELTA_INTERVAL).toInt(); m_preroll = settings->value(CAMCLIENT_MOTION_PREROLL).toInt(); m_postroll = settings->value(CAMCLIENT_MOTION_POSTROLL).toInt(); settings->endGroup(); delete settings; m_cd.setDeltaThreshold(m_minDelta); m_cd.setNoiseThreshold(m_minNoise); m_cd.setTilesToSkip(m_tilesToSkip); m_cd.setIntervalsToSkip(m_intervalsToSkip); qint64 now = QDateTime::currentMSecsSinceEpoch(); m_lastFrameTime = now; m_lastLowRateFrameTime = now; m_lastFullFrameTime = now; m_lastLowRateFullFrameTime = now; m_lastPrerollFrameTime = now; m_lastLowRatePrerollFrameTime = now; m_lastChangeTime = now; m_imageChanged = false; m_cd.setUninitialized(); clearQueues(); m_avParams.avmuxSubtype = SYNTRO_RECORD_TYPE_AVMUX_MJPPCM; m_avParams.videoSubtype = SYNTRO_RECORD_TYPE_VIDEO_MJPEG; m_avParams.audioSubtype = SYNTRO_RECORD_TYPE_AUDIO_PCM; }