<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection">Technically a lot of these might use the date API so the division rounding is not growing. But for now it's équivalent to what was there before.</div>
<div name="messageReplySection">On 20 Sep 2018 at 17:14 +0200, Steve Lhomme , wrote:<br />
<blockquote type="cite">vlc | branch: master | Steve Lhomme <robux4@ycbcr.xyz> | Thu Sep 20 16:52:17 2018 +0200| [08af3e16c06ccd99b0ca31c89879039eb38ee6ea] | committer: Steve Lhomme<br />
<br />
modules: add more vlc_tick_from_samples()<br />
<br />
<blockquote type="cite">http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=08af3e16c06ccd99b0ca31c89879039eb38ee6ea<br /></blockquote>
---<br />
<br />
modules/access/linsys/linsys_hdsdi.c | 4 ++--<br />
modules/audio_output/directsound.c | 2 +-<br />
modules/audio_output/jack.c | 6 +++---<br />
modules/audio_output/kai.c | 4 ++--<br />
modules/audio_output/opensles_android.c | 2 +-<br />
modules/codec/g711.c | 4 ++--<br />
modules/codec/lpcm.c | 4 ++--<br />
modules/codec/shine.c | 6 +++---<br />
modules/demux/caf.c | 2 +-<br />
modules/demux/flac.c | 4 ++--<br />
modules/demux/nsv.c | 2 +-<br />
modules/demux/xiph_metadata.c | 2 +-<br />
modules/hw/vdpau/deinterlace.c | 4 ++--<br />
modules/mux/mp4/libmp4mux.c | 2 +-<br />
modules/video_filter/fps.c | 3 ++-<br />
src/os2/thread.c | 2 +-<br />
16 files changed, 27 insertions(+), 26 deletions(-)<br />
<br />
diff --git a/modules/access/linsys/linsys_hdsdi.c b/modules/access/linsys/linsys_hdsdi.c<br />
index a8a7b144bf..4952427ade 100644<br />
--- a/modules/access/linsys/linsys_hdsdi.c<br />
+++ b/modules/access/linsys/linsys_hdsdi.c<br />
@@ -629,8 +629,8 @@ static int HandleAudio( demux_t *p_demux, const uint8_t *p_buffer )<br />
p_audio->i_channel * 2, p_sys->i_max_channel + 1 );<br />
<br />
p_block->i_dts = p_block->i_pts<br />
- = p_sys->i_next_adate + (vlc_tick_t)p_audio->i_delay<br />
- * CLOCK_FREQ / p_sys->i_sample_rate;<br />
+ = p_sys->i_next_adate + vlc_tick_from_samples(p_audio->i_delay,<br />
+ p_sys->i_sample_rate);<br />
p_block->i_length = p_sys->i_aincr;<br />
es_out_Send( p_demux->out, p_audio->p_es, p_block );<br />
}<br />
diff --git a/modules/audio_output/directsound.c b/modules/audio_output/directsound.c<br />
index 262e070ffc..fd9d94591f 100644<br />
--- a/modules/audio_output/directsound.c<br />
+++ b/modules/audio_output/directsound.c<br />
@@ -171,7 +171,7 @@ static HRESULT TimeGet( aout_stream_sys_t *sys, vlc_tick_t *delay )<br />
/* underrun */<br />
Flush(sys, false);<br />
<br />
- *delay = ( sys->i_data / sys->i_bytes_per_sample ) * CLOCK_FREQ / sys->i_rate;<br />
+ *delay = vlc_tick_from_samples( sys->i_data / sys->i_bytes_per_sample, sys->i_rate );<br />
<br />
return DS_OK;<br />
}<br />
diff --git a/modules/audio_output/jack.c b/modules/audio_output/jack.c<br />
index 44618b6da8..c388e4304a 100644<br />
--- a/modules/audio_output/jack.c<br />
+++ b/modules/audio_output/jack.c<br />
@@ -352,9 +352,9 @@ static int TimeGet(audio_output_t *p_aout, vlc_tick_t *delay)<br />
jack_ringbuffer_t *rb = p_sys->p_jack_ringbuffer;<br />
const size_t bytes_per_frame = p_sys->i_channels * sizeof(jack_sample_t);<br />
<br />
- *delay = (p_sys->latency +<br />
- (jack_ringbuffer_read_space(rb) / bytes_per_frame)) *<br />
- CLOCK_FREQ / p_sys->i_rate;<br />
+ *delay = p_sys->latency +<br />
+ vlc_tick_from_samples(jack_ringbuffer_read_space(rb) / bytes_per_frame,<br />
+ p_sys->i_rate);<br />
<br />
return 0;<br />
}<br />
diff --git a/modules/audio_output/kai.c b/modules/audio_output/kai.c<br />
index 6f26b49173..98a2182394 100644<br />
--- a/modules/audio_output/kai.c<br />
+++ b/modules/audio_output/kai.c<br />
@@ -339,8 +339,8 @@ static int TimeGet( audio_output_t *aout, vlc_tick_t *restrict delay )<br />
<br />
vlc_mutex_lock( &buffer->mutex );<br />
<br />
- *delay = ( buffer->length / format->i_bytes_per_frame ) * CLOCK_FREQ /<br />
- format->i_rate;<br />
+ *delay = vlc_tick_from_samples( buffer->length / format->i_bytes_per_frame,<br />
+ format->i_rate );<br />
<br />
vlc_mutex_unlock( &buffer->mutex );<br />
<br />
diff --git a/modules/audio_output/opensles_android.c b/modules/audio_output/opensles_android.c<br />
index d1112b76b2..4a5674c649 100644<br />
--- a/modules/audio_output/opensles_android.c<br />
+++ b/modules/audio_output/opensles_android.c<br />
@@ -169,7 +169,7 @@ static int TimeGet(audio_output_t* aout, vlc_tick_t* restrict drift)<br />
return -1;<br />
<br />
*drift = (CLOCK_FREQ * OPENSLES_BUFLEN * st.count / 1000)<br />
- + sys->samples * CLOCK_FREQ / sys->rate;<br />
+ + vlc_tick_from_samples(sys->samples, sys->rate);<br />
<br />
/* msg_Dbg(aout, "latency %"PRId64" ms, %d/%d buffers", *drift / 1000,<br />
(int)st.count, OPENSLES_BUFFERS); */<br />
diff --git a/modules/codec/g711.c b/modules/codec/g711.c<br />
index c191a63e49..c044cbaabe 100644<br />
--- a/modules/codec/g711.c<br />
+++ b/modules/codec/g711.c<br />
@@ -1209,8 +1209,8 @@ static block_t *EncoderEncode( encoder_t *p_enc, block_t *p_aout_buf )<br />
}<br />
<br />
p_block->i_dts = p_block->i_pts = p_aout_buf->i_pts;<br />
- p_block->i_length = (int64_t)p_aout_buf->i_nb_samples *<br />
- CLOCK_FREQ / p_enc->fmt_in.audio.i_rate;<br />
+ p_block->i_length = vlc_tick_from_samples(p_aout_buf->i_nb_samples,<br />
+ p_enc->fmt_in.audio.i_rate);<br />
return p_block;<br />
}<br />
#endif /* ENABLE_SOUT */<br />
diff --git a/modules/codec/lpcm.c b/modules/codec/lpcm.c<br />
index f22b3db8bd..bd52689b5b 100644<br />
--- a/modules/codec/lpcm.c<br />
+++ b/modules/codec/lpcm.c<br />
@@ -662,9 +662,9 @@ static block_t *EncodeFrames( encoder_t *p_enc, block_t *p_aout_buf )<br />
<br />
/* We need to find i_length by means of next_pts due to possible roundoff errors. */<br />
vlc_tick_t this_pts = p_aout_buf->i_pts +<br />
- (i * p_sys->i_frame_samples + i_start_offset) * CLOCK_FREQ / p_sys->i_rate;<br />
+ vlc_tick_from_samples(i * p_sys->i_frame_samples + i_start_offset, p_sys->i_rate);<br />
vlc_tick_t next_pts = p_aout_buf->i_pts +<br />
- ((i + 1) * p_sys->i_frame_samples + i_start_offset) * CLOCK_FREQ / p_sys->i_rate;<br />
+ vlc_tick_from_samples((i + 1) * p_sys->i_frame_samples + i_start_offset, p_sys->i_rate);<br />
<br />
p_block->i_pts = p_block->i_dts = this_pts;<br />
p_block->i_length = next_pts - this_pts;<br />
diff --git a/modules/codec/shine.c b/modules/codec/shine.c<br />
index 581f01c62a..c07430368a 100644<br />
--- a/modules/codec/shine.c<br />
+++ b/modules/codec/shine.c<br />
@@ -228,7 +228,7 @@ static block_t *EncodeFrame( encoder_t *p_enc, block_t *p_block )<br />
block_t *p_chain = NULL;<br />
unsigned int i_samples = p_block->i_buffer >> 2 /* s16l stereo */;<br />
vlc_tick_t start_date = p_block->i_pts;<br />
- start_date -= (vlc_tick_t)i_samples * CLOCK_FREQ / (vlc_tick_t)p_enc->fmt_out.audio.i_rate;<br />
+ start_date -= vlc_tick_from_samples(i_samples, p_enc->fmt_out.audio.i_rate);<br />
<br />
VLC_UNUSED(p_enc);<br />
<br />
@@ -260,8 +260,8 @@ static block_t *EncodeFrame( encoder_t *p_enc, block_t *p_block )<br />
memcpy( p_mp3_block->p_buffer, buf, written );<br />
<br />
/* date management */<br />
- p_mp3_block->i_length = p_sys->samples_per_frame * CLOCK_FREQ /<br />
- p_enc->fmt_out.audio.i_rate;<br />
+ p_mp3_block->i_length = vlc_tick_from_samples(p_sys->samples_per_frame,<br />
+ p_enc->fmt_out.audio.i_rate);<br />
<br />
start_date += p_mp3_block->i_length;<br />
p_mp3_block->i_dts = p_mp3_block->i_pts = start_date;<br />
diff --git a/modules/demux/caf.c b/modules/demux/caf.c<br />
index 363b74b653..cc312a5a30 100644<br />
--- a/modules/demux/caf.c<br />
+++ b/modules/demux/caf.c<br />
@@ -335,7 +335,7 @@ static inline vlc_tick_t FrameSpanGetTime( frame_span_t *span, uint32_t i_sample<br />
if( !i_sample_rate )<br />
return VLC_TICK_INVALID;<br />
<br />
- return ( span->i_samples * CLOCK_FREQ ) / i_sample_rate + VLC_TICK_0;<br />
+ return vlc_tick_from_samples( span->i_samples, i_sample_rate) + VLC_TICK_0;<br />
}<br />
<br />
/* SetSpanWithSample returns the span from the beginning of the file up to and<br />
diff --git a/modules/demux/flac.c b/modules/demux/flac.c<br />
index abc0998fa5..34ca87c56c 100644<br />
--- a/modules/demux/flac.c<br />
+++ b/modules/demux/flac.c<br />
@@ -726,8 +726,8 @@ static int ParseHeaders( demux_t *p_demux, es_format_t *p_fmt )<br />
p_fmt->audio.i_channels = p_sys->stream_info.channels;<br />
p_fmt->audio.i_bitspersample = p_sys->stream_info.bits_per_sample;<br />
if( p_sys->stream_info.sample_rate > 0 )<br />
- p_sys->i_length = p_sys->stream_info.total_samples * CLOCK_FREQ<br />
- / p_sys->stream_info.sample_rate;<br />
+ p_sys->i_length = vlc_tick_from_samples(p_sys->stream_info.total_samples,<br />
+ p_sys->stream_info.sample_rate);<br />
<br />
continue;<br />
}<br />
diff --git a/modules/demux/nsv.c b/modules/demux/nsv.c<br />
index 1d889ca7d5..0c6441a9c7 100644<br />
--- a/modules/demux/nsv.c<br />
+++ b/modules/demux/nsv.c<br />
@@ -613,7 +613,7 @@ static int ReadNSVs( demux_t *p_demux )<br />
else if( header[16] != 0 )<br />
{<br />
/* Integer frame rate */<br />
- p_sys->i_pcr_inc = CLOCK_FREQ / header[16];<br />
+ p_sys->i_pcr_inc = vlc_tick_from_samples(1, header[16]);<br />
}<br />
else<br />
{<br />
diff --git a/modules/demux/xiph_metadata.c b/modules/demux/xiph_metadata.c<br />
index de3748418f..2b9985ca2f 100644<br />
--- a/modules/demux/xiph_metadata.c<br />
+++ b/modules/demux/xiph_metadata.c<br />
@@ -296,7 +296,7 @@ static void xiph_ParseCueSheetMeta( unsigned *pi_flags, vlc_meta_t *p_meta,<br />
unsigned m, s, f;<br />
if( sscanf( &psz_line[13], "%u:%u:%u", &m, &s, &f ) == 3 )<br />
{<br />
- p_seekpoint->i_time_offset = vlc_tick_from_sec(m * 60 + s) + f * CLOCK_FREQ/75;<br />
+ p_seekpoint->i_time_offset = vlc_tick_from_sec(m * 60 + s) + vlc_tick_from_samples(f, 75);<br />
*pb_valid = true;<br />
}<br />
}<br />
diff --git a/modules/hw/vdpau/deinterlace.c b/modules/hw/vdpau/deinterlace.c<br />
index adfc0b859c..c57dcd509d 100644<br />
--- a/modules/hw/vdpau/deinterlace.c<br />
+++ b/modules/hw/vdpau/deinterlace.c<br />
@@ -71,8 +71,8 @@ static picture_t *Deinterlace(filter_t *filter, picture_t *src)<br />
dst->date = (3 * src->date - last_pts) / 2;<br />
else<br />
if (filter->fmt_in.video.i_frame_rate != 0)<br />
- dst->date = src->date + ((filter->fmt_in.video.i_frame_rate_base<br />
- * CLOCK_FREQ) / filter->fmt_in.video.i_frame_rate);<br />
+ dst->date = src->date + vlc_tick_from_samples(filter->fmt_in.video.i_frame_rate_base<br />
+ ,filter->fmt_in.video.i_frame_rate);<br />
dst->b_top_field_first = !src->b_top_field_first;<br />
dst->i_nb_fields = 1;<br />
src->i_nb_fields = 1;<br />
diff --git a/modules/mux/mp4/libmp4mux.c b/modules/mux/mp4/libmp4mux.c<br />
index 772bc1f10f..bf2220f68c 100644<br />
--- a/modules/mux/mp4/libmp4mux.c<br />
+++ b/modules/mux/mp4/libmp4mux.c<br />
@@ -1162,7 +1162,7 @@ static bo_t *GetTextBox(vlc_object_t *p_obj, mp4mux_trackinfo_t *p_track, bool b<br />
static int64_t GetScaledEntryDuration( const mp4mux_entry_t *p_entry, uint32_t i_timescale,<br />
vlc_tick_t *pi_total_mtime, int64_t *pi_total_scaled )<br />
{<br />
- const vlc_tick_t i_totalscaledtototalmtime = *pi_total_scaled * CLOCK_FREQ / i_timescale;<br />
+ const vlc_tick_t i_totalscaledtototalmtime = vlc_tick_from_samples(*pi_total_scaled, i_timescale);<br />
const vlc_tick_t i_diff = *pi_total_mtime - i_totalscaledtototalmtime;<br />
<br />
/* Ensure to compensate the drift due to loss from time, and from scale, conversions */<br />
diff --git a/modules/video_filter/fps.c b/modules/video_filter/fps.c<br />
index 681c79db8f..9aea2dd468 100644<br />
--- a/modules/video_filter/fps.c<br />
+++ b/modules/video_filter/fps.c<br />
@@ -164,7 +164,8 @@ static int Open( vlc_object_t *p_this)<br />
p_filter->fmt_in.video.i_frame_rate, p_filter->fmt_in.video.i_frame_rate_base,<br />
p_filter->fmt_out.video.i_frame_rate, p_filter->fmt_out.video.i_frame_rate_base );<br />
<br />
- p_sys->i_output_frame_interval = p_filter->fmt_out.video.i_frame_rate_base * CLOCK_FREQ / p_filter->fmt_out.video.i_frame_rate;<br />
+ p_sys->i_output_frame_interval = vlc_tick_from_samples(p_filter->fmt_out.video.i_frame_rate_base,<br />
+ p_filter->fmt_out.video.i_frame_rate);<br />
<br />
date_Init( &p_sys->next_output_pts,<br />
p_filter->fmt_out.video.i_frame_rate, p_filter->fmt_out.video.i_frame_rate_base );<br />
diff --git a/src/os2/thread.c b/src/os2/thread.c<br />
index 17d2e60aa2..1c93c70797 100644<br />
--- a/src/os2/thread.c<br />
+++ b/src/os2/thread.c<br />
@@ -909,7 +909,7 @@ vlc_tick_t vlc_tick_now (void)<br />
/* We need to split the division to avoid 63-bits overflow */<br />
lldiv_t d = lldiv (Q2LL(counter), freq);<br />
<br />
- return vlc_tick_from_sec( d.quot ) + ((d.rem * CLOCK_FREQ) / freq);<br />
+ return vlc_tick_from_sec( d.quot ) + vlc_tick_from_samples(d.rem, freq);<br />
}<br />
<br />
#undef vlc_tick_wait<br />
<br />
_______________________________________________<br />
vlc-commits mailing list<br />
vlc-commits@videolan.org<br />
https://mailman.videolan.org/listinfo/vlc-commits<br /></blockquote>
</div>
</body>
</html>