[vlc-devel] [PATCH 1/2] [RFC] demux: un/set the info title via inline functions
Steve Lhomme
robux4 at videolabs.io
Sat Jun 4 19:00:25 CEST 2016
demuxers can read their local values but when writing they need to go through
the functions.
that will come handy for demux-filters
---
include/vlc_demux.h | 33 +++++++++++++++++++++++++++++----
modules/access/bd/bd.c | 9 ++++-----
modules/access/bluray.c | 25 ++++++++++++-------------
modules/access/dvdnav.c | 24 ++++++++----------------
modules/access/dvdread.c | 24 ++++++++----------------
modules/demux/avformat/demux.c | 3 +--
modules/demux/gme.c | 6 ++----
modules/demux/mkv/mkv.cpp | 8 +++-----
modules/demux/mkv/virtual_segment.cpp | 10 ++++------
modules/demux/mp4/mp4.c | 3 +--
modules/demux/ogg.c | 7 +++----
modules/demux/sid.cpp | 3 +--
src/input/input.c | 8 ++++----
13 files changed, 80 insertions(+), 83 deletions(-)
diff --git a/include/vlc_demux.h b/include/vlc_demux.h
index f4baeea..1153e1c 100644
--- a/include/vlc_demux.h
+++ b/include/vlc_demux.h
@@ -79,6 +79,17 @@ struct demux_t
input_thread_t *p_input;
};
+static inline void demux_InfoAddFlags( demux_t *p_demux, int flags )
+{
+ p_demux->info.i_update |= flags;
+}
+
+static inline void demux_InfoDelFlags( demux_t *p_demux, int flags )
+{
+ p_demux->info.i_update &= ~flags;
+}
+
+
/* pf_demux return values */
#define VLC_DEMUXER_EOF 0
#define VLC_DEMUXER_EGENERIC -1
@@ -90,6 +101,22 @@ struct demux_t
#define INPUT_UPDATE_META 0x0040
#define INPUT_UPDATE_TITLE_LIST 0x0100
+static inline void demux_SetTitle( demux_t *p_demux, int i_title )
+{
+ p_demux->info.i_title = i_title;
+ p_demux->info.i_update |= INPUT_UPDATE_TITLE;
+ if ( p_demux->p_prev )
+ demux_SetTitle( p_demux->p_prev, i_title );
+}
+
+static inline void demux_SetSeekpoint( demux_t *p_demux, int i_seekpoint )
+{
+ p_demux->info.i_seekpoint = i_seekpoint;
+ p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
+ if ( p_demux->p_prev )
+ demux_SetSeekpoint( p_demux->p_prev, i_seekpoint );
+}
+
/* demux_meta_t is returned by "meta reader" module to the demuxer */
typedef struct demux_meta_t
{
@@ -329,15 +356,13 @@ static inline void demux_UpdateTitleFromStream( demux_t *demux )
if( stream_Control( s, STREAM_GET_TITLE, &title ) == VLC_SUCCESS
&& title != (unsigned)demux->info.i_title )
{
- demux->info.i_title = title;
- demux->info.i_update |= INPUT_UPDATE_TITLE;
+ demux_SetTitle( demux, title );
}
if( stream_Control( s, STREAM_GET_SEEKPOINT, &seekpoint ) == VLC_SUCCESS
&& seekpoint != (unsigned)demux->info.i_seekpoint )
{
- demux->info.i_seekpoint = seekpoint;
- demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
+ demux_SetSeekpoint( demux, seekpoint );
}
}
diff --git a/modules/access/bd/bd.c b/modules/access/bd/bd.c
index 76e4998..89d886f 100644
--- a/modules/access/bd/bd.c
+++ b/modules/access/bd/bd.c
@@ -470,7 +470,7 @@ static int Demux( demux_t *p_demux )
const seekpoint_t *p_seekpoint = p_title->seekpoint[p_demux->info.i_seekpoint+1];
if( p_seekpoint->i_time_offset > i_time )
break;
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_SEEKPOINT );
}
}
}
@@ -564,9 +564,8 @@ static int SetTitle( demux_t *p_demux, int i_title )
return VLC_EGENERIC;
/* */
- p_demux->info.i_update |= INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_title = i_title;
- p_demux->info.i_seekpoint = 0;
+ demux_SetTitle( p_demux, i_title );
+ demux_SetSeekpoint( p_demux, 0 );
return VLC_SUCCESS;
}
@@ -871,7 +870,7 @@ update:
if( p_seekpoint->i_time_offset > i_time )
break;
}
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_SEEKPOINT );
return VLC_SUCCESS;
}
diff --git a/modules/access/bluray.c b/modules/access/bluray.c
index 0693451..c8ce735 100644
--- a/modules/access/bluray.c
+++ b/modules/access/bluray.c
@@ -1828,7 +1828,7 @@ static int blurayControl(demux_t *p_demux, int query, va_list args)
int i_title = (int)va_arg(args, int);
if (bluraySetTitle(p_demux, i_title) != VLC_SUCCESS) {
/* make sure GUI restores the old setting in title menu ... */
- p_demux->info.i_update |= INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT );
return VLC_EGENERIC;
}
break;
@@ -1837,7 +1837,7 @@ static int blurayControl(demux_t *p_demux, int query, va_list args)
{
int i_chapter = (int)va_arg(args, int);
bd_seek_chapter(p_sys->bluray, i_chapter);
- p_demux->info.i_update = INPUT_UPDATE_SEEKPOINT;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_SEEKPOINT );
break;
}
@@ -1969,7 +1969,7 @@ static int blurayControl(demux_t *p_demux, int query, va_list args)
case DEMUX_NAV_MENU:
if (p_sys->b_menu) {
if (bd_menu_call(p_sys->bluray, -1) == 1) {
- p_demux->info.i_update |= INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT );
return VLC_SUCCESS;
}
msg_Err(p_demux, "Can't select Top Menu title");
@@ -2124,15 +2124,15 @@ static void blurayUpdatePlaylist(demux_t *p_demux, unsigned i_playlist)
/* read title info and init some values */
if (!p_sys->b_menu)
- p_demux->info.i_title = bd_get_current_title(p_sys->bluray);
- p_demux->info.i_seekpoint = 0;
- p_demux->info.i_update |= INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
+ demux_SetTitle( p_demux, bd_get_current_title(p_sys->bluray) );
+ demux_SetSeekpoint( p_demux, 0 );
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_TITLE );
BLURAY_TITLE_INFO *p_title_info = bd_get_playlist_info(p_sys->bluray, i_playlist, 0);
if (p_title_info) {
blurayUpdateTitleInfo(p_sys->pp_title[p_demux->info.i_title], p_title_info);
if (p_sys->b_menu)
- p_demux->info.i_update |= INPUT_UPDATE_TITLE_LIST;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_TITLE_LIST );
}
setTitleInfo(p_sys, p_title_info);
@@ -2171,13 +2171,13 @@ static void blurayHandleEvent(demux_t *p_demux, const BD_EVENT *e)
switch (e->event) {
case BD_EVENT_TITLE:
if (e->param == BLURAY_TITLE_FIRST_PLAY)
- p_demux->info.i_title = p_sys->i_title - 1;
+ demux_SetTitle( p_demux, p_sys->i_title - 1 );
else
- p_demux->info.i_title = e->param;
+ demux_SetTitle( p_demux, e->param );
/* this is feature title, we don't know yet which playlist it will play (if any) */
setTitleInfo(p_sys, NULL);
/* reset title infos here ? */
- p_demux->info.i_update |= INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT; /* might be BD-J title with no video */
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT ); /* might be BD-J title with no video */
break;
case BD_EVENT_PLAYLIST:
/* Start of playlist playback (?????.mpls) */
@@ -2195,10 +2195,9 @@ static void blurayHandleEvent(demux_t *p_demux, const BD_EVENT *e)
break;
case BD_EVENT_CHAPTER:
if (e->param && e->param < 0xffff)
- p_demux->info.i_seekpoint = e->param - 1;
+ demux_SetSeekpoint( p_demux, e->param - 1 );
else
- p_demux->info.i_seekpoint = 0;
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
+ demux_SetSeekpoint( p_demux, 0 );
break;
case BD_EVENT_PLAYMARK:
case BD_EVENT_ANGLE:
diff --git a/modules/access/dvdnav.c b/modules/access/dvdnav.c
index 9b6d266..f7008b8 100644
--- a/modules/access/dvdnav.c
+++ b/modules/access/dvdnav.c
@@ -642,10 +642,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
msg_Warn( p_demux, "cannot set title/chapter" );
return VLC_EGENERIC;
}
- p_demux->info.i_update |=
- INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_title = i;
- p_demux->info.i_seekpoint = 0;
+ demux_SetTitle( p_demux, i);
+ demux_SetSeekpoint( p_demux, 0 );
return VLC_SUCCESS;
case DEMUX_SET_SEEKPOINT:
@@ -672,8 +670,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
msg_Warn( p_demux, "cannot set title/chapter" );
return VLC_EGENERIC;
}
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = i;
+ demux_SetSeekpoint( p_demux, i );
return VLC_SUCCESS;
case DEMUX_GET_PTS_DELAY:
@@ -749,10 +746,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
return VLC_EGENERIC;
}
}
- p_demux->info.i_update |=
- INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_title = 0;
- p_demux->info.i_seekpoint = 2;
+ demux_SetTitle( p_demux, 0 );
+ demux_SetSeekpoint( p_demux, 2 );
break;
}
@@ -968,8 +963,7 @@ static int Demux( demux_t *p_demux )
if( i_title >= 0 && i_title < p_sys->i_title &&
p_demux->info.i_title != i_title )
{
- p_demux->info.i_update |= INPUT_UPDATE_TITLE;
- p_demux->info.i_title = i_title;
+ demux_SetTitle( p_demux, i_title );
}
}
break;
@@ -1002,13 +996,11 @@ static int Demux( demux_t *p_demux )
{
if( i_title >= 0 && i_title < p_sys->i_title )
{
- p_demux->info.i_update |= INPUT_UPDATE_TITLE;
- p_demux->info.i_title = i_title;
+ demux_SetTitle( p_demux, i_title );
if( i_part >= 1 && i_part <= p_sys->title[i_title]->i_seekpoint )
{
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = i_part - 1;
+ demux_SetSeekpoint( p_demux, i_part - 1 );
}
}
}
diff --git a/modules/access/dvdread.c b/modules/access/dvdread.c
index 5f1f070..c91277d 100644
--- a/modules/access/dvdread.c
+++ b/modules/access/dvdread.c
@@ -406,10 +406,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
msg_Warn( p_demux, "cannot set title/chapter" );
return VLC_EGENERIC;
}
- p_demux->info.i_update |=
- INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_title = i;
- p_demux->info.i_seekpoint = 0;
+ demux_SetTitle( p_demux, i );
+ demux_SetSeekpoint( p_demux, 0 );
return VLC_SUCCESS;
case DEMUX_SET_SEEKPOINT:
@@ -419,8 +417,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
msg_Warn( p_demux, "cannot set title/chapter" );
return VLC_EGENERIC;
}
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = i;
+ demux_SetSeekpoint( p_demux, i );
return VLC_SUCCESS;
case DEMUX_GET_PTS_DELAY:
@@ -854,10 +851,8 @@ static int DvdReadSetArea( demux_t *p_demux, int i_title, int i_chapter,
if( p_demux->info.i_title != i_title )
{
- p_demux->info.i_update |=
- INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_title = i_title;
- p_demux->info.i_seekpoint = 0;
+ demux_SetTitle( p_demux, i_title );
+ demux_SetSeekpoint( p_demux, 0 );
}
/* TODO: re-add angles */
@@ -1033,8 +1028,7 @@ static int DvdReadSetArea( demux_t *p_demux, int i_title, int i_chapter,
if( p_demux->info.i_seekpoint != i_chapter )
{
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = i_chapter;
+ demux_SetSeekpoint( p_demux, i_chapter );
}
}
else if( i_chapter != -1 )
@@ -1105,8 +1099,7 @@ static void DvdReadSeek( demux_t *p_demux, int i_block_offset )
if( i_chapter < p_sys->i_chapters &&
p_demux->info.i_seekpoint != i_chapter )
{
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = i_chapter;
+ demux_SetSeekpoint( p_demux, i_chapter );
}
/* Find vobu */
@@ -1306,8 +1299,7 @@ static void DvdReadFindCell( demux_t *p_demux )
if( p_sys->i_chapter < p_sys->i_chapters &&
p_demux->info.i_seekpoint != p_sys->i_chapter )
{
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = p_sys->i_chapter;
+ demux_SetSeekpoint( p_demux, p_sys->i_chapter );
}
}
}
diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
index a56be31..3671ac1 100644
--- a/modules/demux/avformat/demux.c
+++ b/modules/demux/avformat/demux.c
@@ -855,8 +855,7 @@ static void UpdateSeekPoint( demux_t *p_demux, int64_t i_time )
if( i != p_demux->info.i_seekpoint && i >= 0 )
{
- p_demux->info.i_seekpoint = i;
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
+ demux_SetSeekpoint( p_demux, i );
}
}
diff --git a/modules/demux/gme.c b/modules/demux/gme.c
index 48d535e..3011c20 100644
--- a/modules/demux/gme.c
+++ b/modules/demux/gme.c
@@ -208,8 +208,7 @@ static int Demux (demux_t *demux)
if (++sys->track_id >= (unsigned)gme_track_count (sys->emu))
return 0;
- demux->info.i_update |= INPUT_UPDATE_TITLE;
- demux->info.i_title = sys->track_id;
+ demux_SetTitle( demux, sys->track_id );
gme_start_track (sys->emu, sys->track_id);
}
@@ -324,8 +323,7 @@ static int Control (demux_t *demux, int query, va_list args)
if (track_id >= gme_track_count (sys->emu))
break;
gme_start_track (sys->emu, track_id);
- demux->info.i_update |= INPUT_UPDATE_TITLE;
- demux->info.i_title = track_id;
+ demux_SetTitle( demux, track_id );
sys->track_id = track_id;
return VLC_SUCCESS;
}
diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
index 76c8983..bdac91a 100644
--- a/modules/demux/mkv/mkv.cpp
+++ b/modules/demux/mkv/mkv.cpp
@@ -394,9 +394,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
p_sys->p_current_vsegment->p_current_vchapter = p_sys->p_current_vsegment->veditions[p_sys->p_current_vsegment->i_current_edition]->getChapterbyTimecode(0);
Seek( p_demux, static_cast<int64_t>( p_sys->titles[i_idx]->seekpoint[0]->i_time_offset ), -1, NULL);
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT|INPUT_UPDATE_TITLE;
- p_demux->info.i_seekpoint = 0;
- p_demux->info.i_title = i_idx;
+ demux_SetSeekpoint( p_demux, 0 );
+ demux_SetTitle( p_demux, i_idx );
p_sys->f_duration = (float) p_sys->titles[i_idx]->i_length / 1000.f;
return VLC_SUCCESS;
}
@@ -409,8 +408,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
if( p_sys->titles.size() && i_skp < p_sys->titles[p_sys->i_current_title]->i_seekpoint)
{
Seek( p_demux, static_cast<int64_t>( p_sys->titles[p_sys->i_current_title]->seekpoint[i_skp]->i_time_offset ), -1, NULL);
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = i_skp;
+ demux_SetSeekpoint( p_demux, i_skp );
return VLC_SUCCESS;
}
return VLC_EGENERIC;
diff --git a/modules/demux/mkv/virtual_segment.cpp b/modules/demux/mkv/virtual_segment.cpp
index 5d30d7e..0e0635f 100644
--- a/modules/demux/mkv/virtual_segment.cpp
+++ b/modules/demux/mkv/virtual_segment.cpp
@@ -462,9 +462,8 @@ bool virtual_segment_c::UpdateCurrentToChapter( demux_t & demux )
p_current_vchapter = p_cur_vchapter;
if ( p_cur_vchapter->i_seekpoint_num > 0 )
{
- demux.info.i_update |= INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
- demux.info.i_title = sys.i_current_title = i_sys_title;
- demux.info.i_seekpoint = p_cur_vchapter->i_seekpoint_num - 1;
+ demux_SetTitle( &demux, sys.i_current_title = i_sys_title );
+ demux_SetSeekpoint( &demux, p_cur_vchapter->i_seekpoint_num - 1 );
}
return b_has_seeked;
@@ -519,9 +518,8 @@ void virtual_segment_c::Seek( demux_t & demuxer, mtime_t i_mk_date,
p_sys->i_mk_chapter_time = i_mk_time_offset - p_vchapter->segment.i_mk_start_time /* + VLC_TS_0 */;
if ( p_vchapter->p_chapter && p_vchapter->i_seekpoint_num > 0 )
{
- demuxer.info.i_update |= INPUT_UPDATE_TITLE | INPUT_UPDATE_SEEKPOINT;
- demuxer.info.i_title = p_sys->i_current_title = i_sys_title;
- demuxer.info.i_seekpoint = p_vchapter->i_seekpoint_num - 1;
+ demux_SetTitle( &demuxer, p_sys->i_current_title = i_sys_title );
+ demux_SetSeekpoint( &demuxer, p_vchapter->i_seekpoint_num - 1 );
}
if( p_current_vchapter == NULL || &p_current_vchapter->segment != &p_vchapter->segment )
diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 7fc7988..a61f04d 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -1224,8 +1224,7 @@ static void MP4_UpdateSeekpoint( demux_t *p_demux )
if( i != p_demux->info.i_seekpoint && i >= 0 )
{
- p_demux->info.i_seekpoint = i;
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
+ demux_SetSeekpoint( p_demux, i );
}
}
/*****************************************************************************
diff --git a/modules/demux/ogg.c b/modules/demux/ogg.c
index 40b26c6..7c8b2fd 100644
--- a/modules/demux/ogg.c
+++ b/modules/demux/ogg.c
@@ -922,8 +922,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
Ogg_ResetStreamsHelper( p_sys );
es_out_Control( p_demux->out, ES_OUT_SET_NEXT_DISPLAY_TIME,
VLC_TS_0 + i64 );
- p_demux->info.i_update |= INPUT_UPDATE_SEEKPOINT;
- p_demux->info.i_seekpoint = i_seekpoint;
+ demux_SetSeekpoint( p_demux, i_seekpoint );
return VLC_SUCCESS;
}
else
@@ -2444,7 +2443,7 @@ static void Ogg_ExtractComments( demux_t *p_demux, es_format_t *p_fmt,
if( p_ogg->i_seekpoints > 1 )
{
- p_demux->info.i_update |= INPUT_UPDATE_TITLE_LIST;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_TITLE_LIST );
}
}
@@ -2527,7 +2526,7 @@ static void Ogg_ExtractMeta( demux_t *p_demux, es_format_t *p_fmt, const uint8_t
break;
}
if( p_ogg->p_meta )
- p_demux->info.i_update |= INPUT_UPDATE_META;
+ demux_InfoAddFlags( p_demux, INPUT_UPDATE_META );
}
static bool Ogg_ReadTheoraHeader( logical_stream_t *p_stream,
diff --git a/modules/demux/sid.cpp b/modules/demux/sid.cpp
index b095d71..7a16188 100644
--- a/modules/demux/sid.cpp
+++ b/modules/demux/sid.cpp
@@ -276,8 +276,7 @@ static int Control (demux_t *demux, int query, va_list args)
if (!result)
return VLC_EGENERIC;
- demux->info.i_title = i_idx;
- demux->info.i_update = INPUT_UPDATE_TITLE;
+ demux_SetTitle( demux, i_idx );
msg_Dbg( demux, "set song %i", i_idx);
return VLC_SUCCESS;
diff --git a/src/input/input.c b/src/input/input.c
index 5307203..5af8256 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -560,7 +560,7 @@ static void MainLoopDemux( input_thread_t *p_input, bool *pb_changed )
if( p_input->p->master->p_demux->info.i_update & INPUT_UPDATE_TITLE_LIST )
{
UpdateTitleListfromDemux( p_input );
- p_input->p->master->p_demux->info.i_update &= ~INPUT_UPDATE_TITLE_LIST;
+ demux_InfoDelFlags( p_input->p->master->p_demux, INPUT_UPDATE_TITLE_LIST );
}
if( p_input->p->master->b_title_demux )
{
@@ -2171,14 +2171,14 @@ static int UpdateTitleSeekpointFromDemux( input_thread_t *p_input )
{
input_SendEventTitle( p_input, p_demux->info.i_title );
- p_demux->info.i_update &= ~INPUT_UPDATE_TITLE;
+ demux_InfoDelFlags( p_demux, INPUT_UPDATE_TITLE );
}
if( p_demux->info.i_update & INPUT_UPDATE_SEEKPOINT )
{
input_SendEventSeekpoint( p_input,
p_demux->info.i_title, p_demux->info.i_seekpoint );
- p_demux->info.i_update &= ~INPUT_UPDATE_SEEKPOINT;
+ demux_InfoDelFlags( p_demux, INPUT_UPDATE_SEEKPOINT );
}
return UpdateTitleSeekpoint( p_input,
@@ -2193,7 +2193,7 @@ static void UpdateGenericFromDemux( input_thread_t *p_input )
if( p_demux->info.i_update & INPUT_UPDATE_META )
{
InputUpdateMeta( p_input, p_demux );
- p_demux->info.i_update &= ~INPUT_UPDATE_META;
+ demux_InfoDelFlags( p_demux, INPUT_UPDATE_META );
}
{
double quality;
--
2.7.0
More information about the vlc-devel
mailing list