Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
6192caae
Commit
6192caae
authored
Sep 13, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Handle parameters in streaming profiles
* Remove i18n_string stuff
parent
5a3ae4a1
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
209 additions
and
109 deletions
+209
-109
include/vlc_common.h
include/vlc_common.h
+2
-2
include/vlc_streaming.h
include/vlc_streaming.h
+74
-49
include/vlc_strings.h
include/vlc_strings.h
+0
-32
src/stream_output/profiles.c
src/stream_output/profiles.c
+133
-26
No files found.
include/vlc_common.h
View file @
6192caae
...
@@ -335,6 +335,8 @@ typedef struct announce_method_t announce_method_t;
...
@@ -335,6 +335,8 @@ typedef struct announce_method_t announce_method_t;
typedef
struct
announce_handler_t
announce_handler_t
;
typedef
struct
announce_handler_t
announce_handler_t
;
typedef
struct
sap_handler_t
sap_handler_t
;
typedef
struct
sap_handler_t
sap_handler_t
;
typedef
struct
sout_param_t
sout_param_t
;
typedef
struct
sout_pcat_t
sout_pcat_t
;
typedef
struct
sout_std_t
sout_std_t
;
typedef
struct
sout_std_t
sout_std_t
;
typedef
struct
sout_display_t
sout_display_t
;
typedef
struct
sout_display_t
sout_display_t
;
typedef
struct
sout_duplicate_t
sout_duplicate_t
;
typedef
struct
sout_duplicate_t
sout_duplicate_t
;
...
@@ -369,8 +371,6 @@ typedef struct iso639_lang_t iso639_lang_t;
...
@@ -369,8 +371,6 @@ typedef struct iso639_lang_t iso639_lang_t;
typedef
struct
device_t
device_t
;
typedef
struct
device_t
device_t
;
typedef
struct
device_probe_t
device_probe_t
;
typedef
struct
device_probe_t
device_probe_t
;
typedef
struct
probe_sys_t
probe_sys_t
;
typedef
struct
probe_sys_t
probe_sys_t
;
typedef
struct
localized_string_t
localized_string_t
;
typedef
struct
i18n_string_t
i18n_string_t
;
/* block */
/* block */
typedef
struct
block_t
block_t
;
typedef
struct
block_t
block_t
;
...
...
include/vlc_streaming.h
View file @
6192caae
...
@@ -26,6 +26,10 @@
...
@@ -26,6 +26,10 @@
#include <vlc/vlc.h>
#include <vlc/vlc.h>
/***********************************************************************
* Predefined lists of streaming data
***********************************************************************/
#ifdef WIN32
#ifdef WIN32
#define VCODECS_NUMBER 13
#define VCODECS_NUMBER 13
#else
#else
...
@@ -38,26 +42,11 @@
...
@@ -38,26 +42,11 @@
#define MUXERS_NUMBER 10
#define MUXERS_NUMBER 10
enum
enum
{
{
MUX_PS
,
MUX_PS
,
MUX_TS
,
MUX_MPEG
,
MUX_OGG
,
MUX_RAW
,
MUX_TS
,
MUX_ASF
,
MUX_AVI
,
MUX_MP4
,
MUX_MOV
,
MUX_WAV
,
MUX_MPEG
,
MUX_OGG
,
MUX_RAW
,
MUX_ASF
,
MUX_AVI
,
MUX_MP4
,
MUX_MOV
,
MUX_WAV
,
};
};
enum
enum
{
ACCESS_HTTP
,
ACCESS_UDP
,
ACCESS_MMS
,
ACCESS_RTP
,
ACCESS_FILE
};
{
ACCESS_HTTP
,
ACCESS_UDP
,
ACCESS_MMS
,
ACCESS_RTP
,
ACCESS_FILE
};
struct
codec_desc_t
{
struct
codec_desc_t
{
char
*
psz_display
;
char
*
psz_display
;
...
@@ -93,7 +82,39 @@ struct mux_desc_t {
...
@@ -93,7 +82,39 @@ struct mux_desc_t {
//static const char *abitrates_array[] =
//static const char *abitrates_array[] =
//{ "512", "256", "192", "128", "96", "64", "32", "16" } ;
//{ "512", "256", "192", "128", "96", "64", "32", "16" } ;
//
/***********************************************************************
* Streaming profiles
***********************************************************************/
/****************** Parameters handling *********************/
struct
sout_param_t
{
int
i_type
;
int
i_element
;
char
*
psz_id
;
char
*
psz_string
;
vlc_value_t
value
;
};
struct
sout_pcat_t
{
char
*
psz_name
;
int
i_params
;
sout_param_t
**
pp_params
;
};
void
streaming_ParameterApply
(
sout_param_t
*
p_param
,
char
**
ppsz_dest
,
int
*
pi_dest
,
float
*
pf_dest
,
vlc_bool_t
*
pb_dest
);
/******** Module types definitions and parametrable elements ***************/
/* Transcode */
enum
{
I_VB
,
I_AB
,
I_CHANNELS
,
F_SCALE
,
B_SOVERLAY
,
PSZ_VC
,
PSZ_AC
,
PSZ_SC
,
PSZ_VE
,
PSZ_AE
};
struct
sout_transcode_t
struct
sout_transcode_t
{
{
int
i_vb
,
i_ab
,
i_channels
;
int
i_vb
,
i_ab
,
i_channels
;
...
@@ -101,18 +122,27 @@ struct sout_transcode_t
...
@@ -101,18 +122,27 @@ struct sout_transcode_t
vlc_bool_t
b_soverlay
;
vlc_bool_t
b_soverlay
;
char
*
psz_vcodec
,
*
psz_acodec
,
*
psz_scodec
,
*
psz_venc
,
*
psz_aenc
;
char
*
psz_vcodec
,
*
psz_acodec
,
*
psz_scodec
,
*
psz_venc
,
*
psz_aenc
;
char
*
psz_additional
;
char
*
psz_additional
;
int
i_params
;
sout_param_t
**
pp_params
;
};
};
void
streaming_TranscodeParametersApply
(
sout_transcode_t
*
p_module
);
/* Standard */
enum
{
PSZ_MUX
,
PSZ_ACCESS
,
PSZ_URL
,
PSZ_NAME
,
PSZ_GROUP
};
struct
sout_std_t
struct
sout_std_t
{
{
char
*
psz_mux
,
*
psz_access
;
char
*
psz_mux
,
*
psz_access
;
char
*
psz_url
,
*
psz_name
,
*
psz_group
;
char
*
psz_url
,
*
psz_name
,
*
psz_group
;
int
i_params
;
sout_param_t
**
pp_params
;
};
};
void
streaming_StdParametersApply
(
sout_std_t
*
p_module
);
/* Display */
struct
sout_display_t
struct
sout_display_t
{
{
};
};
/* Duplicate */
struct
sout_duplicate_t
struct
sout_duplicate_t
{
{
int
i_children
,
i_conditions
;
int
i_children
,
i_conditions
;
...
@@ -120,6 +150,7 @@ struct sout_duplicate_t
...
@@ -120,6 +150,7 @@ struct sout_duplicate_t
char
**
ppsz_conditions
;
char
**
ppsz_conditions
;
};
};
/******* Generic profile structures and manipulation functions ********/
typedef
union
typedef
union
{
{
sout_transcode_t
*
p_transcode
;
sout_transcode_t
*
p_transcode
;
...
@@ -128,7 +159,6 @@ typedef union
...
@@ -128,7 +159,6 @@ typedef union
sout_display_t
*
p_display
;
sout_display_t
*
p_display
;
}
sout_module_type_t
;
}
sout_module_type_t
;
struct
sout_module_t
struct
sout_module_t
{
{
int
i_type
;
int
i_type
;
...
@@ -136,14 +166,8 @@ struct sout_module_t
...
@@ -136,14 +166,8 @@ struct sout_module_t
sout_module_t
*
p_parent
;
sout_module_t
*
p_parent
;
};
};
enum
enum
{
SOUT_MOD_TRANSCODE
,
SOUT_MOD_STD
,
SOUT_MOD_RTP
,
SOUT_MOD_DUPLICATE
,
{
SOUT_MOD_DISPLAY
};
SOUT_MOD_TRANSCODE
,
SOUT_MOD_STD
,
SOUT_MOD_RTP
,
SOUT_MOD_DUPLICATE
,
SOUT_MOD_DISPLAY
};
struct
sout_chain_t
struct
sout_chain_t
{
{
...
@@ -152,8 +176,27 @@ struct sout_chain_t
...
@@ -152,8 +176,27 @@ struct sout_chain_t
int
i_options
;
int
i_options
;
char
**
ppsz_options
;
char
**
ppsz_options
;
int
i_pcats
;
sout_pcat_t
**
pp_pcats
;
};
};
static
inline
sout_chain_t
*
streaming_ChainNew
()
{
DECMALLOC_NULL
(
p_chain
,
sout_chain_t
);
memset
(
p_chain
,
0
,
sizeof
(
sout_chain_t
)
);
p_chain
->
i_options
=
0
;
return
p_chain
;
}
struct
streaming_profile_t
{
char
*
psz_title
;
char
*
psz_description
;
sout_chain_t
*
p_chain
;
};
/**************** GUI interaction *****************/
struct
sout_gui_descr_t
struct
sout_gui_descr_t
{
{
/* Access */
/* Access */
...
@@ -176,21 +219,7 @@ struct sout_gui_descr_t
...
@@ -176,21 +219,7 @@ struct sout_gui_descr_t
int
i_ttl
;
int
i_ttl
;
};
};
struct
streaming_profile_t
/***************** Profile parsing ***********************/
{
i18n_string_t
*
p_title
;
i18n_string_t
*
p_description
;
sout_chain_t
*
p_chain
;
};
static
inline
sout_chain_t
*
streaming_ChainNew
()
{
DECMALLOC_NULL
(
p_chain
,
sout_chain_t
);
memset
(
p_chain
,
0
,
sizeof
(
sout_chain_t
)
);
p_chain
->
i_options
=
0
;
return
p_chain
;
}
struct
profile_parser_t
struct
profile_parser_t
{
{
...
@@ -198,8 +227,4 @@ struct profile_parser_t
...
@@ -198,8 +227,4 @@ struct profile_parser_t
streaming_profile_t
*
p_profile
;
streaming_profile_t
*
p_profile
;
};
};
//VLC_XEXPORT( char *, streaming_ChainToPsz, (sout_chain_t * ) );
#endif
#endif
include/vlc_strings.h
View file @
6192caae
...
@@ -34,38 +34,6 @@
...
@@ -34,38 +34,6 @@
VLC_EXPORT
(
void
,
resolve_xml_special_chars
,
(
char
*
psz_value
)
);
VLC_EXPORT
(
void
,
resolve_xml_special_chars
,
(
char
*
psz_value
)
);
VLC_EXPORT
(
char
*
,
convert_xml_special_chars
,
(
const
char
*
psz_content
)
);
VLC_EXPORT
(
char
*
,
convert_xml_special_chars
,
(
const
char
*
psz_content
)
);
struct
localized_string_t
{
char
*
psz_lang
;
char
*
psz_text
;
};
struct
i18n_string_t
{
int
i_langs
;
localized_string_t
**
pp_langs
;
};
static
inline
void
i18n_AddLang
(
i18n_string_t
*
p_src
,
char
*
psz_lang
,
char
*
psz_text
)
{
DECMALLOC_VOID
(
pl10n
,
localized_string_t
);
pl10n
->
psz_lang
=
strdup
(
psz_lang
);
pl10n
->
psz_text
=
strdup
(
psz_text
);
INSERT_ELEM
(
p_src
->
pp_langs
,
p_src
->
i_langs
,
p_src
->
i_langs
,
pl10n
);
};
static
inline
char
*
i18n_Get
(
i18n_string_t
*
p_src
,
char
*
psz_lang
)
{
int
i
;
for
(
i
=
0
;
i
<
p_src
->
i_langs
;
i
++
)
{
if
(
!
strcmp
(
p_src
->
pp_langs
[
i
]
->
psz_lang
,
psz_lang
)
)
return
p_src
->
pp_langs
[
i
]
->
psz_text
;
}
return
strdup
(
""
);
};
/**
/**
* @}
* @}
*/
*/
...
...
src/stream_output/profiles.c
View file @
6192caae
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* Copyright (C) 2006 the VideoLAN team
* Copyright (C) 2006 the VideoLAN team
* $Id$
* $Id$
*
*
* Authors: Cl
�
ent Stenac <zorglub@videolan.org>
* Authors: Cl
ém
ent Stenac <zorglub@videolan.org>
*
*
* This program is free software; you can redistribute it and/or modify
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* it under the terms of the GNU General Public License as published by
...
@@ -37,6 +37,9 @@
...
@@ -37,6 +37,9 @@
/**********************************************************************
/**********************************************************************
* General chain manipulation
* General chain manipulation
**********************************************************************/
**********************************************************************/
/** Add a new duplicate element to a streaming chain
* \return the new element
*/
sout_duplicate_t
*
streaming_ChainAddDup
(
sout_chain_t
*
p_chain
)
sout_duplicate_t
*
streaming_ChainAddDup
(
sout_chain_t
*
p_chain
)
{
{
DECMALLOC_NULL
(
p_module
,
sout_module_t
);
DECMALLOC_NULL
(
p_module
,
sout_module_t
);
...
@@ -44,11 +47,13 @@ sout_duplicate_t *streaming_ChainAddDup( sout_chain_t *p_chain )
...
@@ -44,11 +47,13 @@ sout_duplicate_t *streaming_ChainAddDup( sout_chain_t *p_chain )
p_module
->
i_type
=
SOUT_MOD_DUPLICATE
;
p_module
->
i_type
=
SOUT_MOD_DUPLICATE
;
DUPM
->
i_children
=
0
;
DUPM
->
i_children
=
0
;
DUPM
->
pp_children
=
NULL
;
DUPM
->
pp_children
=
NULL
;
INSERT_ELEM
(
p_chain
->
pp_modules
,
p_chain
->
i_modules
,
p_chain
->
i_modules
,
TAB_APPEND
(
p_chain
->
i_modules
,
p_chain
->
pp_modules
,
p_module
);
p_module
);
return
DUPM
;
return
p_module
->
typed
.
p_duplicate
;
}
}
/** Add a new standard element to a streaming chain
* \return the new element
*/
sout_std_t
*
streaming_ChainAddStd
(
sout_chain_t
*
p_chain
,
char
*
psz_access
,
sout_std_t
*
streaming_ChainAddStd
(
sout_chain_t
*
p_chain
,
char
*
psz_access
,
char
*
psz_mux
,
char
*
psz_url
)
char
*
psz_mux
,
char
*
psz_url
)
{
{
...
@@ -58,19 +63,24 @@ sout_std_t *streaming_ChainAddStd( sout_chain_t *p_chain, char *psz_access,
...
@@ -58,19 +63,24 @@ sout_std_t *streaming_ChainAddStd( sout_chain_t *p_chain, char *psz_access,
STDM
->
psz_mux
=
strdup
(
psz_mux
);
STDM
->
psz_mux
=
strdup
(
psz_mux
);
STDM
->
psz_access
=
strdup
(
psz_access
);
STDM
->
psz_access
=
strdup
(
psz_access
);
STDM
->
psz_url
=
strdup
(
psz_url
);
STDM
->
psz_url
=
strdup
(
psz_url
);
INSERT_ELEM
(
p_chain
->
pp_modules
,
p_chain
->
i_modules
,
p_chain
->
i_modules
,
TAB_APPEND
(
p_chain
->
i_modules
,
p_chain
->
pp_modules
,
p_module
);
p_module
);
return
STDM
;
return
STDM
;
}
}
/** Add a new display element to a streaming chain
* \return the new element
*/
sout_display_t
*
streaming_ChainAddDisplay
(
sout_chain_t
*
p_chain
)
sout_display_t
*
streaming_ChainAddDisplay
(
sout_chain_t
*
p_chain
)
{
{
DECMALLOC_NULL
(
p_module
,
sout_module_t
);
DECMALLOC_NULL
(
p_module
,
sout_module_t
);
MALLOC_NULL
(
DISM
,
sout_display_t
);
MALLOC_NULL
(
DISM
,
sout_display_t
);
p_module
->
i_type
=
SOUT_MOD_DISPLAY
;
p_module
->
i_type
=
SOUT_MOD_DISPLAY
;
TAB_APPEND
(
p_chain
->
i_modules
,
p_chain
->
pp_modules
,
p_module
);
return
DISM
;
return
DISM
;
}
}
/** Add a new transcode element to a streaming chain
* \return the new element
*/
sout_transcode_t
*
streaming_ChainAddTranscode
(
sout_chain_t
*
p_chain
,
sout_transcode_t
*
streaming_ChainAddTranscode
(
sout_chain_t
*
p_chain
,
char
*
psz_vcodec
,
char
*
psz_acodec
,
char
*
psz_scodec
,
char
*
psz_vcodec
,
char
*
psz_acodec
,
char
*
psz_scodec
,
int
i_vb
,
float
f_scale
,
int
i_ab
,
int
i_channels
,
int
i_vb
,
float
f_scale
,
int
i_ab
,
int
i_channels
,
...
@@ -87,17 +97,16 @@ sout_transcode_t *streaming_ChainAddTranscode( sout_chain_t *p_chain,
...
@@ -87,17 +97,16 @@ sout_transcode_t *streaming_ChainAddTranscode( sout_chain_t *p_chain,
TRAM
->
i_vb
=
i_vb
;
TRAM
->
i_ab
=
i_ab
;
TRAM
->
f_scale
=
f_scale
;
TRAM
->
i_vb
=
i_vb
;
TRAM
->
i_ab
=
i_ab
;
TRAM
->
f_scale
=
f_scale
;
TRAM
->
i_channels
=
i_channels
;
TRAM
->
b_soverlay
=
b_soverlay
;
TRAM
->
i_channels
=
i_channels
;
TRAM
->
b_soverlay
=
b_soverlay
;
if
(
TRAM
->
psz_additional
)
TRAM
->
psz_additional
=
strdup
(
psz_additional
);
if
(
TRAM
->
psz_additional
)
TRAM
->
psz_additional
=
strdup
(
psz_additional
);
TAB_APPEND
(
p_chain
->
i_modules
,
p_chain
->
pp_modules
,
p_module
);
return
TRAM
;
return
TRAM
;
}
}
/** Add a new clean child chain to an existing duplicate element */
void
streaming_DupAddChild
(
sout_duplicate_t
*
p_dup
)
void
streaming_DupAddChild
(
sout_duplicate_t
*
p_dup
)
{
{
if
(
p_dup
)
assert
(
p_dup
);
{
sout_chain_t
*
p_child
=
streaming_ChainNew
();
sout_chain_t
*
p_child
=
streaming_ChainNew
();
INSERT_ELEM
(
p_dup
->
pp_children
,
p_dup
->
i_children
,
TAB_APPEND
(
p_dup
->
i_children
,
p_dup
->
pp_children
,
p_child
);
p_dup
->
i_children
,
p_child
);
}
}
}
#define DUP_OR_CHAIN p_dup ? p_dup->pp_children[p_dup->i_children-1] : p_chain
#define DUP_OR_CHAIN p_dup ? p_dup->pp_children[p_dup->i_children-1] : p_chain
...
@@ -108,6 +117,7 @@ void streaming_DupAddChild( sout_duplicate_t *p_dup )
...
@@ -108,6 +117,7 @@ void streaming_DupAddChild( sout_duplicate_t *p_dup )
psz_opt );\
psz_opt );\
free( psz_opt ); }
free( psz_opt ); }
/** Clean up a chain (recursively if it has some children) */
void
streaming_ChainClean
(
sout_chain_t
*
p_chain
)
void
streaming_ChainClean
(
sout_chain_t
*
p_chain
)
{
{
int
i
,
j
;
int
i
,
j
;
...
@@ -122,9 +132,7 @@ void streaming_ChainClean( sout_chain_t *p_chain )
...
@@ -122,9 +132,7 @@ void streaming_ChainClean( sout_chain_t *p_chain )
case
SOUT_MOD_DUPLICATE
:
case
SOUT_MOD_DUPLICATE
:
if
(
DUPM
->
i_children
==
0
)
break
;
if
(
DUPM
->
i_children
==
0
)
break
;
for
(
j
=
DUPM
->
i_children
-
1
;
j
>=
0
;
j
--
)
for
(
j
=
DUPM
->
i_children
-
1
;
j
>=
0
;
j
--
)
{
streaming_ChainClean
(
DUPM
->
pp_children
[
j
]
);
streaming_ChainClean
(
DUPM
->
pp_children
[
j
]
);
}
break
;
break
;
case
SOUT_MOD_STD
:
case
SOUT_MOD_STD
:
FREENULL
(
STDM
->
psz_url
);
FREENULL
(
STDM
->
psz_url
);
...
@@ -146,6 +154,105 @@ void streaming_ChainClean( sout_chain_t *p_chain )
...
@@ -146,6 +154,105 @@ void streaming_ChainClean( sout_chain_t *p_chain )
}
}
}
}
/**********************************************************************
* Parameters handling
**********************************************************************/
#define APPLY_PSZ( element, field ) case element: \
streaming_ParameterApply( p_param, &p_module->field, NULL, NULL, NULL ); break;
#define APPLY_INT( element, field ) case element: \
streaming_ParameterApply( p_param, NULL, &p_module->field, NULL, NULL ); break;
#define APPLY_FLOAT( element, field ) case element: \
streaming_ParameterApply( p_param, NULL, NULL, &p_module->field, NULL ); break;
#define APPLY_BOOL( element, field ) case element: \
streaming_ParameterApply( p_param, NULL, NULL, NULL, &p_module->field ); break;
/** Apply the parameters for the Std module. It will copy the values from
* the parameters to the fields themselves
*/
void
streaming_StdParametersApply
(
sout_std_t
*
p_module
)
{
int
i
;
for
(
i
=
0
;
i
<
p_module
->
i_params
;
i
++
)
{
sout_param_t
*
p_param
=
p_module
->
pp_params
[
i
];
switch
(
p_param
->
i_element
)
{
APPLY_PSZ
(
PSZ_MUX
,
psz_mux
);
APPLY_PSZ
(
PSZ_ACCESS
,
psz_access
);
APPLY_PSZ
(
PSZ_URL
,
psz_url
);
APPLY_PSZ
(
PSZ_NAME
,
psz_name
);
APPLY_PSZ
(
PSZ_GROUP
,
psz_group
);
}
}
}
/** Apply the parameters for the Transcode module. It will copy the values from
* the parameters to the fields themselves
*/
void
streaming_TranscodeParametersApply
(
sout_transcode_t
*
p_module
)
{
int
i
;
for
(
i
=
0
;
i
<
p_module
->
i_params
;
i
++
)
{
sout_param_t
*
p_param
=
p_module
->
pp_params
[
i
];
switch
(
p_param
->
i_element
)
{
APPLY_INT
(
I_VB
,
i_vb
);
APPLY_INT
(
I_AB
,
i_ab
);
APPLY_INT
(
I_CHANNELS
,
i_channels
)
;
APPLY_FLOAT
(
F_SCALE
,
f_scale
);
APPLY_BOOL
(
B_SOVERLAY
,
b_soverlay
);
APPLY_PSZ
(
PSZ_VC
,
psz_vcodec
);
APPLY_PSZ
(
PSZ_AC
,
psz_acodec
);
APPLY_PSZ
(
PSZ_SC
,
psz_scodec
);
APPLY_PSZ
(
PSZ_VE
,
psz_venc
);
APPLY_PSZ
(
PSZ_AE
,
psz_aenc
);
}
}
}
/** Apply a single parameter
* \param p_param the parameter to apply
* \param ppsz_dest target string, if param is a string
* \param pi_dest target int, if param is an integer
* \param pf_dest target float, if param is a float
* \param pb_dest target bool, if param is a bool
*/
void
streaming_ParameterApply
(
sout_param_t
*
p_param
,
char
**
ppsz_dest
,
int
*
pi_dest
,
float
*
pf_dest
,
vlc_bool_t
*
pb_dest
)
{
/* Todo : Handle psz_string like formatting */
if
(
p_param
->
psz_string
)
{
assert
(
ppsz_dest
);
fprintf
(
stderr
,
"Unsupported !
\n
"
);
}
else
{
switch
(
p_param
->
i_type
)
{
case
VLC_VAR_INTEGER
:
assert
(
pi_dest
);
*
pi_dest
=
p_param
->
value
.
i_int
;
break
;
case
VLC_VAR_FLOAT
:
assert
(
pf_dest
);
*
pf_dest
=
p_param
->
value
.
f_float
;
break
;
case
VLC_VAR_STRING
:
assert
(
ppsz_dest
);
FREENULL
(
**
ppsz_dest
);
*
ppsz_dest
=
p_param
->
value
.
psz_string
?
strdup
(
p_param
->
value
.
psz_string
)
:
NULL
;
break
;
case
VLC_VAR_BOOL
:
assert
(
pb_dest
);
*
pb_dest
=
p_param
->
value
.
b_bool
;
break
;
}
}
}
/**********************************************************************
/**********************************************************************
* Interaction with streaming GUI descriptors
* Interaction with streaming GUI descriptors
**********************************************************************/
**********************************************************************/
...
@@ -379,7 +486,7 @@ char * streaming_ChainToPsz( sout_chain_t *p_chain )
...
@@ -379,7 +486,7 @@ char * streaming_ChainToPsz( sout_chain_t *p_chain )
/**
/**
* List the available profiles. Fills the pp_profiles list with preinitialized
* List the available profiles. Fills the pp_profiles list with preinitialized
* values.
Only metadata is decoded
* values.
* \param p_this vlc object
* \param p_this vlc object
* \param pi_profiles number of listed profiles
* \param pi_profiles number of listed profiles
* \param pp_profiles array of profiles
* \param pp_profiles array of profiles
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment