#define NAME_LONGTEXT N_( \
"Name of the session that will be announced with SAP or SLP" )
+#define GROUP_TEXT N_("Session groupname")
+#define GROUP_LONGTEXT N_( \
+ "Name of the group that will be announced for the session" )
+
#define SAP_TEXT N_("SAP announcing")
#define SAP_LONGTEXT N_("Announce this session with SAP")
URL_LONGTEXT, VLC_FALSE );
add_bool( SOUT_CFG_PREFIX "sap", 0, NULL, SAP_TEXT, SAP_LONGTEXT, VLC_TRUE );
- add_string( SOUT_CFG_PREFIX "name", "", NULL, NAME_TEXT,NAME_LONGTEXT
- , VLC_TRUE );
+ add_string( SOUT_CFG_PREFIX "name", "", NULL, NAME_TEXT, NAME_LONGTEXT,
+ VLC_TRUE );
+ add_string( SOUT_CFG_PREFIX "group", "", NULL, GROUP_TEXT, GROUP_LONGTEXT,
+ VLC_TRUE );
add_bool( SOUT_CFG_PREFIX "sap-ipv6", 0, NULL, SAPv6_TEXT, SAPv6_LONGTEXT,
VLC_TRUE );
*****************************************************************************/
static const char *ppsz_sout_options[] = {
"access", "mux", "url",
- "sap", "name", "sap-ipv6",
- "slp",NULL
+ "sap", "name", "sap-ipv6", "group",
+ "slp", NULL
};
#define DEFAULT_IPV6_SCOPE '8'
var_Get( p_stream, SOUT_CFG_PREFIX "name", &val );
if( *val.psz_string )
{
- p_session->psz_name = val.psz_string;
+ p_session->psz_name = strdup( val.psz_string );
}
else
{
- free( val.psz_string );
p_session->psz_name = strdup( psz_url );
}
+ free( val.psz_string );
+
+ var_Get( p_stream, SOUT_CFG_PREFIX "group", &val );
+ if( *val.psz_string )
+ {
+ p_session->psz_group = strdup( val.psz_string );
+ }
+ free( val.psz_string );
+
var_Get( p_stream, SOUT_CFG_PREFIX "sap-ipv6", &val );
p_method->i_ip_version = val.b_bool ? 6 : 4;
"a=tool:"PACKAGE_STRING"\r\n"
"a=type:broadcast\r\n")
+ strlen( p_session->psz_name )
- + strlen( p_session->psz_uri ) + 300 );
+ + strlen( p_session->psz_uri ) + 300
+ + ( p_session->psz_group ?
+ strlen( p_session->psz_group ) : 0 ) );
+
if( !p_session->psz_sdp )
{
msg_Err( p_sap, "out of memory" );
p_session->psz_name,
p_session->psz_uri, p_session->i_ttl,
p_session->i_port, p_session->i_payload );
+
+ if( p_session->psz_group )
+ {
+ sprintf( p_session->psz_sdp, "%sa=x-plgroup:%s\r\n",
+ p_session->psz_sdp,
+ p_session->psz_group );
+ }
+
msg_Dbg( p_sap, "Generated SDP (%i bytes):\n%s", strlen(p_session->psz_sdp),
p_session->psz_sdp );
return VLC_SUCCESS;