rtmp: add an option to let the user set swfUrl and pageUrl.
[vlc.git] / modules / access / rtmp / access.c
index 53647ba..e5b6c05 100644 (file)
     "Caching value for RTMP streams. This " \
     "value should be set in milliseconds." )
 
+#define SWFURL_TEXT N_("Default SWF Referrer URL")
+#define SWFURL_LONGTEXT N_("The SFW URL to use as referrer when connecting to"\
+                           "the server. This is the SWF file that contained"  \
+                           "the stream.")
+
+#define PAGEURL_TEXT N_("Page Referrer URL")
+#define PAGEURL_LONGTEXT N_("Page URL to use as referrer when connecting to"  \
+                            "the server. This is the page housing the SWF"    \
+                            "file.")
+
 static int  Open ( vlc_object_t * );
 static void Close( vlc_object_t * );
 
@@ -56,6 +66,10 @@ vlc_module_begin ()
 
     add_integer( "rtmp-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT,
                  CACHING_LONGTEXT, true )
+    add_string( "rtmp-swfurl", "file:///mac.flv", NULL, SWFURL_TEXT,
+                SWFURL_LONGTEXT, true )
+    add_string( "rtmp-pageurl", "file:///mac.html", NULL, PAGEURL_TEXT,
+                PAGEURL_LONGTEXT, true )
 
     set_capability( "access", 0 )
     set_callbacks( Open, Close )
@@ -123,6 +137,9 @@ static int Open( vlc_object_t *p_this )
     p_sys->p_thread->psz_application = strndup( p_sys->p_thread->url.psz_path + 1, length_path - length_media_name - 2 );
     p_sys->p_thread->psz_media = strdup( p_sys->p_thread->url.psz_path + ( length_path - length_media_name ) );
 
+    p_sys->p_thread->psz_swf_url = var_CreateGetString( p_access, "rtmp-swfurl" );
+    p_sys->p_thread->psz_page_url = var_CreateGetString( p_access, "rtmp-pageurl" );
+
     msg_Dbg( p_access, "rtmp: host='%s' port=%d path='%s'",
              p_sys->p_thread->url.psz_host, p_sys->p_thread->url.i_port, p_sys->p_thread->url.psz_path );
 
@@ -248,6 +265,8 @@ error2:
 
     free( p_sys->p_thread->psz_application );
     free( p_sys->p_thread->psz_media );
+    free( p_sys->p_thread->psz_swf_url );
+    free( p_sys->p_thread->psz_page_url );
 
     net_Close( p_sys->p_thread->fd );
 error:
@@ -298,6 +317,8 @@ static void Close( vlc_object_t * p_this )
     vlc_UrlClean( &p_sys->p_thread->url );
     free( p_sys->p_thread->psz_application );
     free( p_sys->p_thread->psz_media );
+    free( p_sys->p_thread->psz_swf_url );
+    free( p_sys->p_thread->psz_page_url );
 
     vlc_object_detach( p_sys->p_thread );
     vlc_object_release( p_sys->p_thread );