-VLC_EXPORT( int, sout_AnnounceRegister, (sout_instance_t *,session_descriptor_t*, announce_method_t* ) );
-VLC_EXPORT(session_descriptor_t*,sout_AnnounceRegisterSDP, (sout_instance_t *, const char *, const char *, const char *, announce_method_t* ) );
-VLC_EXPORT( int, sout_AnnounceUnRegister, (sout_instance_t *,session_descriptor_t* ) );
-
-VLC_EXPORT(session_descriptor_t*,sout_AnnounceSessionCreate, (vlc_object_t *obj, const char *cfgpref) );
-VLC_EXPORT(void, sout_AnnounceSessionDestroy, (session_descriptor_t *) );
-VLC_EXPORT(announce_method_t*, sout_SAPMethod, (void) );
-VLC_EXPORT(void, sout_MethodRelease, (announce_method_t *) );
+
+VLC_API encoder_t * sout_EncoderCreate( vlc_object_t *obj );
+#define sout_EncoderCreate(o) sout_EncoderCreate(VLC_OBJECT(o))
+
+/****************************************************************************
+ * Announce handler
+ ****************************************************************************/
+VLC_API session_descriptor_t* sout_AnnounceRegisterSDP( vlc_object_t *, const char *, const char * ) VLC_USED;
+VLC_API int sout_AnnounceUnRegister(vlc_object_t *,session_descriptor_t* );
+#define sout_AnnounceRegisterSDP(o, sdp, addr) \
+ sout_AnnounceRegisterSDP(VLC_OBJECT (o), sdp, addr)
+#define sout_AnnounceUnRegister(o, a) \
+ sout_AnnounceUnRegister(VLC_OBJECT (o), a)
+
+/** SDP */
+
+struct sockaddr;
+
+VLC_API char * vlc_sdp_Start( vlc_object_t *obj, const char *cfgpref, const struct sockaddr *src, size_t srclen, const struct sockaddr *addr, size_t addrlen ) VLC_USED;
+VLC_API char * sdp_AddMedia(char **sdp, const char *type, const char *protocol, int dport, unsigned pt, bool bw_indep, unsigned bw, const char *ptname, unsigned clockrate, unsigned channels, const char *fmtp);
+VLC_API char * sdp_AddAttribute(char **sdp, const char *name, const char *fmt, ...) VLC_FORMAT( 3, 4 );
+
+/** Description module */
+typedef struct sout_description_data_t
+{
+ int i_es;
+ es_format_t **es;
+ vlc_sem_t *sem;
+} sout_description_data_t;