example: add TLS example
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 31 May 2013 10:10:28 +0000 (12:10 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 31 May 2013 10:11:12 +0000 (12:11 +0200)
examples/Makefile.am
examples/test-video.c

index 47b2cf9..4b753f6 100644 (file)
@@ -5,4 +5,4 @@ noinst_PROGRAMS = test-video test-ogg test-mp4 test-readme \
 #INCLUDES = -I$(top_srcdir) -I$(srcdir)
 
 AM_CFLAGS = $(GST_OBJ_CFLAGS)
-AM_LDFLAGS = $(GST_OBJ_LIBS)
+AM_LDFLAGS = $(GST_OBJ_LIBS) $(GIO_LIBS)
index 2cfe483..05db5f3 100644 (file)
@@ -25,6 +25,9 @@
  * user/admin as the password */
 #undef WITH_AUTH
 
+/* define this if you want the server to use TLS */
+#undef WITH_TLS
+
 /* this timeout is periodically run to clean up the expired sessions from the
  * pool. This needs to be run explicitly currently but might be done
  * automatically as part of the mainloop. */
@@ -51,6 +54,9 @@ main (int argc, char *argv[])
   GstRTSPAuth *auth;
   gchar *basic;
 #endif
+#ifdef WITH_TLS
+  GTlsCertificate *cert;
+#endif
 
   gst_init (&argc, &argv);
 
@@ -58,6 +64,33 @@ main (int argc, char *argv[])
 
   /* create a server instance */
   server = gst_rtsp_server_new ();
+#ifdef WITH_TLS
+  cert = g_tls_certificate_new_from_pem ("-----BEGIN CERTIFICATE-----"
+      "MIICJjCCAY+gAwIBAgIBBzANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk"
+      "ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp"
+      "ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq"
+      "hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTExMDExNzE5NDcxN1oXDTIxMDEx"
+      "NDE5NDcxN1owSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW"
+      "B0VYQU1QTEUxGzAZBgNVBAMTEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3"
+      "DQEBAQUAA0sAMEgCQQDYScTxk55XBmbDM9zzwO+grVySE4rudWuzH2PpObIonqbf"
+      "hRoAalKVluG9jvbHI81eXxCdSObv1KBP1sbN5RzpAgMBAAGjIjAgMAkGA1UdEwQC"
+      "MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADgYEAYx6fMqT1"
+      "Gvo0jq88E8mc+bmp4LfXD4wJ7KxYeadQxt75HFRpj4FhFO3DOpVRFgzHlOEo3Fwk"
+      "PZOKjvkT0cbcoEq5whLH25dHoQxGoVQgFyAP5s+7Vp5AlHh8Y/vAoXeEVyy/RCIH"
+      "QkhUlAflfDMcrrYjsmwoOPSjhx6Mm/AopX4="
+      "-----END CERTIFICATE-----"
+      "-----BEGIN PRIVATE KEY-----"
+      "MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA2EnE8ZOeVwZmwzPc"
+      "88DvoK1ckhOK7nVrsx9j6TmyKJ6m34UaAGpSlZbhvY72xyPNXl8QnUjm79SgT9bG"
+      "zeUc6QIDAQABAkBRFJZ32VbqWMP9OVwDJLiwC01AlYLnka0mIQZbT/2xq9dUc9GW"
+      "U3kiVw4lL8v/+sPjtTPCYYdzHHOyDen6znVhAiEA9qJT7BtQvRxCvGrAhr9MS022"
+      "tTdPbW829BoUtIeH64cCIQDggG5i48v7HPacPBIH1RaSVhXl8qHCpQD3qrIw3FMw"
+      "DwIga8PqH5Sf5sHedy2+CiK0V4MRfoU4c3zQ6kArI+bEgSkCIQCLA1vXBiE31B5s"
+      "bdHoYa1BXebfZVd+1Hd95IfEM5mbRwIgSkDuQwV55BBlvWph3U8wVIMIb4GStaH8"
+      "W535W8UBbEg=" "-----END PRIVATE KEY-----", -1, NULL);
+  gst_rtsp_server_set_tls_certificate (server, cert);
+  g_object_unref (cert);
+#endif
 
   /* get the mount points for this server, every server has a default object
    * that be used to map uri mount points to media factories */
@@ -99,7 +132,11 @@ main (int argc, char *argv[])
   g_timeout_add_seconds (2, (GSourceFunc) timeout, server);
 
   /* start serving, this never stops */
+#ifdef WITH_TLS
+  g_print ("stream ready at rtsps://127.0.0.1:8554/test\n");
+#else
   g_print ("stream ready at rtsp://127.0.0.1:8554/test\n");
+#endif
   g_main_loop_run (loop);
 
   return 0;