[vlc-devel] [PATCH 04/20] demux: add DEMUX_SET_ES_LIST control
Thomas Guillem
thomas at gllm.fr
Thu Jun 20 17:23:47 CEST 2019
From: Roland Bewick <roland.bewick at gmail.com>
Signed-off-by: Thomas Guillem <thomas at gllm.fr>
---
include/vlc_demux.h | 3 ++-
modules/access/bluray.c | 2 ++
modules/demux/asf/asf.c | 3 +++
modules/demux/mock.c | 2 ++
modules/demux/mpeg/ts.c | 10 ++++++++--
modules/stream_out/chromecast/chromecast_demux.cpp | 1 +
src/input/demux.c | 1 +
7 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/include/vlc_demux.h b/include/vlc_demux.h
index 9930c0957d..ba06d9162e 100644
--- a/include/vlc_demux.h
+++ b/include/vlc_demux.h
@@ -197,7 +197,8 @@ enum demux_query_e
DEMUX_SET_GROUP_DEFAULT,
DEMUX_SET_GROUP_ALL,
DEMUX_SET_GROUP_LIST, /* arg1= size_t, arg2= const int *, can fail */
- DEMUX_SET_ES, /* arg1= int can fail */
+ DEMUX_SET_ES, /* arg1= int can fail */
+ DEMUX_SET_ES_LIST, /* arg1= size_t, arg2= const int * (can be NULL) can fail */
/* Ask the demux to demux until the given date at the next pf_demux call
* but not more (and not less, at the precision available of course).
diff --git a/modules/access/bluray.c b/modules/access/bluray.c
index 54746fc98f..95f1afe389 100644
--- a/modules/access/bluray.c
+++ b/modules/access/bluray.c
@@ -2414,6 +2414,8 @@ static int blurayControl(demux_t *p_demux, int query, va_list args)
blurayOnUserStreamSelection(p_demux, i_id);
break;
}
+ case DEMUX_SET_ES_LIST:
+ return VLC_EGENERIC; /* TODO */
case DEMUX_SET_TITLE:
{
int i_title = va_arg(args, int);
diff --git a/modules/demux/asf/asf.c b/modules/demux/asf/asf.c
index 776e3c9af1..523f0420e3 100644
--- a/modules/demux/asf/asf.c
+++ b/modules/demux/asf/asf.c
@@ -490,6 +490,9 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
return i_ret;
}
+ case DEMUX_SET_ES_LIST:
+ return VLC_EGENERIC; /* TODO */
+
case DEMUX_GET_POSITION:
if( p_sys->i_time == VLC_TICK_INVALID ) return VLC_EGENERIC;
if( p_sys->i_length != 0 )
diff --git a/modules/demux/mock.c b/modules/demux/mock.c
index 03d282606b..b01fb2c342 100644
--- a/modules/demux/mock.c
+++ b/modules/demux/mock.c
@@ -287,6 +287,8 @@ Control(demux_t *demux, int query, va_list args)
return VLC_EGENERIC;
case DEMUX_SET_ES:
return VLC_EGENERIC;
+ case DEMUX_SET_ES_LIST:
+ return VLC_EGENERIC;
case DEMUX_SET_NEXT_DEMUX_TIME:
return VLC_EGENERIC;
case DEMUX_GET_FPS:
diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c
index 41926aad3e..ce70347774 100644
--- a/modules/demux/mpeg/ts.c
+++ b/modules/demux/mpeg/ts.c
@@ -1109,9 +1109,15 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
}
case DEMUX_SET_ES:
+ case DEMUX_SET_ES_LIST:
{
- i_int = va_arg( args, int );
- msg_Dbg( p_demux, "DEMUX_SET_ES %d", i_int );
+ if( i_query == DEMUX_SET_ES )
+ {
+ i_int = va_arg( args, int );
+ msg_Dbg( p_demux, "DEMUX_SET_ES %d", i_int );
+ }
+ else
+ msg_Dbg( p_demux, "DEMUX_SET_ES_LIST" );
if( p_sys->seltype != PROGRAM_ALL ) /* Won't change anything */
UpdatePESFilters( p_demux, false );
diff --git a/modules/stream_out/chromecast/chromecast_demux.cpp b/modules/stream_out/chromecast/chromecast_demux.cpp
index 7a97b9cadc..6bfc4fa9b0 100644
--- a/modules/stream_out/chromecast/chromecast_demux.cpp
+++ b/modules/stream_out/chromecast/chromecast_demux.cpp
@@ -378,6 +378,7 @@ struct demux_cc
break;
}
case DEMUX_SET_ES:
+ case DEMUX_SET_ES_LIST:
/* Seek back to the last known pos when changing tracks. This will
* flush sout streams, make sout del/add called right away and
* clear CC buffers. */
diff --git a/src/input/demux.c b/src/input/demux.c
index 22952ae800..02365c847d 100644
--- a/src/input/demux.c
+++ b/src/input/demux.c
@@ -379,6 +379,7 @@ int demux_vaControlHelper( stream_t *s,
case DEMUX_SET_GROUP_ALL:
case DEMUX_SET_GROUP_LIST:
case DEMUX_SET_ES:
+ case DEMUX_SET_ES_LIST:
case DEMUX_GET_ATTACHMENTS:
case DEMUX_CAN_RECORD:
case DEMUX_TEST_AND_CLEAR_FLAGS:
--
2.20.1
More information about the vlc-devel
mailing list