in gst/gst-kvs-plugin/src/GstPlugin.c [499:656]
VOID gst_kvs_plugin_set_property(GObject* object, guint propId, const GValue* value, GParamSpec* pspec)
{
PGstKvsPlugin pGstKvsPlugin = GST_KVS_PLUGIN(object);
if (pGstKvsPlugin == NULL) {
return;
}
switch (propId) {
case PROP_STREAM_NAME:
g_free(pGstKvsPlugin->gstParams.streamName);
pGstKvsPlugin->gstParams.streamName = g_strdup(g_value_get_string(value));
break;
case PROP_CHANNEL_NAME:
g_free(pGstKvsPlugin->gstParams.channelName);
pGstKvsPlugin->gstParams.channelName = g_strdup(g_value_get_string(value));
break;
case PROP_RETENTION_PERIOD:
pGstKvsPlugin->gstParams.retentionPeriodInHours = g_value_get_uint(value);
break;
case PROP_STREAMING_TYPE:
pGstKvsPlugin->gstParams.streamingType = (STREAMING_TYPE) g_value_get_enum(value);
break;
case PROP_WEBRTC_CONNECTION_MODE:
pGstKvsPlugin->gstParams.connectionMode = (WEBRTC_CONNECTION_MODE) g_value_get_enum(value);
break;
case PROP_CONTENT_TYPE:
g_free(pGstKvsPlugin->gstParams.contentType);
pGstKvsPlugin->gstParams.contentType = g_strdup(g_value_get_string(value));
break;
case PROP_MAX_LATENCY:
pGstKvsPlugin->gstParams.maxLatencyInSeconds = g_value_get_uint(value);
break;
case PROP_FRAGMENT_DURATION:
pGstKvsPlugin->gstParams.fragmentDurationInMillis = g_value_get_uint(value);
break;
case PROP_TIMECODE_SCALE:
pGstKvsPlugin->gstParams.timeCodeScaleInMillis = g_value_get_uint(value);
break;
case PROP_KEY_FRAME_FRAGMENTATION:
pGstKvsPlugin->gstParams.keyFrameFragmentation = g_value_get_boolean(value);
break;
case PROP_FRAME_TIMECODES:
pGstKvsPlugin->gstParams.frameTimecodes = g_value_get_boolean(value);
break;
case PROP_ABSOLUTE_FRAGMENT_TIMES:
pGstKvsPlugin->gstParams.absoluteFragmentTimecodes = g_value_get_boolean(value);
break;
case PROP_FRAGMENT_ACKS:
pGstKvsPlugin->gstParams.fragmentAcks = g_value_get_boolean(value);
break;
case PROP_RESTART_ON_ERROR:
pGstKvsPlugin->gstParams.restartOnErrors = g_value_get_boolean(value);
break;
case PROP_RECALCULATE_METRICS:
pGstKvsPlugin->gstParams.recalculateMetrics = g_value_get_boolean(value);
break;
case PROP_ADAPT_CPD_NALS_TO_AVC:
pGstKvsPlugin->gstParams.adaptCpdNals = g_value_get_boolean(value);
break;
case PROP_ADAPT_FRAME_NALS_TO_AVC:
pGstKvsPlugin->gstParams.adaptFrameNals = g_value_get_boolean(value);
break;
case PROP_AVG_BANDWIDTH_BPS:
pGstKvsPlugin->gstParams.avgBandwidthBps = g_value_get_uint(value);
break;
case PROP_BUFFER_DURATION:
pGstKvsPlugin->gstParams.bufferDurationInSeconds = g_value_get_uint(value);
break;
case PROP_REPLAY_DURATION:
pGstKvsPlugin->gstParams.replayDurationInSeconds = g_value_get_uint(value);
break;
case PROP_CONNECTION_STALENESS:
pGstKvsPlugin->gstParams.connectionStalenessInSeconds = g_value_get_uint(value);
break;
case PROP_CODEC_ID:
g_free(pGstKvsPlugin->gstParams.codecId);
pGstKvsPlugin->gstParams.codecId = g_strdup(g_value_get_string(value));
break;
case PROP_ACCESS_KEY:
g_free(pGstKvsPlugin->gstParams.accessKey);
pGstKvsPlugin->gstParams.accessKey = g_strdup(g_value_get_string(value));
break;
case PROP_SECRET_KEY:
g_free(pGstKvsPlugin->gstParams.secretKey);
pGstKvsPlugin->gstParams.secretKey = g_strdup(g_value_get_string(value));
break;
case PROP_AWS_REGION:
g_free(pGstKvsPlugin->gstParams.awsRegion);
pGstKvsPlugin->gstParams.awsRegion = g_strdup(g_value_get_string(value));
break;
case PROP_ROTATION_PERIOD:
pGstKvsPlugin->gstParams.rotationPeriodInSeconds = g_value_get_uint(value);
break;
case PROP_LOG_LEVEL:
pGstKvsPlugin->gstParams.logLevel = g_value_get_uint(value);
break;
case PROP_FILE_LOG_PATH:
g_free(pGstKvsPlugin->gstParams.fileLogPath);
pGstKvsPlugin->gstParams.fileLogPath = g_strdup(g_value_get_string(value));
break;
case PROP_FRAMERATE:
pGstKvsPlugin->gstParams.frameRate = g_value_get_uint(value);
break;
case PROP_STORAGE_SIZE:
pGstKvsPlugin->gstParams.storageSizeInBytes = g_value_get_uint(value);
break;
case PROP_CREDENTIAL_FILE_PATH:
pGstKvsPlugin->gstParams.credentialFilePath = g_strdup(g_value_get_string(value));
break;
case PROP_IOT_CERTIFICATE: {
const GstStructure* iotStruct = gst_value_get_structure(value);
if (pGstKvsPlugin->gstParams.iotCertificate != NULL) {
gst_structure_free(pGstKvsPlugin->gstParams.iotCertificate);
}
pGstKvsPlugin->gstParams.iotCertificate = (iotStruct != NULL) ? gst_structure_copy(iotStruct) : NULL;
break;
}
case PROP_STREAM_TAGS: {
const GstStructure* tagsStruct = gst_value_get_structure(value);
if (pGstKvsPlugin->gstParams.streamTags != NULL) {
gst_structure_free(pGstKvsPlugin->gstParams.streamTags);
}
pGstKvsPlugin->gstParams.streamTags = (tagsStruct != NULL) ? gst_structure_copy(tagsStruct) : NULL;
break;
}
case PROP_FILE_START_TIME:
pGstKvsPlugin->gstParams.fileStartTime = g_value_get_uint64(value);
break;
case PROP_DISABLE_BUFFER_CLIPPING:
pGstKvsPlugin->gstParams.disableBufferClipping = g_value_get_boolean(value);
break;
case PROP_STREAM_CREATE_TIMEOUT:
pGstKvsPlugin->gstParams.streamCreateTimeoutInSeconds = g_value_get_uint(value);
break;
case PROP_STREAM_STOP_TIMEOUT:
pGstKvsPlugin->gstParams.streamStopTimeoutInSeconds = g_value_get_uint(value);
break;
case PROP_TRICKLE_ICE:
pGstKvsPlugin->gstParams.trickleIce = g_value_get_boolean(value);
break;
case PROP_ENABLE_STREAMING:
pGstKvsPlugin->gstParams.enableStreaming = g_value_get_boolean(value);
ATOMIC_STORE_BOOL(&pGstKvsPlugin->enableStreaming, pGstKvsPlugin->gstParams.enableStreaming);
break;
case PROP_WEBRTC_CONNECT:
pGstKvsPlugin->gstParams.webRtcConnect = g_value_get_boolean(value);
ATOMIC_STORE_BOOL(&pGstKvsPlugin->connectWebRtc, pGstKvsPlugin->gstParams.webRtcConnect);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec);
break;
}
}