#define DEFAULT_PASSWORD NULL
#define DEFAULT_AUTHMOD GST_RTMP_AUTHMOD_AUTO
#define DEFAULT_TIMEOUT 5
+#define DEFAULT_FLASH_VERSION "LNX 10,0,32,18"
G_DEFINE_INTERFACE (GstRtmpLocationHandler, gst_rtmp_location_handler, 0);
"TLS validation flags to use", G_TYPE_TLS_CERTIFICATE_FLAGS,
G_TLS_CERTIFICATE_VALIDATE_ALL,
G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_interface_install_property (iface,
+ g_param_spec_string ("flash-version", "Flash version",
+ "Flash version reported to the server", DEFAULT_FLASH_VERSION,
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
static GstURIType
PROP_AUTHMOD,
PROP_TIMEOUT,
PROP_TLS_VALIDATION_FLAGS,
+ PROP_FLASH_VERSION,
PROP_ASYNC_CONNECT,
PROP_PEAK_KBPS,
PROP_CHUNK_SIZE,
g_object_class_override_property (gobject_class, PROP_TIMEOUT, "timeout");
g_object_class_override_property (gobject_class, PROP_TLS_VALIDATION_FLAGS,
"tls-validation-flags");
+ g_object_class_override_property (gobject_class, PROP_FLASH_VERSION,
+ "flash-version");
g_object_class_install_property (gobject_class, PROP_ASYNC_CONNECT,
g_param_spec_boolean ("async-connect", "Async connect",
self->location.tls_flags = g_value_get_flags (value);
GST_OBJECT_UNLOCK (self);
break;
+ case PROP_FLASH_VERSION:
+ GST_OBJECT_LOCK (self);
+ g_free (self->location.flash_ver);
+ self->location.flash_ver = g_value_dup_string (value);
+ GST_OBJECT_UNLOCK (self);
+ break;
case PROP_ASYNC_CONNECT:
GST_OBJECT_LOCK (self);
self->async_connect = g_value_get_boolean (value);
g_value_set_flags (value, self->location.tls_flags);
GST_OBJECT_UNLOCK (self);
break;
+ case PROP_FLASH_VERSION:
+ GST_OBJECT_LOCK (self);
+ g_value_set_string (value, self->location.flash_ver);
+ GST_OBJECT_UNLOCK (self);
+ break;
case PROP_ASYNC_CONNECT:
GST_OBJECT_LOCK (self);
g_value_set_boolean (value, self->async_connect);
PROP_AUTHMOD,
PROP_TIMEOUT,
PROP_TLS_VALIDATION_FLAGS,
+ PROP_FLASH_VERSION,
PROP_ASYNC_CONNECT,
PROP_STATS,
};
g_object_class_override_property (gobject_class, PROP_TIMEOUT, "timeout");
g_object_class_override_property (gobject_class, PROP_TLS_VALIDATION_FLAGS,
"tls-validation-flags");
+ g_object_class_override_property (gobject_class, PROP_FLASH_VERSION,
+ "flash-version");
g_object_class_install_property (gobject_class, PROP_ASYNC_CONNECT,
g_param_spec_boolean ("async-connect", "Async connect",
self->location.tls_flags = g_value_get_flags (value);
GST_OBJECT_UNLOCK (self);
break;
+ case PROP_FLASH_VERSION:
+ GST_OBJECT_LOCK (self);
+ g_free (self->location.flash_ver);
+ self->location.flash_ver = g_value_dup_string (value);
+ GST_OBJECT_UNLOCK (self);
+ break;
case PROP_ASYNC_CONNECT:
GST_OBJECT_LOCK (self);
self->async_connect = g_value_get_boolean (value);
g_value_set_flags (value, self->location.tls_flags);
GST_OBJECT_UNLOCK (self);
break;
+ case PROP_FLASH_VERSION:
+ GST_OBJECT_LOCK (self);
+ g_value_set_string (value, self->location.flash_ver);
+ GST_OBJECT_UNLOCK (self);
+ break;
case PROP_ASYNC_CONNECT:
GST_OBJECT_LOCK (self);
g_value_set_boolean (value, self->async_connect);
}
if (!flash_ver) {
- flash_ver = "LNX 10,0,32,18";
+ g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_NOT_INITIALIZED,
+ "Flash version is not set");
+ g_object_unref (task);
+ goto out;
}
if (data->auth_query) {