00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _VLC_CODEC_H
00024 #define _VLC_CODEC_H 1
00025
00031 typedef struct decoder_owner_sys_t decoder_owner_sys_t;
00032
00041
00042
00043
00044
00045
00046 struct decoder_t
00047 {
00048 VLC_COMMON_MEMBERS
00049
00050
00051 module_t * p_module;
00052 decoder_sys_t * p_sys;
00053
00054
00055 es_format_t fmt_in;
00056
00057
00058 es_format_t fmt_out;
00059
00060
00061 vlc_bool_t b_need_packetized;
00062
00063
00064 vlc_bool_t b_pace_control;
00065
00066 picture_t * ( * pf_decode_video )( decoder_t *, block_t ** );
00067 aout_buffer_t * ( * pf_decode_audio )( decoder_t *, block_t ** );
00068 subpicture_t * ( * pf_decode_sub) ( decoder_t *, block_t ** );
00069 block_t * ( * pf_packetize ) ( decoder_t *, block_t ** );
00070
00071
00072
00073
00074
00075
00076 aout_buffer_t * ( * pf_aout_buffer_new) ( decoder_t *, int );
00077 void ( * pf_aout_buffer_del) ( decoder_t *, aout_buffer_t * );
00078
00079
00080 picture_t * ( * pf_vout_buffer_new) ( decoder_t * );
00081 void ( * pf_vout_buffer_del) ( decoder_t *, picture_t * );
00082 void ( * pf_picture_link) ( decoder_t *, picture_t * );
00083 void ( * pf_picture_unlink) ( decoder_t *, picture_t * );
00084
00085
00086 subpicture_t * ( * pf_spu_buffer_new) ( decoder_t * );
00087 void ( * pf_spu_buffer_del) ( decoder_t *, subpicture_t * );
00088
00089
00090 decoder_owner_sys_t *p_owner;
00091 };
00092
00105 struct encoder_t
00106 {
00107 VLC_COMMON_MEMBERS
00108
00109
00110 module_t * p_module;
00111 encoder_sys_t * p_sys;
00112
00113
00114 es_format_t fmt_in;
00115
00116
00117 es_format_t fmt_out;
00118
00119 block_t * ( * pf_encode_video )( encoder_t *, picture_t * );
00120 block_t * ( * pf_encode_audio )( encoder_t *, aout_buffer_t * );
00121 block_t * ( * pf_encode_sub )( encoder_t *, subpicture_t * );
00122
00123
00124 int i_threads;
00125 int i_iframes;
00126 int i_bframes;
00127 int i_tolerance;
00128
00129
00130 sout_cfg_t *p_cfg;
00131 };
00132
00137 #endif