* vlc_streaming.h: Methods and descriptions for Streaming profiles
*****************************************************************************
* Copyright (C) 2002-2005 the VideoLAN team
- * $Id: stream_output.h 14151 2006-02-04 00:08:50Z zorglub $
+ * $Id$
*
* Authors: Clément Stenac <zorglub@videolan.org>
*
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
+#if !defined( __LIBVLC__ )
+ #error You are not libvlc or one of its plugins. You cannot include this file
+#endif
+
#ifndef _VLC_STREAMING_H_
#define _VLC_STREAMING_H_
};
void streaming_ParameterApply( sout_param_t *p_param, char **ppsz_dest,
- int *pi_dest, float *pf_dest, vlc_bool_t *pb_dest );
+ int *pi_dest, float *pf_dest, bool *pb_dest );
/******** Module types definitions and parametrable elements ***************/
PSZ_VE, PSZ_AE };
struct sout_transcode_t
{
- int i_vb, i_ab, i_channels;
+ int32_t i_vb;
+ int32_t i_ab;
+ int32_t i_channels;
float f_scale;
- vlc_bool_t b_soverlay;
- char *psz_vcodec, *psz_acodec, *psz_scodec, *psz_venc, *psz_aenc;
+ bool b_soverlay;
+ char *psz_vcodec;
+ char *psz_acodec;
+ char *psz_scodec;
+ char *psz_venc;
+ char *psz_aenc;
char *psz_additional;
- int i_params; sout_param_t **pp_params;
+ int32_t i_params;
+ sout_param_t **pp_params;
};
void streaming_TranscodeParametersApply( sout_transcode_t *p_module );
enum { PSZ_MUX, PSZ_ACCESS, PSZ_URL, PSZ_NAME, PSZ_GROUP };
struct sout_std_t
{
- char *psz_mux, *psz_access;
- char *psz_url, *psz_name, *psz_group;
- int i_params; sout_param_t **pp_params;
+ char *psz_mux;
+ char *psz_access;
+ char *psz_url;
+ char *psz_name;
+ char *psz_group;
+ int i_params;
+ sout_param_t **pp_params;
};
void streaming_StdParametersApply( sout_std_t *p_module );
/* Duplicate */
struct sout_duplicate_t
{
- int i_children, i_conditions;
+ int i_children;
+ int i_conditions;
sout_chain_t **pp_children;
char **ppsz_conditions;
};
sout_pcat_t **pp_pcats;
};
-static inline sout_chain_t *streaming_ChainNew()
+static inline sout_chain_t *streaming_ChainNew(void)
{
DECMALLOC_NULL( p_chain, sout_chain_t );
memset( p_chain, 0, sizeof( sout_chain_t ) );
sout_chain_t *p_chain;
};
+/** struct for holding account information needed to access the services */
+struct streaming_account_t
+{
+ char *psz_username; /*< username of account */
+ char *psz_password; /*< password of account */
+};
+
/**************** GUI interaction *****************/
+/** struct to hold user interface information */
struct sout_gui_descr_t
{
- /* Access */
- vlc_bool_t b_local, b_file, b_http, b_mms, b_rtp, b_udp, b_dump;
- char *psz_file, *psz_http, *psz_mms, *psz_rtp, *psz_udp;
- int i_http, i_mms, i_rtp, i_udp;
+ /* Access types */
+ bool b_local; /*< local access module */
+ bool b_file; /*< file access module */
+ bool b_http; /*< http access module */
+ bool b_mms; /*< mms access module */
+ bool b_rtp; /*< rtp access module */
+ bool b_udp; /*< udp access module */
+ bool b_dump; /*< dump access module */
+ bool b_icecast; /*< icecast access module */
+
+ char *psz_file; /*< filename */
+ char *psz_http; /*< HTTP servername or ipaddress */
+ char *psz_mms; /*< MMS servername or ipaddress */
+ char *psz_rtp; /*< RTP servername or ipaddress */
+ char *psz_udp; /*< UDP servername or ipaddress */
+ char *psz_icecast; /*< Icecast servername or ipaddress*/
+
+ int32_t i_http; /*< http port number */
+ int32_t i_mms; /*< mms port number */
+ int32_t i_rtp; /*< rtp port number */
+ int32_t i_udp; /*< udp port number */
+ int32_t i_icecast; /*< icecast port number */
/* Mux */
- char *psz_mux;
+ char *psz_mux; /*< name of muxer to use in streaming */
/* Transcode */
- vlc_bool_t b_soverlay;
- char *psz_vcodec, *psz_acodec, *psz_scodec;
- int i_vb, i_ab, i_channels;
- float f_scale;
+ bool b_soverlay; /*< enable burning overlay in the video */
+ char *psz_vcodec; /*< video codec to use in transcoding */
+ char *psz_acodec; /*< audio codec to use in transcoding */
+ char *psz_scodec; /*< subtitle codec to use in transcoding */
+ int32_t i_vb; /*< video bitrate to use in transcoding */
+ int32_t i_ab; /*< audio bitrate to use in transcoding */
+ int32_t i_channels; /*< number of audio channels to use in transcoding */
+ float f_scale; /*< scaling factor to use in transcoding */
/* Misc */
- vlc_bool_t b_sap, b_all_es;
- char *psz_group, *psz_name;
- int i_ttl;
+ bool b_sap; /*< send SAP announcement */
+ bool b_all_es;/*< send all elementary streams from source stream */
+ char *psz_group; /*< SAP Group name */
+ char *psz_name; /*< SAP name */
+ int32_t i_ttl; /*< Time To Live (TTL) for network traversal */
+
+ /* Icecast */
+ char *psz_icecast_mountpoint;/*< path to Icecast mountpoint */
+ struct streaming_account_t sa_icecast; /*< Icecast account information */
};
+VLC_EXPORT(void, streaming_GuiDescToChain,(vlc_object_t*, sout_chain_t*, sout_gui_descr_t*));
+VLC_EXPORT(char*, streaming_ChainToPsz,(sout_chain_t*));
+
/***************** Profile parsing ***********************/
struct profile_parser_t