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
b2147ab9
Commit
b2147ab9
authored
Oct 22, 2004
by
Christophe Massiot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* src/input: Added a --programs configuration option, allowing to select
several coma-separated programs.
parent
289b82b0
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
67 additions
and
10 deletions
+67
-10
include/vlc_es_out.h
include/vlc_es_out.h
+2
-1
src/input/es_out.c
src/input/es_out.c
+19
-2
src/input/input.c
src/input/input.c
+34
-7
src/input/var.c
src/input/var.c
+5
-0
src/libvlc.h
src/libvlc.h
+7
-0
No files found.
include/vlc_es_out.h
View file @
b2147ab9
...
...
@@ -33,7 +33,8 @@ enum es_out_mode_e
{
ES_OUT_MODE_NONE
,
/* don't select anything */
ES_OUT_MODE_ALL
,
/* eg for stream output */
ES_OUT_MODE_AUTO
/* best audio/video or for input follow audio-channel, spu-channel */
ES_OUT_MODE_AUTO
,
/* best audio/video or for input follow audio-channel, spu-channel */
ES_OUT_MODE_PARTIAL
/* select programs given after --programs */
};
enum
es_out_query_e
...
...
src/input/es_out.c
View file @
b2147ab9
...
...
@@ -73,6 +73,7 @@ struct es_out_sys_t
/* all programs */
int
i_pgrm
;
es_out_pgrm_t
**
pgrm
;
es_out_pgrm_t
**
pp_selected_pgrm
;
/* --programs */
es_out_pgrm_t
*
p_pgrm
;
/* Master program */
/* all es */
...
...
@@ -423,7 +424,7 @@ static es_out_id_t *EsOutAdd( es_out_t *out, es_format_t *fmt )
if
(
fmt
->
i_group
<
0
)
{
msg_Err
(
p_input
,
"inva
ku
d group number"
);
msg_Err
(
p_input
,
"inva
li
d group number"
);
return
NULL
;
}
...
...
@@ -619,6 +620,22 @@ static void EsOutSelect( es_out_t *out, es_out_id_t *es, vlc_bool_t b_force )
if
(
!
es
->
p_dec
)
EsSelect
(
out
,
es
);
}
else
if
(
p_sys
->
i_mode
==
ES_OUT_MODE_PARTIAL
)
{
vlc_value_t
val
;
int
i
;
var_Get
(
p_sys
->
p_input
,
"programs"
,
&
val
);
for
(
i
=
0
;
i
<
val
.
p_list
->
i_count
;
i
++
)
{
if
(
val
.
p_list
->
p_values
[
i
].
i_int
==
es
->
p_pgrm
->
i_id
||
b_force
)
{
if
(
!
es
->
p_dec
)
EsSelect
(
out
,
es
);
break
;
}
}
var_Change
(
p_sys
->
p_input
,
"programs"
,
VLC_VAR_FREELIST
,
&
val
,
NULL
);
}
else
if
(
p_sys
->
i_mode
==
ES_OUT_MODE_AUTO
)
{
int
i_wanted
=
-
1
;
...
...
@@ -843,7 +860,7 @@ static int EsOutControl( es_out_t *out, int i_query, va_list args )
case
ES_OUT_SET_MODE
:
i
=
(
int
)
va_arg
(
args
,
int
);
if
(
i
==
ES_OUT_MODE_NONE
||
i
==
ES_OUT_MODE_ALL
||
i
==
ES_OUT_MODE_AUTO
)
i
==
ES_OUT_MODE_AUTO
||
i
==
ES_OUT_MODE_PARTIAL
)
{
p_sys
->
i_mode
=
i
;
...
...
src/input/input.c
View file @
b2147ab9
...
...
@@ -514,6 +514,7 @@ static int Init( input_thread_t * p_input )
vlc_value_t
val
;
double
f_fps
;
vlc_meta_t
*
p_meta
,
*
p_meta_user
;
int
i_es_out_mode
;
int
i
,
i_delay
;
/* Initialize optional stream output. (before access/demuxer) */
...
...
@@ -745,20 +746,45 @@ static int Init( input_thread_t * p_input )
/* Set up es_out */
es_out_Control
(
p_input
->
p_es_out
,
ES_OUT_SET_ACTIVE
,
VLC_TRUE
);
val
.
b_bool
=
VLC_FALSE
;
i_es_out_mode
=
ES_OUT_MODE_AUTO
;
val
.
p_list
=
NULL
;
if
(
p_input
->
p_sout
)
{
var_Get
(
p_input
,
"sout-all"
,
&
val
);
if
(
val
.
b_bool
)
{
i_es_out_mode
=
ES_OUT_MODE_ALL
;
val
.
p_list
=
NULL
;
}
else
{
var_Get
(
p_input
,
"programs"
,
&
val
);
if
(
val
.
p_list
&&
val
.
p_list
->
i_count
)
{
i_es_out_mode
=
ES_OUT_MODE_PARTIAL
;
/* Note : we should remove the "program" callback. */
}
else
var_Change
(
p_input
,
"programs"
,
VLC_VAR_FREELIST
,
&
val
,
NULL
);
}
}
es_out_Control
(
p_input
->
p_es_out
,
ES_OUT_SET_MODE
,
val
.
b_bool
?
ES_OUT_MODE_ALL
:
ES_OUT_MODE_AUTO
);
es_out_Control
(
p_input
->
p_es_out
,
ES_OUT_SET_MODE
,
i_es_out_mode
);
/* Inform the demuxer about waited group (needed only for DVB) */
if
(
val
.
b_bool
)
demux2_Control
(
p_input
->
input
.
p_demux
,
DEMUX_SET_GROUP
,
-
1
);
if
(
i_es_out_mode
==
ES_OUT_MODE_ALL
)
{
demux2_Control
(
p_input
->
input
.
p_demux
,
DEMUX_SET_GROUP
,
-
1
,
NULL
);
}
else
if
(
i_es_out_mode
==
ES_OUT_MODE_PARTIAL
)
{
demux2_Control
(
p_input
->
input
.
p_demux
,
DEMUX_SET_GROUP
,
-
1
,
val
.
p_list
);
}
else
{
demux2_Control
(
p_input
->
input
.
p_demux
,
DEMUX_SET_GROUP
,
(
int
)
var_GetInteger
(
p_input
,
"program"
)
);
(
int
)
var_GetInteger
(
p_input
,
"program"
),
NULL
);
}
if
(
p_input
->
p_sout
)
{
...
...
@@ -1265,7 +1291,8 @@ static vlc_bool_t Control( input_thread_t *p_input, int i_type,
es_out_Control
(
p_input
->
p_es_out
,
ES_OUT_SET_GROUP
,
val
.
i_int
);
demux2_Control
(
p_input
->
input
.
p_demux
,
DEMUX_SET_GROUP
,
val
.
i_int
);
demux2_Control
(
p_input
->
input
.
p_demux
,
DEMUX_SET_GROUP
,
val
.
i_int
,
NULL
);
break
;
case
INPUT_CONTROL_SET_ES
:
...
...
src/input/var.c
View file @
b2147ab9
...
...
@@ -130,6 +130,11 @@ void input_ControlVarInit ( input_thread_t *p_input )
var_Change
(
p_input
,
"program"
,
VLC_VAR_SETTEXT
,
&
text
,
NULL
);
var_AddCallback
(
p_input
,
"program"
,
ProgramCallback
,
NULL
);
/* Programs */
var_Create
(
p_input
,
"programs"
,
VLC_VAR_LIST
|
VLC_VAR_DOINHERIT
);
text
.
psz_string
=
_
(
"Programs"
);
var_Change
(
p_input
,
"programs"
,
VLC_VAR_SETTEXT
,
&
text
,
NULL
);
/* Title */
var_Create
(
p_input
,
"title"
,
VLC_VAR_INTEGER
|
VLC_VAR_HASCHOICE
);
text
.
psz_string
=
_
(
"Title"
);
...
...
src/libvlc.h
View file @
b2147ab9
...
...
@@ -281,6 +281,11 @@ static char *ppsz_align_descriptions[] =
#define INPUT_PROGRAM_LONGTEXT N_( \
"Choose the program to select by giving its Service ID.")
#define INPUT_PROGRAMS_TEXT N_("Choose programs")
#define INPUT_PROGRAMS_LONGTEXT N_( \
"Choose the programs to select by giving a comma-separated list of" \
"SIDs.")
#define INPUT_AUDIO_TEXT N_("Choose audio")
#define INPUT_AUDIO_LONGTEXT N_( \
"Give the default type of audio you want to use in a DVD. " \
...
...
@@ -890,6 +895,8 @@ vlc_module_begin();
add_integer
(
"program"
,
0
,
NULL
,
INPUT_PROGRAM_TEXT
,
INPUT_PROGRAM_LONGTEXT
,
VLC_TRUE
);
add_string
(
"programs"
,
""
,
NULL
,
INPUT_PROGRAMS_TEXT
,
INPUT_PROGRAMS_LONGTEXT
,
VLC_FALSE
);
add_integer
(
"audio-type"
,
-
1
,
NULL
,
INPUT_AUDIO_TEXT
,
INPUT_AUDIO_LONGTEXT
,
VLC_TRUE
);
add_integer
(
"audio-channel"
,
-
1
,
NULL
,
...
...
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