Changeset 62fffadfea2834f7ff57a6ec1b15f8be35e68916
- Timestamp:
- 10/01/06 18:08:37
(2 years ago)
- Author:
- Antoine Cellerier <dionoea@videolan.org>
- git-committer:
- Antoine Cellerier <dionoea@videolan.org> 1159718917 +0000
- git-parent:
[bebdb9922f972484a3761024946e059c6320411b]
- git-author:
- Antoine Cellerier <dionoea@videolan.org> 1159718917 +0000
- Message:
Rename all sout_Cfg* stuff to config_Chain* (as it isn't really sout specific)
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rcbf6012 |
r62fffad |
|
| 408 | 408 | #define change_autosave() \ |
|---|
| 409 | 409 | p_config[i_config].b_autosave = VLC_TRUE; |
|---|
| | 410 | |
|---|
| | 411 | |
|---|
| | 412 | /**************************************************************************** |
|---|
| | 413 | * config_chain_t: |
|---|
| | 414 | ****************************************************************************/ |
|---|
| | 415 | struct config_chain_t |
|---|
| | 416 | { |
|---|
| | 417 | config_chain_t *p_next; |
|---|
| | 418 | |
|---|
| | 419 | char *psz_name; |
|---|
| | 420 | char *psz_value; |
|---|
| | 421 | }; |
|---|
| | 422 | |
|---|
| | 423 | #define config_ChainParse( a, b, c, d ) __config_ChainParse( VLC_OBJECT(a), b, c, d ) |
|---|
| | 424 | VLC_EXPORT( void, __config_ChainParse, ( vlc_object_t *, char *psz_prefix, const char **ppsz_options, config_chain_t * ) ); |
|---|
| | 425 | VLC_EXPORT( char *, config_ChainCreate, ( char **, config_chain_t **, char * ) ); |
|---|
| | 426 | VLC_EXPORT( void, config_ChainDestroy, ( config_chain_t * ) ); |
|---|
| | 427 | |
|---|
| | 428 | static inline config_chain_t *config_chain_find( config_chain_t *p_cfg, char *psz_name ) |
|---|
| | 429 | { |
|---|
| | 430 | while( p_cfg && strcmp( p_cfg->psz_name, psz_name ) ) |
|---|
| | 431 | { |
|---|
| | 432 | p_cfg = p_cfg->p_next; |
|---|
| | 433 | } |
|---|
| | 434 | |
|---|
| | 435 | return p_cfg; |
|---|
| | 436 | } |
|---|
| | 437 | |
|---|
| | 438 | static inline char *config_chain_find_value( config_chain_t *p_cfg, char *psz_name ) |
|---|
| | 439 | { |
|---|
| | 440 | while( p_cfg && strcmp( p_cfg->psz_name, psz_name ) ) |
|---|
| | 441 | { |
|---|
| | 442 | p_cfg = p_cfg->p_next; |
|---|
| | 443 | } |
|---|
| | 444 | |
|---|
| | 445 | if( p_cfg && p_cfg->psz_value ) |
|---|
| | 446 | { |
|---|
| | 447 | return( p_cfg->psz_value ); |
|---|
| | 448 | } |
|---|
| | 449 | |
|---|
| | 450 | return NULL; |
|---|
| | 451 | } |
|---|
| r4efb291 |
r62fffad |
|
| 54 | 54 | |
|---|
| 55 | 55 | /**************************************************************************** |
|---|
| 56 | | * sout_cfg_t: |
|---|
| 57 | | ****************************************************************************/ |
|---|
| 58 | | struct sout_cfg_t |
|---|
| 59 | | { |
|---|
| 60 | | sout_cfg_t *p_next; |
|---|
| 61 | | |
|---|
| 62 | | char *psz_name; |
|---|
| 63 | | char *psz_value; |
|---|
| 64 | | }; |
|---|
| 65 | | |
|---|
| 66 | | #define sout_CfgParse( a, b, c, d ) __sout_CfgParse( VLC_OBJECT(a), b, c, d ) |
|---|
| 67 | | VLC_EXPORT( void, __sout_CfgParse, ( vlc_object_t *, char *psz_prefix, const char **ppsz_options, sout_cfg_t * ) ); |
|---|
| 68 | | VLC_EXPORT( char *, sout_CfgCreate, ( char **, sout_cfg_t **, char * ) ); |
|---|
| 69 | | |
|---|
| 70 | | /**************************************************************************** |
|---|
| 71 | 56 | * sout_stream_id_t: opaque (private for all sout_stream_t) |
|---|
| 72 | 57 | ****************************************************************************/ |
|---|
| … | … | |
| 105 | 90 | |
|---|
| 106 | 91 | char *psz_access; |
|---|
| 107 | | sout_cfg_t *p_cfg; |
|---|
| | 92 | config_chain_t *p_cfg; |
|---|
| 108 | 93 | |
|---|
| 109 | 94 | int i_writes; |
|---|
| … | … | |
| 135 | 120 | |
|---|
| 136 | 121 | char *psz_mux; |
|---|
| 137 | | sout_cfg_t *p_cfg; |
|---|
| | 122 | config_chain_t *p_cfg; |
|---|
| 138 | 123 | |
|---|
| 139 | 124 | sout_access_out_t *p_access; |
|---|
| … | … | |
| 209 | 194 | |
|---|
| 210 | 195 | char *psz_name; |
|---|
| 211 | | sout_cfg_t *p_cfg; |
|---|
| | 196 | config_chain_t *p_cfg; |
|---|
| 212 | 197 | char *psz_next; |
|---|
| 213 | 198 | |
|---|
| … | … | |
| 312 | 297 | |
|---|
| 313 | 298 | /* End */ |
|---|
| 314 | | |
|---|
| 315 | | |
|---|
| 316 | | static inline sout_cfg_t *sout_cfg_find( sout_cfg_t *p_cfg, char *psz_name ) |
|---|
| 317 | | { |
|---|
| 318 | | while( p_cfg && strcmp( p_cfg->psz_name, psz_name ) ) |
|---|
| 319 | | { |
|---|
| 320 | | p_cfg = p_cfg->p_next; |
|---|
| 321 | | } |
|---|
| 322 | | |
|---|
| 323 | | return p_cfg; |
|---|
| 324 | | } |
|---|
| 325 | | |
|---|
| 326 | | static inline char *sout_cfg_find_value( sout_cfg_t *p_cfg, char *psz_name ) |
|---|
| 327 | | { |
|---|
| 328 | | while( p_cfg && strcmp( p_cfg->psz_name, psz_name ) ) |
|---|
| 329 | | { |
|---|
| 330 | | p_cfg = p_cfg->p_next; |
|---|
| 331 | | } |
|---|
| 332 | | |
|---|
| 333 | | if( p_cfg && p_cfg->psz_value ) |
|---|
| 334 | | { |
|---|
| 335 | | return( p_cfg->psz_value ); |
|---|
| 336 | | } |
|---|
| 337 | | |
|---|
| 338 | | return NULL; |
|---|
| 339 | | } |
|---|
| 340 | 299 | |
|---|
| 341 | 300 | /* Announce system */ |
|---|
| rc3a1a37 |
r62fffad |
|
| 158 | 158 | * XXX: we might need to merge the two chains (v1 and v2 filters) */ |
|---|
| 159 | 159 | char *psz_vfilters[MAX_VFILTERS]; |
|---|
| 160 | | sout_cfg_t *p_vfilters_cfg[MAX_VFILTERS]; |
|---|
| | 160 | config_chain_t *p_vfilters_cfg[MAX_VFILTERS]; |
|---|
| 161 | 161 | int i_vfilters_cfg; |
|---|
| 162 | 162 | |
|---|
| r2cb472d |
r62fffad |
|
| 128 | 128 | |
|---|
| 129 | 129 | /* Encoder config */ |
|---|
| 130 | | sout_cfg_t *p_cfg; |
|---|
| | 130 | config_chain_t *p_cfg; |
|---|
| 131 | 131 | }; |
|---|
| 132 | 132 | |
|---|
| r2d90e86 |
r62fffad |
|
| 329 | 329 | typedef struct sout_stream_sys_t sout_stream_sys_t; |
|---|
| 330 | 330 | |
|---|
| 331 | | typedef struct sout_cfg_t sout_cfg_t; |
|---|
| | 331 | typedef struct config_chain_t config_chain_t; |
|---|
| 332 | 332 | typedef struct sap_session_t sap_session_t; |
|---|
| 333 | 333 | typedef struct sap_address_t sap_address_t; |
|---|
| r2cb472d |
r62fffad |
|
| 59 | 59 | |
|---|
| 60 | 60 | /* Filter configuration */ |
|---|
| 61 | | sout_cfg_t * p_cfg; |
|---|
| | 61 | config_chain_t * p_cfg; |
|---|
| 62 | 62 | |
|---|
| 63 | 63 | picture_t * ( * pf_video_filter ) ( filter_t *, picture_t * ); |
|---|
| r7f779f6 |
r62fffad |
|
| 110 | 110 | void (*vout_OSDSlider_inner) (vlc_object_t *, int, int , short); |
|---|
| 111 | 111 | void (*vout_OSDIcon_inner) (vlc_object_t *, int, short); |
|---|
| 112 | | void (*__sout_CfgParse_inner) (vlc_object_t *, char *psz_prefix, const char **ppsz_options, sout_cfg_t *); |
|---|
| 113 | | char * (*sout_CfgCreate_inner) (char **, sout_cfg_t **, char *); |
|---|
| | 112 | void *__sout_CfgParse_deprecated; |
|---|
| | 113 | void *sout_CfgCreate_deprecated; |
|---|
| 114 | 114 | sout_instance_t * (*__sout_NewInstance_inner) (vlc_object_t *, char *); |
|---|
| 115 | 115 | void (*sout_DeleteInstance_inner) (sout_instance_t *); |
|---|
| … | … | |
| 551 | 551 | int (*playlist_AskForArtEnqueue_inner) (playlist_t *, input_item_t *); |
|---|
| 552 | 552 | uint32_t (*input_CurrentMetaFlags_inner) (vlc_meta_t *p_meta); |
|---|
| | 553 | void (*__config_ChainParse_inner) (vlc_object_t *, char *psz_prefix, const char **ppsz_options, config_chain_t *); |
|---|
| | 554 | void (*config_ChainDestroy_inner) (config_chain_t *); |
|---|
| | 555 | char * (*config_ChainCreate_inner) (char **, config_chain_t **, char *); |
|---|
| 553 | 556 | }; |
|---|
| 554 | 557 | # if defined (__PLUGIN__) |
|---|
| … | … | |
| 642 | 645 | # define vout_OSDSlider (p_symbols)->vout_OSDSlider_inner |
|---|
| 643 | 646 | # define vout_OSDIcon (p_symbols)->vout_OSDIcon_inner |
|---|
| 644 | | # define __sout_CfgParse (p_symbols)->__sout_CfgParse_inner |
|---|
| 645 | | # define sout_CfgCreate (p_symbols)->sout_CfgCreate_inner |
|---|
| 646 | 647 | # define __sout_NewInstance (p_symbols)->__sout_NewInstance_inner |
|---|
| 647 | 648 | # define sout_DeleteInstance (p_symbols)->sout_DeleteInstance_inner |
|---|
| … | … | |
| 1026 | 1027 | # define playlist_AskForArtEnqueue (p_symbols)->playlist_AskForArtEnqueue_inner |
|---|
| 1027 | 1028 | # define input_CurrentMetaFlags (p_symbols)->input_CurrentMetaFlags_inner |
|---|
| | 1029 | # define __config_ChainParse (p_symbols)->__config_ChainParse_inner |
|---|
| | 1030 | # define config_ChainDestroy (p_symbols)->config_ChainDestroy_inner |
|---|
| | 1031 | # define config_ChainCreate (p_symbols)->config_ChainCreate_inner |
|---|
| 1028 | 1032 | # elif defined (HAVE_DYNAMIC_PLUGINS) && !defined (__BUILTIN__) |
|---|
| 1029 | 1033 | /****************************************************************** |
|---|
| … | … | |
| 1120 | 1124 | ((p_symbols)->vout_OSDSlider_inner) = vout_OSDSlider; \ |
|---|
| 1121 | 1125 | ((p_symbols)->vout_OSDIcon_inner) = vout_OSDIcon; \ |
|---|
| 1122 | | ((p_symbols)->__sout_CfgParse_inner) = __sout_CfgParse; \ |
|---|
| 1123 | | ((p_symbols)->sout_CfgCreate_inner) = sout_CfgCreate; \ |
|---|
| 1124 | 1126 | ((p_symbols)->__sout_NewInstance_inner) = __sout_NewInstance; \ |
|---|
| 1125 | 1127 | ((p_symbols)->sout_DeleteInstance_inner) = sout_DeleteInstance; \ |
|---|
| … | … | |
| 1504 | 1506 | ((p_symbols)->playlist_AskForArtEnqueue_inner) = playlist_AskForArtEnqueue; \ |
|---|
| 1505 | 1507 | ((p_symbols)->input_CurrentMetaFlags_inner) = input_CurrentMetaFlags; \ |
|---|
| | 1508 | ((p_symbols)->__config_ChainParse_inner) = __config_ChainParse; \ |
|---|
| | 1509 | ((p_symbols)->config_ChainDestroy_inner) = config_ChainDestroy; \ |
|---|
| | 1510 | ((p_symbols)->config_ChainCreate_inner) = config_ChainCreate; \ |
|---|
| 1506 | 1511 | (p_symbols)->net_ConvertIPv4_deprecated = NULL; \ |
|---|
| | 1512 | (p_symbols)->__sout_CfgParse_deprecated = NULL; \ |
|---|
| | 1513 | (p_symbols)->sout_CfgCreate_deprecated = NULL; \ |
|---|
| 1507 | 1514 | (p_symbols)->vlc_input_item_GetInfo_deprecated = NULL; \ |
|---|
| 1508 | 1515 | (p_symbols)->vlc_input_item_AddInfo_deprecated = NULL; \ |
|---|
| r3d23a7a |
r62fffad |
|
| 102 | 102 | vlc_value_t val; |
|---|
| 103 | 103 | |
|---|
| 104 | | sout_CfgParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg ); |
|---|
| | 104 | config_ChainParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg ); |
|---|
| 105 | 105 | |
|---|
| 106 | 106 | if( !p_access->psz_name ) |
|---|
| r415749b |
r62fffad |
|
| 173 | 173 | } |
|---|
| 174 | 174 | |
|---|
| 175 | | sout_CfgParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg ); |
|---|
| | 175 | config_ChainParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg ); |
|---|
| 176 | 176 | |
|---|
| 177 | 177 | /* p_access->psz_name = "hostname:port/filename" */ |
|---|
| rce24095 |
r62fffad |
|
| 178 | 178 | char *psz_url = NULL; |
|---|
| 179 | 179 | |
|---|
| 180 | | sout_CfgParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg ); |
|---|
| | 180 | config_ChainParse( p_access, SOUT_CFG_PREFIX, ppsz_sout_options, p_access->p_cfg ); |
|---|
| 181 | 181 | |
|---|
| 182 | 182 | psz_accessname = psz_parser = strdup( p_access->psz_name ); |
|---|
| r0af0de2 |
r62fffad |
|
| 183 | 183 | vlc_value_t val; |
|---|
| 184 | 184 | |
|---|
| 185 | | sout_CfgParse( p_access, SOUT_CFG_PREFIX, |
|---|
| | 185 | config_ChainParse( p_access, SOUT_CFG_PREFIX, |
|---|
| 186 | 186 | ppsz_sout_options, p_access->p_cfg ); |
|---|
| 187 | 187 | |
|---|
| rf485214 |
r62fffad |
|
| 351 | 351 | p_enc->fmt_out.i_codec = VLC_FOURCC('d','r','a','c'); |
|---|
| 352 | 352 | |
|---|
| 353 | | sout_CfgParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| | 353 | config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| 354 | 354 | |
|---|
| 355 | 355 | /* Initialse the encoder context with the presets for SD576 - Standard |
|---|
| r50491f1 |
r62fffad |
|
| 1527 | 1527 | p_enc->fmt_out.subs.dvb.i_id = 1 << 16 | 1; |
|---|
| 1528 | 1528 | |
|---|
| 1529 | | sout_CfgParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| | 1529 | config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| 1530 | 1530 | |
|---|
| 1531 | 1531 | p_sys->i_page_ver = 0; |
|---|
| rf485214 |
r62fffad |
|
| 290 | 290 | } |
|---|
| 291 | 291 | |
|---|
| 292 | | sout_CfgParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| | 292 | config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| 293 | 293 | |
|---|
| 294 | 294 | var_Get( p_enc, ENC_CFG_PREFIX "keyint", &val ); |
|---|
| rf485214 |
r62fffad |
|
| 620 | 620 | p_enc->fmt_out.i_codec = VLC_FOURCC('t','h','e','o'); |
|---|
| 621 | 621 | |
|---|
| 622 | | sout_CfgParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| | 622 | config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| 623 | 623 | |
|---|
| 624 | 624 | var_Get( p_enc, ENC_CFG_PREFIX "quality", &val ); |
|---|
| rf485214 |
r62fffad |
|
| 166 | 166 | p_enc->fmt_out.i_codec = VLC_FOURCC('m','p','g','a'); |
|---|
| 167 | 167 | |
|---|
| 168 | | sout_CfgParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| | 168 | config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| 169 | 169 | |
|---|
| 170 | 170 | p_sys->p_twolame = twolame_init(); |
|---|
| r857b51f |
r62fffad |
|
| 793 | 793 | p_enc->fmt_out.i_codec = VLC_FOURCC('v','o','r','b'); |
|---|
| 794 | 794 | |
|---|
| 795 | | sout_CfgParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| | 795 | config_ChainParse( p_enc, ENC_CFG_PREFIX, ppsz_enc_options, p_enc->p_cfg ); |
|---|
| 796 | 796 | |
|---|
| 797 | 797 | var_Get( p_enc, ENC_CFG_PREFIX "quality", &val ); |
|---|
| rf485214 |
r62fffad |
|
| 577 | 577 | #endif |
|---|
| 578 | 578 | |
|---|
| 579 | | sout_CfgParse( p_enc, SOUT_CFG_PREFIX, ppsz_sout_options, p_enc->p_cfg ); |
|---|
| | 579 | config_ChainParse( p_enc, SOUT_CFG_PREFIX, ppsz_sout_options, p_enc->p_cfg ); |
|---|
| 580 | 580 | |
|---|
| 581 | 581 | p_enc->fmt_out.i_codec = VLC_FOURCC( 'h', '2', '6', '4' ); |
|---|
| ra06213d |
r62fffad |
|
| 105 | 105 | { |
|---|
| 106 | 106 | p_main_interface->Raise(); |
|---|
| | 107 | p_main_interface->Show(); |
|---|
| 107 | 108 | p_intf->p_sys->b_intf_show = VLC_FALSE; |
|---|
| 108 | 109 | } |
|---|
| r5c8a026 |
r62fffad |
|
| 183 | 183 | |
|---|
| 184 | 184 | msg_Dbg( p_mux, "asf muxer opened" ); |
|---|
| 185 | | sout_CfgParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| | 185 | config_ChainParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| 186 | 186 | |
|---|
| 187 | 187 | p_mux->pf_control = Control; |
|---|
| recdf0f1 |
r62fffad |
|
| 197 | 197 | |
|---|
| 198 | 198 | msg_Dbg( p_mux, "Mp4 muxer opend" ); |
|---|
| 199 | | sout_CfgParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| | 199 | config_ChainParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| 200 | 200 | |
|---|
| 201 | 201 | p_mux->pf_control = Control; |
|---|
| r386b36f |
r62fffad |
|
| 150 | 150 | |
|---|
| 151 | 151 | msg_Info( p_mux, "Open" ); |
|---|
| 152 | | sout_CfgParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| | 152 | config_ChainParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| 153 | 153 | |
|---|
| 154 | 154 | p_mux->pf_control = Control; |
|---|
| rf485214 |
r62fffad |
|
| 480 | 480 | int i; |
|---|
| 481 | 481 | |
|---|
| 482 | | sout_CfgParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| | 482 | config_ChainParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| 483 | 483 | |
|---|
| 484 | 484 | p_sys = malloc( sizeof( sout_mux_sys_t ) ); |
|---|
| rbf706ca |
r62fffad |
|
| 85 | 85 | |
|---|
| 86 | 86 | msg_Dbg( p_mux, "Multipart jpeg muxer opened" ); |
|---|
| 87 | | sout_CfgParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| | 87 | config_ChainParse( p_mux, SOUT_CFG_PREFIX, ppsz_sout_options, p_mux->p_cfg ); |
|---|
| 88 | 88 | |
|---|
| 89 | 89 | p_sys = p_mux->p_sys = malloc( sizeof(sout_mux_sys_t) ); |
|---|
| rf485214 |
r62fffad |
|
| 165 | 165 | vlc_value_t val; |
|---|
| 166 | 166 | |
|---|
| 167 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX_OUT, ppsz_sout_options_out, |
|---|
| | 167 | config_ChainParse( p_stream, SOUT_CFG_PREFIX_OUT, ppsz_sout_options_out, |
|---|
| 168 | 168 | p_stream->p_cfg ); |
|---|
| 169 | 169 | |
|---|
| … | … | |
| 352 | 352 | } |
|---|
| 353 | 353 | |
|---|
| 354 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX_IN, ppsz_sout_options_in, |
|---|
| | 354 | config_ChainParse( p_stream, SOUT_CFG_PREFIX_IN, ppsz_sout_options_in, |
|---|
| 355 | 355 | p_stream->p_cfg ); |
|---|
| 356 | 356 | |
|---|
| r2cb472d |
r62fffad |
|
| 94 | 94 | vlc_value_t val; |
|---|
| 95 | 95 | |
|---|
| 96 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| | 96 | config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| 97 | 97 | p_stream->p_cfg ); |
|---|
| 98 | 98 | |
|---|
| r2cb472d |
r62fffad |
|
| 80 | 80 | sout_stream_t *p_stream = (sout_stream_t*)p_this; |
|---|
| 81 | 81 | sout_stream_sys_t *p_sys; |
|---|
| 82 | | sout_cfg_t *p_cfg; |
|---|
| | 82 | config_chain_t *p_cfg; |
|---|
| 83 | 83 | |
|---|
| 84 | 84 | msg_Dbg( p_stream, "creating 'duplicate'" ); |
|---|
| r89298c1 |
r62fffad |
|
| 146 | 146 | vlc_value_t val; |
|---|
| 147 | 147 | |
|---|
| 148 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg ); |
|---|
| | 148 | config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg ); |
|---|
| 149 | 149 | p_sys = malloc( sizeof( sout_stream_sys_t ) ); |
|---|
| 150 | 150 | |
|---|
| rf485214 |
r62fffad |
|
| 151 | 151 | vlc_value_t val; |
|---|
| 152 | 152 | |
|---|
| 153 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| | 153 | config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| 154 | 154 | p_stream->p_cfg ); |
|---|
| 155 | 155 | |
|---|
| r7d8c21a |
r62fffad |
|
| 297 | 297 | sout_instance_t *p_sout = p_stream->p_sout; |
|---|
| 298 | 298 | sout_stream_sys_t *p_sys = NULL; |
|---|
| 299 | | sout_cfg_t *p_cfg = NULL; |
|---|
| | 299 | config_chain_t *p_cfg = NULL; |
|---|
| 300 | 300 | vlc_value_t val; |
|---|
| 301 | 301 | vlc_bool_t b_rtsp = VLC_FALSE; |
|---|
| 302 | 302 | |
|---|
| 303 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg ); |
|---|
| | 303 | config_ChainParse( p_stream, SOUT_CFG_PREFIX, |
|---|
| | 304 | ppsz_sout_options, p_stream->p_cfg ); |
|---|
| 304 | 305 | |
|---|
| 305 | 306 | p_sys = malloc( sizeof( sout_stream_sys_t ) ); |
|---|
| … | … | |
| 591 | 592 | if( *val.psz_string ) |
|---|
| 592 | 593 | { |
|---|
| 593 | | sout_cfg_t *p_cfg; |
|---|
| | 594 | config_chain_t *p_cfg; |
|---|
| 594 | 595 | |
|---|
| 595 | 596 | SDPHandleUrl( p_stream, val.psz_string ); |
|---|
| rbcb8ad9 |
r62fffad |
|
| 134 | 134 | char *psz_mux_byext = NULL; |
|---|
| 135 | 135 | |
|---|
| 136 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| | 136 | config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| 137 | 137 | p_stream->p_cfg ); |
|---|
| 138 | 138 | |
|---|
| rf485214 |
r62fffad |
|
| 190 | 190 | } |
|---|
| 191 | 191 | |
|---|
| 192 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| | 192 | config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| 193 | 193 | p_stream->p_cfg ); |
|---|
| 194 | 194 | |
|---|
| r2d0f9f3 |
r62fffad |
|
| 373 | 373 | vlc_fourcc_t i_acodec; /* codec audio (0 if not transcode) */ |
|---|
| 374 | 374 | char *psz_aenc; |
|---|
| 375 | | sout_cfg_t *p_audio_cfg; |
|---|
| | 375 | config_chain_t *p_audio_cfg; |
|---|
| 376 | 376 | int i_sample_rate; |
|---|
| 377 | 377 | int i_channels; |
|---|
| 378 | 378 | int i_abitrate; |
|---|
| 379 | 379 | char *psz_afilters[TRANSCODE_FILTERS]; |
|---|
| 380 | | sout_cfg_t *p_afilters_cfg[TRANSCODE_FILTERS]; |
|---|
| | 380 | config_chain_t *p_afilters_cfg[TRANSCODE_FILTERS]; |
|---|
| 381 | 381 | int i_afilters; |
|---|
| 382 | 382 | |
|---|
| … | … | |
| 384 | 384 | vlc_fourcc_t i_vcodec; /* codec video (0 if not transcode) */ |
|---|
| 385 | 385 | char *psz_venc; |
|---|
| 386 | | sout_cfg_t *p_video_cfg; |
|---|
| | 386 | config_chain_t *p_video_cfg; |
|---|
| 387 | 387 | int i_vbitrate; |
|---|
| 388 | 388 | double f_scale; |
|---|
| … | … | |
| 392 | 392 | vlc_bool_t b_deinterlace; |
|---|
| 393 | 393 | char *psz_deinterlace; |
|---|
| 394 | | sout_cfg_t *p_deinterlace_cfg; |
|---|
| | 394 | config_chain_t *p_deinterlace_cfg; |
|---|
| 395 | 395 | int i_threads; |
|---|
| 396 | 396 | vlc_bool_t b_high_priority; |
|---|
| 397 | 397 | vlc_bool_t b_hurry_up; |
|---|
| 398 | 398 | char *psz_vfilters[TRANSCODE_FILTERS]; |
|---|
| 399 | | sout_cfg_t *p_vfilters_cfg[TRANSCODE_FILTERS]; |
|---|
| | 399 | config_chain_t *p_vfilters_cfg[TRANSCODE_FILTERS]; |
|---|
| 400 | 400 | int i_vfilters; |
|---|
| 401 | 401 | |
|---|
| … | … | |
| 429 | 429 | char *psz_senc; |
|---|
| 430 | 430 | vlc_bool_t b_soverlay; |
|---|
| 431 | | sout_cfg_t *p_spu_cfg; |
|---|
| | 431 | config_chain_t *p_spu_cfg; |
|---|
| 432 | 432 | spu_t *p_spu; |
|---|
| 433 | 433 | |
|---|
| … | … | |
| 436 | 436 | vlc_fourcc_t i_osdcodec; /* codec osd menu (0 if not transcode) */ |
|---|
| 437 | 437 | char *psz_osdenc; |
|---|
| 438 | | sout_cfg_t *p_osd_cfg; |
|---|
| | 438 | config_chain_t *p_osd_cfg; |
|---|
| 439 | 439 | vlc_bool_t b_es_osd; /* VLC_TRUE when osd es is registered */ |
|---|
| 440 | 440 | vlc_bool_t b_sout_osd; |
|---|
| … | … | |
| 477 | 477 | p_sys->i_master_drift = 0; |
|---|
| 478 | 478 | |
|---|
| 479 | | sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| | 479 | config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, |
|---|
| 480 | 480 | p_stream->p_cfg ); |
|---|
| 481 | 481 | |
|---|
| … | … | |
| 487 | 487 | { |
|---|
| 488 | 488 | char *psz_next; |
|---|
| 489 | | psz_next = sout_CfgCreate( &p_sys->psz_aenc, &p_sys->p_audio_cfg, |
|---|
| 490 | | val.psz_string ); |
|---|
| | 489 | psz_next = config_ChainCreate( &p_sys->psz_aenc, &p_sys->p_audio_cfg, |
|---|
| | 490 | val.psz_string ); |
|---|
| 491 | 491 | if( psz_next ) free( psz_next ); |
|---|
| 492 | 492 | } |
|---|
| … | … | |
| 536 | 536 | && (p_sys->i_afilters < TRANSCODE_FILTERS) ) |
|---|
| 537 | 537 | { |
|---|
| 538 | | psz_parser = sout_CfgCreate( |
|---|
| | 538 | psz_parser = config_ChainCreate( |
|---|
| 539 | 539 | &p_sys->psz_afilters[p_sys->i_afilters], |
|---|
| 540 | 540 | &p_sys->p_afilters_cfg[p_sys->i_afilters], |
|---|
| … | … | |
| 558 | 558 | { |
|---|
| 559 | 559 | char *psz_next; |
|---|
| 560 | | psz_next = sout_CfgCreate( &p_sys->psz_venc, &p_sys->p_video_cfg, |
|---|
| | 560 | psz_next = config_ChainCreate( &p_sys->psz_venc, &p_sys->p_video_cfg, |
|---|
| 561 | 561 | val.psz_string ); |
|---|
| 562 | 562 | if( psz_next ) free( psz_next ); |
|---|
| … | … | |
| 608 | 608 | && (p_sys->i_vfilters < TRANSCODE_FILTERS) ) |
|---|
| 609 | 609 | { |
|---|
| 610 | | psz_parser = sout_CfgCreate( |
|---|
| | 610 | psz_parser = config_ChainCreate( |
|---|
| 611 | 611 | &p_sys->psz_vfilters[p_sys->i_vfilters], |
|---|
| 612 | 612 | &p_sys->p_vfilters_cfg[p_sys->i_vfilters], |
|---|
| … | … | |
| 632 | 632 | { |
|---|
| 633 | 633 | char *psz_next; |
|---|
| 634 | | psz_next = sout_CfgCreate( &p_sys->psz_deinterlace, |
|---|
| | 634 | psz_next = config_ChainCreate( &p_sys->psz_deinterlace, |
|---|
| 635 | 635 | &p_sys->p_deinterlace_cfg, |
|---|
| 636 | 636 | val.psz_string ); |
|---|
| … | … | |
| 700 | 700 | { |
|---|
| 701 | 701 | char *psz_next; |
|---|
| 702 | | psz_next = sout_CfgCreate( &p_sys->psz_senc, &p_sys->p_spu_cfg, |
|---|
| | 702 | psz_next = config_ChainCreate( &p_sys->psz_senc, &p_sys->p_spu_cfg, |
|---|
| 703 | 703 | val.psz_string ); |
|---|
| 704 | 704 | if( psz_next ) free( psz_next ); |
|---|
| … | … | |
| 746 | 746 | char *psz_next; |
|---|
| 747 | 747 | |
|---|
| 748 | | psz_next = sout_CfgCreate( &p_sys->psz_osdenc, |
|---|
| | 748 | psz_next = config_ChainCreate( &p_sys->psz_osdenc, |
|---|
| 749 | 749 | &p_sys->p_osd_cfg, strdup( "dvbsub") ); |
|---|
| 750 | 750 | if( psz_next ) free( psz_next ); |
|---|
| … | … | |
| 796 | 796 | while( p_sys->p_audio_cfg != NULL ) |
|---|
| 797 | 797 | { |
|---|
| 798 | | sout_cfg_t *p_next = p_sys->p_audio_cfg->p_next; |
|---|
| | 798 | config_chain_t *p_next = p_sys->p_audio_cfg->p_next; |
|---|
| 799 | 799 | |
|---|
| 800 | 800 | if( p_sys->p_audio_cfg->psz_name ) |
|---|
| … | … | |
| 810 | 810 | while( p_sys->p_video_cfg != NULL ) |
|---|
| 811 | 811 | { |
|---|
| 812 | | sout_cfg_t *p_next = p_sys->p_video_cfg->p_next; |
|---|
| | 812 | config_chain_t *p_next = p_sys->p_video_cfg->p_next; |
|---|
| 813 | 813 | |
|---|
| 814 | 814 | if( p_sys->p_video_cfg->psz_name ) |
|---|
| … | … | |
| 824 | 824 | while( p_sys->p_deinterlace_cfg != NULL ) |
|---|
| 825 | 825 | { |
|---|
| 826 | | sout_cfg_t *p_next = p_sys->p_deinterlace_cfg->p_next; |
|---|
| | 826 | config_chain_t *p_next = p_sys->p_deinterlace_cfg->p_next; |
|---|
| 827 | 827 | |
|---|
| 828 | 828 | if( p_sys->p_deinterlace_cfg->psz_name ) |
|---|
| … | … | |
| 838 | 838 | while( p_sys->p_spu_cfg != NULL ) |
|---|
| 839 | 839 | { |
|---|
| 840 | | sout_cfg_t *p_next = p_sys->p_spu_cfg->p_next; |
|---|
| | 840 | config_chain_t *p_next = p_sys->p_spu_cfg->p_next; |
|---|
| 841 | 841 | |
|---|
| 842 | 842 | if( p_sys->p_spu_cfg->psz_name ) |
|---|
| … | … | |
| 854 | 854 | while( p_sys->p_osd_cfg != NULL ) |
|---|
| 855 | 855 | { |
|---|
| 856 | | sout_cfg_t *p_next = p_sys->p_osd_cfg->p_next; |
|---|
| | 856 | config_chain_t *p_next = p_sys->p_osd_cfg->p_next; |
|---|
| 857 | 857 | |
|---|
| 858 | 858 | if( p_sys->p_osd_cfg->psz_name ) |
|---|
| r1fa3f9d |
r62fffad |
|
| 168 | 168 | /* needed to get options passed in transcode using the |
|---|
| 169 | 169 | * adjust{name=value} syntax */ |
|---|
| 170 | | sout_CfgParse( p_filter, "", ppsz_filter_options, |
|---|
| | 170 | config_ChainParse( p_filter, "", ppsz_filter_options, |
|---|
| 171 | 171 | p_filter->p_cfg ); |
|---|
| 172 | 172 | |
|---|
| rf485214 |
r62fffad |
|
| 2206 | 2206 | p_vout->render.i_chroma = p_filter->fmt_in.video.i_chroma; |
|---|
| 2207 | 2207 | |
|---|
| 2208 | | sout_CfgParse( p_filter, FILTER_CFG_PREFIX, ppsz_filter_options, |
|---|
| | 2208 | config_ChainParse( p_filter, FILTER_CFG_PREFIX, ppsz_filter_options, |
|---|
| 2209 | 2209 | p_filter->p_cfg ); |
|---|
| 2210 | 2210 | var_Get( p_filter, FILTER_CFG_PREFIX "mode", &val ); |
|---|
| rf485214 |
r62fffad |
|
| 138 | 138 | p_filter->p_sys->p_pre_hough = NULL; |
|---|
| 139 | 139 | |
|---|
| 140 | | sout_CfgParse( p_filter, FILTER_PREFIX, ppsz_filter_options, |
|---|
| | 140 | config_ChainParse( p_filter, FILTER_PREFIX, ppsz_filter_options, |
|---|
| 141 | 141 | p_filter->p_cfg ); |
|---|
| 142 | 142 | |
|---|
| r6ff95ea |
r62fffad |
|
| 325 | 325 | misc/cpu.c \ |
|---|
| 326 | 326 | misc/configuration.c \ |
|---|
| | 327 | misc/configuration_chain.c \ |
|---|
| 327 | 328 | misc/image.c \ |
|---|
| 328 | 329 | misc/iso_lang.c \ |
|---|
| r8923568 |
r62fffad |
|
| 43 | 43 | * Local prototypes |
|---|
| 44 | 44 | *****************************************************************************/ |
|---|
| 45 | | static void sout_CfgDestroy( sout_cfg_t * ); |
|---|
| 46 | | |
|---|
| 47 | 45 | #define sout_stream_url_to_chain( p, s ) \ |
|---|
| 48 | 46 | _sout_stream_url_to_chain( VLC_OBJECT(p), s ) |
|---|
| … | … | |
| 287 | 285 | } |
|---|
| 288 | 286 | |
|---|
| 289 | | psz_next = sout_CfgCreate( &p_access->psz_access, &p_access->p_cfg, |
|---|
| 290 | | psz_access ); |
|---|
| | 287 | psz_next = config_ChainCreate( &p_access->psz_access, &p_access->p_cfg, |
|---|
| | 288 | psz_access ); |
|---|
| 291 | 289 | if( psz_next ) |
|---|
| 292 | 290 | { |
|---|
| … | … | |
| 332 | 330 | free( p_access->psz_access ); |
|---|
| 333 | 331 | |
|---|
| 334 | | sout_CfgDestroy( p_access->p_cfg ); |
|---|
| | 332 | config_ChainDestroy( p_access->p_cfg ); |
|---|
| 335 | 333 | |
|---|
| 336 | 334 | free( p_access->psz_name ); |
|---|
| … | … | |
| 402 | 400 | |
|---|
| 403 | 401 | p_mux->p_sout = p_sout; |
|---|
| 404 | | psz_next = sout_CfgCreate( &p_mux->psz_mux, &p_mux->p_cfg, psz_mux ); |
|---|
| | 402 | psz_next = config_ChainCreate( &p_mux->psz_mux, &p_mux->p_cfg, psz_mux ); |
|---|
| 405 | 403 | if( psz_next ) free( psz_next ); |
|---|
| 406 | 404 | |
|---|
| … | … | |
| 487 | 485 | free( p_mux->psz_mux ); |
|---|
| 488 | 486 | |
|---|
| 489 | | <
|---|