vlc | branch: master | Steve Lhomme <[email protected]> | Sat May 5 16:49:15 2018 +0200| [929f09bfc0b99865471e36abc25f3316562cb883] | committer: Steve Lhomme
core: use vlc_tick_t for DEMUX_SET_TIME officially > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=929f09bfc0b99865471e36abc25f3316562cb883 --- include/vlc_demux.h | 2 +- modules/access/bluray.c | 3 +-- modules/access/dcp/dcp.cpp | 8 +++----- modules/access/live555.cpp | 4 +--- modules/access/timecode.c | 2 +- modules/demux/adaptive/PlaylistManager.cpp | 2 +- modules/demux/asf/asf.c | 4 ++-- modules/demux/avformat/demux.c | 4 ++-- modules/demux/avi/avi.c | 2 +- modules/demux/caf.c | 5 ++--- modules/demux/flac.c | 5 ++--- modules/demux/gme.c | 2 +- modules/demux/image.c | 2 +- modules/demux/mkv/mkv.cpp | 4 ++-- modules/demux/mod.c | 15 ++++++++------- modules/demux/mp4/heif.c | 2 +- modules/demux/mp4/mp4.c | 6 +++--- modules/demux/mpc.c | 6 ++++-- modules/demux/mpeg/es.c | 2 +- modules/demux/mpeg/ps.c | 8 +++++--- modules/demux/mpeg/ts.c | 8 +++++--- modules/demux/nuv.c | 9 ++++----- modules/demux/ogg.c | 12 +++++++----- modules/demux/smf.c | 2 +- modules/demux/stl.c | 2 +- modules/demux/subtitle.c | 11 ++++++----- modules/demux/ttml.c | 3 +-- modules/demux/ty.c | 4 ++-- modules/demux/vobsub.c | 6 +++--- modules/demux/webvtt.c | 15 ++++++--------- modules/stream_out/chromecast/chromecast_demux.cpp | 2 +- src/input/demux.c | 4 ++-- 32 files changed, 82 insertions(+), 84 deletions(-) diff --git a/include/vlc_demux.h b/include/vlc_demux.h index 13ce0df760..3078d04079 100644 --- a/include/vlc_demux.h +++ b/include/vlc_demux.h @@ -178,7 +178,7 @@ enum demux_query_e /* LENGTH/TIME in microsecond, 0 if unknown */ DEMUX_GET_LENGTH, /* arg1= vlc_tick_t * res= */ DEMUX_GET_TIME, /* arg1= vlc_tick_t * res= */ - DEMUX_SET_TIME, /* arg1= int64_t arg2= bool b_precise res=can fail */ + DEMUX_SET_TIME, /* arg1= vlc_tick_t arg2= bool b_precise res=can fail */ /** * \todo Document diff --git a/modules/access/bluray.c b/modules/access/bluray.c index 3fdebeca1c..ee589e41b0 100644 --- a/modules/access/bluray.c +++ b/modules/access/bluray.c @@ -1943,8 +1943,7 @@ static int blurayControl(demux_t *p_demux, int query, va_list args) } case DEMUX_SET_TIME: { - int64_t i_time = va_arg(args, int64_t); - bd_seek_time(p_sys->bluray, TO_SCALE_NZ(i_time)); + bd_seek_time(p_sys->bluray, TO_SCALE_NZ(va_arg(args, vlc_tick_t))); notifyDiscontinuity( p_sys ); return VLC_SUCCESS; } diff --git a/modules/access/dcp/dcp.cpp b/modules/access/dcp/dcp.cpp index 110a4dda73..b8f615237e 100644 --- a/modules/access/dcp/dcp.cpp +++ b/modules/access/dcp/dcp.cpp @@ -777,7 +777,6 @@ static int Control( demux_t *p_demux, int query, va_list args ) { double f,*pf; bool *pb; - int64_t i64; demux_sys_t *p_sys = (demux_sys_t *)p_demux->p_sys; switch ( query ) @@ -824,12 +823,11 @@ static int Control( demux_t *p_demux, int query, va_list args ) break; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + p_sys->i_pts = va_arg( args, vlc_tick_t ); msg_Warn( p_demux, "DEMUX_SET_TIME" ); - p_sys->frame_no = i64 * p_sys->frame_rate_num / ( CLOCK_FREQ * p_sys->frame_rate_denom ); - p_sys->i_pts= i64; + p_sys->frame_no = p_sys->i_pts * p_sys->frame_rate_num / ( CLOCK_FREQ * p_sys->frame_rate_denom ); es_out_SetPCR(p_demux->out, p_sys->i_pts); - es_out_Control( p_demux->out, ES_OUT_SET_NEXT_DISPLAY_TIME, ( vlc_tick_t ) i64 ); + es_out_Control( p_demux->out, ES_OUT_SET_NEXT_DISPLAY_TIME, p_sys->i_pts ); break; case DEMUX_GET_PTS_DELAY: *va_arg( args, vlc_tick_t * ) = diff --git a/modules/access/live555.cpp b/modules/access/live555.cpp index 606bdc46b2..4601c4ae17 100644 --- a/modules/access/live555.cpp +++ b/modules/access/live555.cpp @@ -1518,7 +1518,6 @@ static int Demux( demux_t *p_demux ) static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = (demux_sys_t *)p_demux->p_sys; - int64_t i64; double *pf, f; bool *pb; @@ -1562,8 +1561,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) if( (i_query == DEMUX_SET_TIME) && (p_sys->f_npt > 0) ) { - i64 = va_arg( args, int64_t ); - time = (float)(i64 / 1000000.0); /* in second */ + time = secf_from_vlc_tick(va_arg( args, vlc_tick_t )); /* in second */ } else if( i_query == DEMUX_SET_TIME ) return VLC_EGENERIC; diff --git a/modules/access/timecode.c b/modules/access/timecode.c index dbe6535e37..d2c5819d84 100644 --- a/modules/access/timecode.c +++ b/modules/access/timecode.c @@ -129,7 +129,7 @@ static int Control (demux_t *demux, int query, va_list args) break; case DEMUX_SET_TIME: - date_Set (&sys->date, va_arg (args, int64_t)); + date_Set (&sys->date, va_arg (args, vlc_tick_t)); break; case DEMUX_SET_NEXT_DEMUX_TIME: diff --git a/modules/demux/adaptive/PlaylistManager.cpp b/modules/demux/adaptive/PlaylistManager.cpp index 74ffda70c6..3861e55e98 100644 --- a/modules/demux/adaptive/PlaylistManager.cpp +++ b/modules/demux/adaptive/PlaylistManager.cpp @@ -584,7 +584,7 @@ int PlaylistManager::doControl(int i_query, va_list args) return VLC_EGENERIC; } - int64_t time = va_arg(args, int64_t);// + getFirstPlaybackTime(); + vlc_tick_t time = va_arg(args, vlc_tick_t);// + getFirstPlaybackTime(); if(!setPosition(time)) { setBufferingRunState(true); diff --git a/modules/demux/asf/asf.c b/modules/demux/asf/asf.c index 24bcc0339e..3a7b1c1082 100644 --- a/modules/demux/asf/asf.c +++ b/modules/demux/asf/asf.c @@ -413,7 +413,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = p_demux->p_sys; vlc_meta_t *p_meta; - int64_t i64; + vlc_tick_t i64; int i; double f, *pf; @@ -439,7 +439,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { va_list acpy; va_copy( acpy, args ); - i64 = va_arg( acpy, int64_t ); + i64 = va_arg( acpy, vlc_tick_t ); va_end( acpy ); if( !SeekIndex( p_demux, i64, -1 ) ) diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c index cbedd7f109..8bdaed0afc 100644 --- a/modules/demux/avformat/demux.c +++ b/modules/demux/avformat/demux.c @@ -1070,12 +1070,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) case DEMUX_SET_TIME: { - i64 = va_arg( args, int64_t ); + i64 = TO_AV_TS(va_arg( args, vlc_tick_t )); bool precise = va_arg( args, int ); msg_Warn( p_demux, "DEMUX_SET_TIME: %"PRId64, i64 ); - if( av_seek_frame( p_sys->ic, -1, TO_AV_TS(i64) + i_start_time, AVSEEK_FLAG_BACKWARD ) < 0 ) + if( av_seek_frame( p_sys->ic, -1, i64 + i_start_time, AVSEEK_FLAG_BACKWARD ) < 0 ) { return VLC_EGENERIC; } diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c index fec84cee6c..22b9c0a842 100644 --- a/modules/demux/avi/avi.c +++ b/modules/demux/avi/avi.c @@ -1625,7 +1625,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { f = 0; - i64 = va_arg( args, int64_t ); + i64 = va_arg( args, vlc_tick_t ); b = va_arg( args, int ); if( !p_sys->b_seekable ) { diff --git a/modules/demux/caf.c b/modules/demux/caf.c index 44df146d04..c48114aa19 100644 --- a/modules/demux/caf.c +++ b/modules/demux/caf.c @@ -1002,7 +1002,7 @@ static int Demux( demux_t *p_demux ) *****************************************************************************/ static int Control( demux_t *p_demux, int i_query, va_list args ) { - int64_t i64, i_sample; + int64_t i_sample; double f, *pf; frame_span_t position; @@ -1039,8 +1039,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_SUCCESS; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); - i_sample = i64 * p_sys->fmt.audio.i_rate / CLOCK_FREQ; + i_sample = va_arg( args, vlc_tick_t ) * p_sys->fmt.audio.i_rate / CLOCK_FREQ; if( SetSpanWithSample( p_demux, &position, i_sample )) return VLC_EGENERIC; p_sys->position = position; diff --git a/modules/demux/flac.c b/modules/demux/flac.c index 0ed521db2a..3790131841 100644 --- a/modules/demux/flac.c +++ b/modules/demux/flac.c @@ -440,7 +440,7 @@ static vlc_tick_t ControlGetTime( demux_t *p_demux ) return p_sys->i_pts; } -static int ControlSetTime( demux_t *p_demux, int64_t i_time ) +static int ControlSetTime( demux_t *p_demux, vlc_tick_t i_time ) { demux_sys_t *p_sys = p_demux->p_sys; bool b_seekable; @@ -526,8 +526,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) } else if( i_query == DEMUX_SET_TIME ) { - int64_t i_time = va_arg( args, int64_t ); - return ControlSetTime( p_demux, i_time ); + return ControlSetTime( p_demux, va_arg( args, vlc_tick_t ) ); } else if( i_query == DEMUX_SET_POSITION ) { diff --git a/modules/demux/gme.c b/modules/demux/gme.c index efff60ac0c..5bf2244b8b 100644 --- a/modules/demux/gme.c +++ b/modules/demux/gme.c @@ -295,7 +295,7 @@ static int Control (demux_t *demux, int query, va_list args) case DEMUX_SET_TIME: { - int64_t v = va_arg (args, int64_t) / 1000; + int64_t v = MS_FROM_VLC_TICK( va_arg (args, vlc_tick_t) ); if (v > INT_MAX || gme_seek (sys->emu, v)) break; return VLC_SUCCESS; diff --git a/modules/demux/image.c b/modules/demux/image.c index 536ce681d9..384c7b2222 100644 --- a/modules/demux/image.c +++ b/modules/demux/image.c @@ -261,7 +261,7 @@ static int Control(demux_t *demux, int query, va_list args) case DEMUX_SET_TIME: { if (sys->duration < 0 || sys->is_realtime) return VLC_EGENERIC; - int64_t time = va_arg(args, int64_t); + vlc_tick_t time = va_arg(args, vlc_tick_t); date_Set(&sys->pts, VLC_CLIP(time - sys->pts_offset, VLC_TICK_0, sys->duration)); return VLC_SUCCESS; } diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp index f6a2112afb..84c56590c9 100644 --- a/modules/demux/mkv/mkv.cpp +++ b/modules/demux/mkv/mkv.cpp @@ -284,7 +284,7 @@ static void Close( vlc_object_t *p_this ) static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = (demux_sys_t *)p_demux->p_sys; - int64_t i64; + vlc_tick_t i64; double *pf, f; int i_skp; size_t i_idx; @@ -451,7 +451,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_SUCCESS; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + i64 = va_arg( args, vlc_tick_t ); b = va_arg( args, int ); /* precise? */ msg_Dbg(p_demux,"SET_TIME to %" PRId64, i64 ); return Seek( p_demux, i64, -1, NULL, b ); diff --git a/modules/demux/mod.c b/modules/demux/mod.c index 40dbcaa00f..b82553c391 100644 --- a/modules/demux/mod.c +++ b/modules/demux/mod.c @@ -115,7 +115,7 @@ typedef struct es_out_id_t *es; date_t pts; - int64_t i_length; + vlc_tick_t i_length; int i_data; uint8_t *p_data; @@ -218,11 +218,11 @@ static int Open( vlc_object_t *p_this ) /* init time */ date_Init( &p_sys->pts, settings.mFrequency, 1 ); date_Set( &p_sys->pts, VLC_TICK_0 ); - p_sys->i_length = ModPlug_GetLength( p_sys->f ) * INT64_C(1000); + p_sys->i_length = VLC_TICK_FROM_MS( ModPlug_GetLength( p_sys->f ) ); msg_Dbg( p_demux, "MOD loaded name=%s length=%"PRId64"ms", ModPlug_GetName( p_sys->f ), - p_sys->i_length ); + MS_FROM_VLC_TICK( p_sys->i_length ) ); #ifdef WORDS_BIGENDIAN es_format_Init( &p_sys->fmt, AUDIO_ES, VLC_FOURCC( 't', 'w', 'o', 's' ) ); @@ -292,7 +292,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = p_demux->p_sys; double f, *pf; - int64_t i64; + vlc_tick_t i64; vlc_tick_t *pi64; switch( i_query ) @@ -330,15 +330,16 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_SUCCESS; case DEMUX_GET_LENGTH: - *va_arg( args, vlc_tick_t * ) = p_sys->i_length; + pi64 = va_arg( args, vlc_tick_t * ); + *pi64 = p_sys->i_length; return VLC_SUCCESS; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + i64 = va_arg( args, vlc_tick_t ); if( i64 >= 0 && i64 <= p_sys->i_length ) { - ModPlug_Seek( p_sys->f, i64 / 1000 ); + ModPlug_Seek( p_sys->f, MS_FROM_VLC_TICK( i64 ) ); date_Set( &p_sys->pts, VLC_TICK_0 + i64 ); return VLC_SUCCESS; diff --git a/modules/demux/mp4/heif.c b/modules/demux/mp4/heif.c index e2ea427608..ad9dd6a9ac 100644 --- a/modules/demux/mp4/heif.c +++ b/modules/demux/mp4/heif.c @@ -185,7 +185,7 @@ static int ControlHEIF( demux_t *p_demux, int i_query, va_list args ) return VLC_SUCCESS; case DEMUX_SET_TIME: { - SeekToPrevImageEnd( p_sys, va_arg(args, int64_t) / + SeekToPrevImageEnd( p_sys, va_arg(args, vlc_tick_t) / p_sys->i_image_duration ); return VLC_SUCCESS; } diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 3b89e64faf..e9f5fd6049 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -1946,7 +1946,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) demux_sys_t *p_sys = p_demux->p_sys; double f, *pf; - int64_t i64; + vlc_tick_t i64; bool b; const uint64_t i_duration = __MAX(p_sys->i_duration, p_sys->i_cumulated_duration); @@ -1981,7 +1981,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return FragSeekToPos( p_demux, f, b ); else if( p_sys->i_timescale > 0 ) { - i64 = (int64_t)( f * MP4_rescale_mtime( p_sys->i_duration, + i64 = (vlc_tick_t)( f * MP4_rescale_mtime( p_sys->i_duration, p_sys->i_timescale ) ); return Seek( p_demux, i64, b ); } @@ -1992,7 +1992,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_SUCCESS; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + i64 = va_arg( args, vlc_tick_t ); b = va_arg( args, int ); if ( p_demux->pf_demux == DemuxFrag ) return FragSeekToTime( p_demux, i64, b ); diff --git a/modules/demux/mpc.c b/modules/demux/mpc.c index 3148710ad7..d422e870f4 100644 --- a/modules/demux/mpc.c +++ b/modules/demux/mpc.c @@ -260,7 +260,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = p_demux->p_sys; double f, *pf; - int64_t i64; + vlc_tick_t i64; vlc_tick_t *pi64; bool *pb_bool; @@ -304,13 +304,15 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_EGENERIC; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + { + vlc_tick_t i64 = va_arg( args, vlc_tick_t ); if( mpc_decoder_seek_sample( &p_sys->decoder, i64 ) ) { p_sys->i_position = i64; return VLC_SUCCESS; } return VLC_EGENERIC; + } case DEMUX_CAN_PAUSE: case DEMUX_SET_PAUSE_STATE: diff --git a/modules/demux/mpeg/es.c b/modules/demux/mpeg/es.c index e82a716cbb..4650b95d23 100644 --- a/modules/demux/mpeg/es.c +++ b/modules/demux/mpeg/es.c @@ -436,7 +436,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) case DEMUX_SET_TIME: if( p_sys->mllt.p_bits ) { - int64_t i_time = va_arg(args, int64_t); + vlc_tick_t i_time = va_arg(args, vlc_tick_t); uint64_t i_pos = SeekByMlltTable( p_demux, &i_time ); int i_ret = vlc_stream_Seek( p_demux->s, p_sys->i_stream_offset + i_pos ); if( i_ret != VLC_SUCCESS ) diff --git a/modules/demux/mpeg/ps.c b/modules/demux/mpeg/ps.c index d3045423f3..342fcadfba 100644 --- a/modules/demux/mpeg/ps.c +++ b/modules/demux/mpeg/ps.c @@ -764,14 +764,16 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) break; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + { if( p_sys->i_time_track_index >= 0 && p_sys->i_current_pts != VLC_TICK_INVALID && p_sys->i_length > VLC_TICK_0) { - i64 -= p_sys->tk[p_sys->i_time_track_index].i_first_pts; - return demux_Control( p_demux, DEMUX_SET_POSITION, (double) i64 / p_sys->i_length ); + vlc_tick_t i_time = va_arg( args, vlc_tick_t ); + i_time -= p_sys->tk[p_sys->i_time_track_index].i_first_pts; + return demux_Control( p_demux, DEMUX_SET_POSITION, (double) i_time / p_sys->i_length ); } break; + } case DEMUX_GET_TITLE_INFO: { diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c index fa733292da..128c815269 100644 --- a/modules/demux/mpeg/ts.c +++ b/modules/demux/mpeg/ts.c @@ -997,17 +997,19 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) break; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + { + vlc_tick_t i_time = va_arg( args, vlc_tick_t ); if( p_sys->b_canseek && p_pmt && p_pmt->pcr.i_first > -1 && - !SeekToTime( p_demux, p_pmt, p_pmt->pcr.i_first + TO_SCALE(i64) ) ) + !SeekToTime( p_demux, p_pmt, p_pmt->pcr.i_first + TO_SCALE(i_time) ) ) { ReadyQueuesPostSeek( p_demux ); es_out_Control( p_demux->out, ES_OUT_SET_NEXT_DISPLAY_TIME, - FROM_SCALE(p_pmt->pcr.i_first) + i64 - VLC_TICK_0 ); + FROM_SCALE(p_pmt->pcr.i_first) + i_time - VLC_TICK_0 ); return VLC_SUCCESS; } break; + } case DEMUX_GET_TIME: if( p_sys->b_access_control ) diff --git a/modules/demux/nuv.c b/modules/demux/nuv.c index 4e76c229ee..ab2cb29a32 100644 --- a/modules/demux/nuv.c +++ b/modules/demux/nuv.c @@ -62,7 +62,7 @@ static int Control( demux_t *, int, va_list ); /* */ typedef struct { - int64_t i_time; + vlc_tick_t i_time; int64_t i_offset; } demux_index_entry_t; @@ -81,7 +81,7 @@ static void demux_IndexClean( demux_index_t * ); static void demux_IndexAppend( demux_index_t *, int64_t i_time, int64_t i_offset ); /* Convert a time into offset */ -static int64_t demux_IndexConvertTime( demux_index_t *, int64_t i_time ); +static int64_t demux_IndexConvertTime( demux_index_t *, vlc_tick_t i_time ); /* Find the nearest offset in the index */ static int64_t demux_IndexFindOffset( demux_index_t *, int64_t i_offset ); @@ -509,11 +509,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) case DEMUX_SET_TIME: { int64_t i_pos; - i64 = va_arg( args, int64_t ); p_sys->i_pcr = -1; - i_pos = demux_IndexConvertTime( &p_sys->idx, i64 ); + i_pos = demux_IndexConvertTime( &p_sys->idx, va_arg( args, vlc_tick_t ) ); if( i_pos < 0 ) return VLC_EGENERIC; else @@ -957,7 +956,7 @@ static void demux_IndexAppend( demux_index_t *p_idx, p_idx->i_idx++; } -static int64_t demux_IndexConvertTime( demux_index_t *p_idx, int64_t i_time ) +static int64_t demux_IndexConvertTime( demux_index_t *p_idx, vlc_tick_t i_time ) { int i_min = 0; int i_max = p_idx->i_idx-1; diff --git a/modules/demux/ogg.c b/modules/demux/ogg.c index 62db4aaa4c..c05733df9a 100644 --- a/modules/demux/ogg.c +++ b/modules/demux/ogg.c @@ -671,9 +671,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = p_demux->p_sys; vlc_meta_t *p_meta; - int64_t i64; + vlc_tick_t i64; double *pf, f; bool *pb_bool, b, acc; + logical_stream_t *p_stream; switch( i_query ) { @@ -704,9 +705,10 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_EGENERIC; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + { + i64 = va_arg( args, vlc_tick_t ); acc = va_arg( args, int ); - logical_stream_t *p_stream = Ogg_GetSelectedStream( p_demux ); + p_stream = Ogg_GetSelectedStream( p_demux ); if ( !p_stream ) { msg_Err( p_demux, "No selected seekable stream found" ); @@ -723,6 +725,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) } else return VLC_EGENERIC; + } case DEMUX_GET_ATTACHMENTS: { @@ -751,8 +754,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) } else if( stream_Size( p_demux->s ) > 0 ) { - i64 = vlc_stream_Tell( p_demux->s ); - *pf = (double) i64 / stream_Size( p_demux->s ); + *pf = (double) vlc_stream_Tell( p_demux->s ) / stream_Size( p_demux->s ); } else *pf = 0.0; return VLC_SUCCESS; diff --git a/modules/demux/smf.c b/modules/demux/smf.c index d60f2f0ec4..ce2bba810e 100644 --- a/modules/demux/smf.c +++ b/modules/demux/smf.c @@ -523,7 +523,7 @@ static int Control (demux_t *demux, int i_query, va_list args) *va_arg (args, vlc_tick_t *) = sys->tick - VLC_TICK_0; break; case DEMUX_SET_TIME: - return Seek (demux, va_arg (args, int64_t)); + return Seek (demux, va_arg (args, vlc_tick_t)); case DEMUX_CAN_PAUSE: case DEMUX_SET_PAUSE_STATE: diff --git a/modules/demux/stl.c b/modules/demux/stl.c index cf5210234e..af20931638 100644 --- a/modules/demux/stl.c +++ b/modules/demux/stl.c @@ -119,7 +119,7 @@ static int Control(demux_t *demux, int query, va_list args) return VLC_SUCCESS; } case DEMUX_SET_TIME: { - int64_t t = va_arg(args, int64_t); + vlc_tick_t t = va_arg(args, vlc_tick_t); for( size_t i = 0; i + 1< sys->count; i++ ) { if( sys->index[i + 1].start >= t && diff --git a/modules/demux/subtitle.c b/modules/demux/subtitle.c index 2e6d767b73..dc2df5fc3c 100644 --- a/modules/demux/subtitle.c +++ b/modules/demux/subtitle.c @@ -752,7 +752,6 @@ static void Close( vlc_object_t *p_this ) static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = p_demux->p_sys; - int64_t i64; double *pf, f; switch( i_query ) @@ -772,16 +771,18 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_SUCCESS; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + { p_sys->b_first_time = true; - p_sys->i_next_demux_date = i64; + p_sys->i_next_demux_date = va_arg( args, vlc_tick_t ); for( size_t i = 0; i < p_sys->subtitles.i_count; i++ ) { - if( p_sys->subtitles.p_array[i].i_start > i64 && i > 0 ) + if( p_sys->subtitles.p_array[i].i_start > p_sys->i_next_demux_date && + i > 0 ) break; p_sys->subtitles.i_current = i; } return VLC_SUCCESS; + } case DEMUX_GET_POSITION: pf = va_arg( args, double * ); @@ -806,7 +807,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) f = va_arg( args, double ); if( p_sys->subtitles.i_count && p_sys->i_length ) { - i64 = VLC_TICK_0 + f * p_sys->i_length; + vlc_tick_t i64 = VLC_TICK_0 + f * p_sys->i_length; return demux_Control( p_demux, DEMUX_SET_TIME, i64 ); } break; diff --git a/modules/demux/ttml.c b/modules/demux/ttml.c index 4fd7d92c91..4e834e1a3b 100644 --- a/modules/demux/ttml.c +++ b/modules/demux/ttml.c @@ -220,10 +220,9 @@ static int Control( demux_t* p_demux, int i_query, va_list args ) *va_arg( args, vlc_tick_t * ) = p_sys->i_next_demux_time; return VLC_SUCCESS; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); if( p_sys->times.i_count ) { - tt_time_t t = tt_time_Create( i64 - VLC_TICK_0 ); + tt_time_t t = tt_time_Create( va_arg( args, vlc_tick_t ) - VLC_TICK_0 ); size_t i_index = tt_timings_FindLowerIndex( p_sys->times.p_array, p_sys->times.i_count, t, &b ); p_sys->times.i_current = i_index; diff --git a/modules/demux/ty.c b/modules/demux/ty.c index fb83ef451e..bbe4b5719b 100644 --- a/modules/demux/ty.c +++ b/modules/demux/ty.c @@ -529,8 +529,8 @@ static int Control(demux_t *p_demux, int i_query, va_list args) *va_arg(args, vlc_tick_t *) = 0; return VLC_SUCCESS; case DEMUX_SET_TIME: /* arg is time in microsecs */ - i64 = va_arg( args, int64_t ); - return ty_stream_seek_time(p_demux, i64 * 1000); + return ty_stream_seek_time(p_demux, + NS_FROM_VLC_TICK(va_arg( args, vlc_tick_t ))); case DEMUX_CAN_PAUSE: case DEMUX_SET_PAUSE_STATE: case DEMUX_CAN_CONTROL_PACE: diff --git a/modules/demux/vobsub.c b/modules/demux/vobsub.c index b1f939216e..abeacd6cd8 100644 --- a/modules/demux/vobsub.c +++ b/modules/demux/vobsub.c @@ -238,7 +238,7 @@ static void Close( vlc_object_t *p_this ) static int Control( demux_t *p_demux, int i_query, va_list args ) { demux_sys_t *p_sys = p_demux->p_sys; - int64_t i64; + vlc_tick_t i64; int i; double *pf, f; @@ -269,7 +269,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_EGENERIC; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); + i64 = va_arg( args, vlc_tick_t ); for( i = 0; i < p_sys->i_tracks; i++ ) { p_sys->track[i].i_current_subtitle = 0; @@ -311,7 +311,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) case DEMUX_SET_POSITION: f = va_arg( args, double ); - i64 = (int64_t) f * p_sys->i_length; + i64 = (vlc_tick_t) f * p_sys->i_length; for( i = 0; i < p_sys->i_tracks; i++ ) { diff --git a/modules/demux/webvtt.c b/modules/demux/webvtt.c index 06f29c6dc2..a4d3639842 100644 --- a/modules/demux/webvtt.c +++ b/modules/demux/webvtt.c @@ -439,15 +439,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) return VLC_SUCCESS; case DEMUX_SET_TIME: - i64 = va_arg( args, int64_t ); - { - p_sys->index.i_current = getIndexByTime( p_sys, i64 ); - p_sys->b_first_time = true; - p_sys->i_next_demux_time = - p_sys->index.p_array[p_sys->index.i_current].time; - p_sys->i_next_block_flags |= BLOCK_FLAG_DISCONTINUITY; - return VLC_SUCCESS; - } + p_sys->index.i_current = getIndexByTime( p_sys, va_arg( args, vlc_tick_t ) ); + p_sys->b_first_time = true; + p_sys->i_next_demux_time = + p_sys->index.p_array[p_sys->index.i_current].time; + p_sys->i_next_block_flags |= BLOCK_FLAG_DISCONTINUITY; + return VLC_SUCCESS; case DEMUX_GET_POSITION: pf = va_arg( args, double * ); diff --git a/modules/stream_out/chromecast/chromecast_demux.cpp b/modules/stream_out/chromecast/chromecast_demux.cpp index b82fd74d92..02e20db042 100644 --- a/modules/stream_out/chromecast/chromecast_demux.cpp +++ b/modules/stream_out/chromecast/chromecast_demux.cpp @@ -369,7 +369,7 @@ struct demux_cc { m_pause_delay = m_pause_date = VLC_TICK_INVALID; - vlc_tick_t time = va_arg( args, int64_t ); + vlc_tick_t time = va_arg( args, vlc_tick_t ); /* Force unprecise seek */ int ret = demux_Control( p_demux->p_next, DEMUX_SET_TIME, time, false ); if( ret != VLC_SUCCESS ) diff --git a/src/input/demux.c b/src/input/demux.c index b715e28a1e..31be72cbb2 100644 --- a/src/input/demux.c +++ b/src/input/demux.c @@ -275,7 +275,7 @@ int demux_vaControlHelper( stream_t *s, { int64_t i_tell; double f, *pf; - int64_t i64; + vlc_tick_t i64; if( i_end < 0 ) i_end = stream_Size( s ); if( i_start < 0 ) i_start = 0; @@ -351,7 +351,7 @@ int demux_vaControlHelper( stream_t *s, return VLC_EGENERIC; case DEMUX_SET_TIME: - i64 = (int64_t)va_arg( args, int64_t ); + i64 = va_arg( args, vlc_tick_t ); if( i_bitrate > 0 && i64 >= 0 ) { int64_t i_block = i64 * i_bitrate / INT64_C(8000000) / i_align; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
