5 #include <vlc_common.h>
8 #include <vlc_filter.h>
10 #include <vlc_codec.h>
13 #define PICTURE_RING_SIZE 64
14 #define SUBPICTURE_RING_SIZE 20
16 #define MASTER_SYNC_MAX_DRIFT 100000
18 struct sout_stream_sys_t
22 sout_stream_id_t
*id_video
;
26 picture_t
* pp_pics
[PICTURE_RING_SIZE
];
27 int i_first_pic
, i_last_pic
;
31 vlc_fourcc_t i_acodec
; /* codec audio (0 if not transcode) */
34 config_chain_t
*p_audio_cfg
;
35 uint32_t i_sample_rate
;
42 vlc_fourcc_t i_vcodec
; /* codec video (0 if not transcode) */
44 config_chain_t
*p_video_cfg
;
48 unsigned int i_width
, i_maxwidth
;
49 unsigned int i_height
, i_maxheight
;
51 char *psz_deinterlace
;
52 config_chain_t
*p_deinterlace_cfg
;
60 vlc_fourcc_t i_scodec
; /* codec spu (0 if not transcode) */
63 config_chain_t
*p_spu_cfg
;
67 vlc_fourcc_t i_osdcodec
; /* codec osd menu (0 if not transcode) */
69 config_chain_t
*p_osd_cfg
;
70 bool b_osd
; /* true when osd es is registered */
74 mtime_t i_master_drift
;
77 struct sout_stream_id_t
81 /* id of the out stream */
88 filter_chain_t
*p_f_chain
;
89 /* User specified filters */
90 filter_chain_t
*p_uf_chain
;
96 date_t interpolated_pts
;
101 int transcode_osd_new( sout_stream_t
*p_stream
, sout_stream_id_t
*id
);
102 void transcode_osd_close( sout_stream_t
*p_stream
, sout_stream_id_t
*id
);
103 int transcode_osd_process( sout_stream_t
*p_stream
, sout_stream_id_t
*id
,
104 block_t
*in
, block_t
**out
);
105 bool transcode_osd_add ( sout_stream_t
*, es_format_t
*, sout_stream_id_t
*);
109 int transcode_spu_new ( sout_stream_t
*, sout_stream_id_t
* );
110 void transcode_spu_close ( sout_stream_t
*, sout_stream_id_t
* );
111 int transcode_spu_process( sout_stream_t
*, sout_stream_id_t
*,
112 block_t
*, block_t
** );
113 bool transcode_spu_add ( sout_stream_t
*, es_format_t
*, sout_stream_id_t
*);
117 int transcode_audio_new ( sout_stream_t
*, sout_stream_id_t
* );
118 void transcode_audio_close ( sout_stream_id_t
* );
119 int transcode_audio_process( sout_stream_t
*, sout_stream_id_t
*,
120 block_t
*, block_t
** );
121 bool transcode_audio_add ( sout_stream_t
*, es_format_t
*,
126 int transcode_video_new ( sout_stream_t
*, sout_stream_id_t
* );
127 void transcode_video_close ( sout_stream_t
*, sout_stream_id_t
* );
128 int transcode_video_process( sout_stream_t
*, sout_stream_id_t
*,
129 block_t
*, block_t
** );
130 bool transcode_video_add ( sout_stream_t
*, es_format_t
*,