From: RĂ©mi Denis-Courmont Date: Mon, 19 Jan 2009 19:14:37 +0000 (+0200) Subject: sout_EncoderCreate: create an encoder module X-Git-Tag: 1.0.0-pre1~1188 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=0d646a30d254f3583d624265fa2cc37589dfad15;p=vlc sout_EncoderCreate: create an encoder module Perhaps we should turn it into ...New() and do more than just allocate the object. --- diff --git a/include/vlc_sout.h b/include/vlc_sout.h index d441a06e9f..f74fe9fd95 100644 --- a/include/vlc_sout.h +++ b/include/vlc_sout.h @@ -238,6 +238,13 @@ static inline int sout_StreamIdSend( sout_stream_t *s, sout_stream_id_t *id, blo return s->pf_send( s, id, b ); } +/**************************************************************************** + * Encoder + ****************************************************************************/ + +VLC_EXPORT( encoder_t *, sout_EncoderCreate, ( vlc_object_t *obj ) ); +#define sout_EncoderCreate(o) sout_EncoderCreate(VLC_OBJECT(o)) + /**************************************************************************** * Announce handler ****************************************************************************/ diff --git a/modules/stream_out/transcode.c b/modules/stream_out/transcode.c index 90dc281936..276e0d5e56 100644 --- a/modules/stream_out/transcode.c +++ b/modules/stream_out/transcode.c @@ -711,7 +711,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) id->p_decoder->b_pace_control = true; /* Create encoder object */ - id->p_encoder = vlc_object_create( p_stream, VLC_OBJECT_ENCODER ); + id->p_encoder = sout_EncoderCreate( p_stream ); if( !id->p_encoder ) goto error; vlc_object_attach( id->p_encoder, p_stream ); diff --git a/src/misc/image.c b/src/misc/image.c index acee3b8ce3..2b45d25c32 100644 --- a/src/misc/image.c +++ b/src/misc/image.c @@ -45,6 +45,7 @@ #include #include #include +#include #include static picture_t *ImageRead( image_handler_t *, block_t *, @@ -656,7 +657,7 @@ static encoder_t *CreateEncoder( vlc_object_t *p_this, video_format_t *fmt_in, { encoder_t *p_enc; - p_enc = vlc_object_create( p_this, VLC_OBJECT_ENCODER ); + p_enc = sout_EncoderCreate( p_this ); if( p_enc == NULL ) return NULL; diff --git a/src/stream_output/stream_output.c b/src/stream_output/stream_output.c index 3f81d26438..5777fbd44c 100644 --- a/src/stream_output/stream_output.c +++ b/src/stream_output/stream_output.c @@ -43,6 +43,7 @@ #include #include +#include #include "input/input_interface.h" @@ -874,3 +875,11 @@ rtp: mrl_Clean( &mrl ); return psz_chain; } + +#undef sout_EncoderCreate +encoder_t *sout_EncoderCreate( vlc_object_t *p_this ) +{ + static const char type[] = "encoder"; + return vlc_custom_create( p_this, sizeof( encoder_t ), VLC_OBJECT_GENERIC, + type ); +}