5 #include <vlc_common.h>
8 #include <vlc_filter.h>
10 #include <vlc_codec.h>
12 #include <vlc_picture_fifo.h>
14 #define MASTER_SYNC_MAX_DRIFT 100000
16 struct sout_stream_sys_t
18 sout_stream_id_t *id_video;
23 picture_fifo_t *pp_pics;
27 vlc_fourcc_t i_acodec; /* codec audio (0 if not transcode) */
30 config_chain_t *p_audio_cfg;
31 uint32_t i_sample_rate;
38 vlc_fourcc_t i_vcodec; /* codec video (0 if not transcode) */
39 video_format_t fmt_input_video;
41 config_chain_t *p_video_cfg;
45 unsigned int i_width, i_maxwidth;
46 unsigned int i_height, i_maxheight;
48 char *psz_deinterlace;
49 config_chain_t *p_deinterlace_cfg;
57 vlc_fourcc_t i_scodec; /* codec spu (0 if not transcode) */
60 config_chain_t *p_spu_cfg;
62 filter_t *p_spu_blend;
65 vlc_fourcc_t i_osdcodec; /* codec osd menu (0 if not transcode) */
67 config_chain_t *p_osd_cfg;
68 bool b_osd; /* true when osd es is registered */
72 mtime_t i_master_drift;
75 struct sout_stream_id_t
79 /* id of the out stream */
86 filter_chain_t *p_f_chain;
87 /* User specified filters */
88 filter_chain_t *p_uf_chain;
94 date_t interpolated_pts;
99 int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id );
100 void transcode_osd_close( sout_stream_t *p_stream, sout_stream_id_t *id);
101 int transcode_osd_process( sout_stream_t *p_stream, sout_stream_id_t *id,
102 block_t *in, block_t **out );
103 bool transcode_osd_add ( sout_stream_t *, es_format_t *, sout_stream_id_t *);
107 int transcode_spu_new ( sout_stream_t *, sout_stream_id_t * );
108 void transcode_spu_close ( sout_stream_t *, sout_stream_id_t * );
109 int transcode_spu_process( sout_stream_t *, sout_stream_id_t *,
110 block_t *, block_t ** );
111 bool transcode_spu_add ( sout_stream_t *, es_format_t *, sout_stream_id_t *);
115 int transcode_audio_new ( sout_stream_t *, sout_stream_id_t * );
116 void transcode_audio_close ( sout_stream_id_t * );
117 int transcode_audio_process( sout_stream_t *, sout_stream_id_t *,
118 block_t *, block_t ** );
119 bool transcode_audio_add ( sout_stream_t *, es_format_t *,
124 int transcode_video_new ( sout_stream_t *, sout_stream_id_t * );
125 void transcode_video_close ( sout_stream_t *, sout_stream_id_t * );
126 int transcode_video_process( sout_stream_t *, sout_stream_id_t *,
127 block_t *, block_t ** );
128 bool transcode_video_add ( sout_stream_t *, es_format_t *,