Пример #1
0
void DisplayClient::appClientInit()
{
	m_receiveStream = m_settings->value(BONELED_MULTICAST_SERVICE).toString();

	if (m_receiveStream.length() > 0)
		m_receivePort = clientAddService(m_receiveStream, SERVICETYPE_MULTICAST, false, true);

	m_controlStream = m_settings->value(BONELED_E2E_SERVICE).toString();

	if (m_controlStream.length() > 0)
		m_controlPort = clientAddService(m_controlStream, SERVICETYPE_E2E, false, true);
}
Пример #2
0
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();
}
Пример #3
0
void StoreClient::refreshStreamSource(int index)
{
	QMutexLocker locker(&m_lock);

	int count = m_settings->beginReadArray(SYNTROSTORE_PARAMS_STREAM_SOURCES);

	if ((index < 0) || (index >= count)) {					// no more entries in settings
		m_settings->endArray();
		return;
	} else {
		m_settings->setArrayIndex(index);
		if (m_diskManagers[index] != NULL) {					// must get rid of old one
			deleteStreamSource(index);
			m_diskManagers[index] = NULL;
		}

		if (m_settings->value(SYNTROSTORE_PARAMS_INUSE).toString() == SYNTRO_PARAMS_FALSE) {
			m_settings->endArray();
			return;											// just needed to clear the entry
		}
		m_sources[index] = new StoreStream();
		m_diskManagers[index] = new StoreDiskManager(m_sources[index]);
		m_sources[index]->load(m_settings);
		m_diskManagers[index]->resumeThread();

		if (m_sources[index]->folderWritable()) {
			m_sources[index]->port = clientAddService(m_sources[index]->streamName(), SERVICETYPE_MULTICAST, false);
			clientSetServiceData(m_sources[index]->port, index);	// record my index in service entry
		}
		else {
			logError(QString("Folder is not writable: %1").arg(m_sources[index]->pathOnly()));
		}
	}
	m_settings->endArray();
}
Пример #4
0
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);
}
Пример #5
0
void CFSClient::appClientInit()
{
	m_CFSPort = clientAddService(SYNTRO_STREAMNAME_CFS, SERVICETYPE_E2E, true);
    m_CFSThread = new CFSThread(this);
    m_CFSThread->resumeThread();
}
Пример #6
0
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;
}