Commit f78545dd authored by Rémi Duraffort's avatar Rémi Duraffort

rtmp: add an option to let the user set swfUrl and pageUrl.

parent af0ba144
......@@ -45,6 +45,16 @@
"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 );
......
......@@ -430,10 +430,10 @@ rtmp_connect_active( rtmp_control_thread_t *p_thread )
free( tmp_buffer );
tmp_buffer = amf_encode_object_variable( "swfUrl",
AMF_DATATYPE_STRING, "file:///mac.flv" );
AMF_DATATYPE_STRING, p_thread->psz_swf_url );
rtmp_body_append( rtmp_body, tmp_buffer,
AMF_DATATYPE_SIZE_OBJECT_VARIABLE + strlen( "swfUrl" ) +
AMF_DATATYPE_SIZE_STRING + strlen( "file:///mac.flv" ) );
AMF_DATATYPE_SIZE_STRING + strlen( p_thread->psz_swf_url ) );
free( tmp_buffer );
if( asprintf( &tmp_url, "rtmp://%s", p_thread->url.psz_buffer ) == -1 )
......@@ -479,10 +479,10 @@ rtmp_connect_active( rtmp_control_thread_t *p_thread )
free( tmp_buffer );
tmp_buffer = amf_encode_object_variable( "pageUrl",
AMF_DATATYPE_STRING, "file:///mac.html" );
AMF_DATATYPE_STRING, p_thread->psz_page_url );
rtmp_body_append( rtmp_body, tmp_buffer,
AMF_DATATYPE_SIZE_OBJECT_VARIABLE + strlen( "pageUrl" ) +
AMF_DATATYPE_SIZE_STRING + strlen( "file:///mac.html" ) );
AMF_DATATYPE_SIZE_STRING + strlen( p_thread->psz_page_url ) );
free( tmp_buffer );
tmp_buffer = amf_encode_object_variable( "objectEncoding",
......
......@@ -58,6 +58,9 @@ struct rtmp_control_thread_t
char *psz_application;
char *psz_media;
char *psz_swf_url;
char *psz_page_url;
block_fifo_t *p_fifo_input;
block_fifo_t *p_empty_blocks;
......@@ -65,9 +68,9 @@ struct rtmp_control_thread_t
vlc_cond_t wait;
int result_connect;
int result_publish;
int result_publish;
int result_play;
int result_stop;
int result_stop;
double stream_client_id;
double stream_server_id;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment