[pulseaudio-commits] [Git][pulseaudio/pulseaudio][master] time-smoother-2: Fix integer type problem

PulseAudio Marge Bot (@pulseaudio-merge-bot) gitlab at gitlab.freedesktop.org
Tue May 17 11:14:05 UTC 2022



PulseAudio Marge Bot pushed to branch master at PulseAudio / pulseaudio


Commits:
325108e5 by Georg Chini at 2022-05-17T11:09:29+00:00
time-smoother-2: Fix integer type problem

The byte_count argument of pa_smoother_2_get_delay() was defined as size_t
which lead to overflow problems on 32-bit architectures. Changed type
to uint_64.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/700>

- - - - -


3 changed files:

- src/pulse/stream.c
- src/pulsecore/time-smoother_2.c
- src/pulsecore/time-smoother_2.h


Changes:

=====================================
src/pulse/stream.c
=====================================
@@ -1816,8 +1816,8 @@ static pa_usec_t calc_time(const pa_stream *s, bool ignore_transport) {
 }
 
 #ifdef USE_SMOOTHER_2
-static inline size_t calc_bytes(pa_stream *s, bool ignore_transport) {
-    return pa_usec_to_bytes(calc_time(s, ignore_transport), &s->sample_spec);
+static inline uint64_t calc_bytes(pa_stream *s, bool ignore_transport) {
+    return (uint64_t)(calc_time(s, ignore_transport) * s->sample_spec.rate / PA_USEC_PER_SEC * pa_frame_size(&s->sample_spec));
 }
 #endif
 


=====================================
src/pulsecore/time-smoother_2.c
=====================================
@@ -258,7 +258,7 @@ void pa_smoother_2_put(pa_smoother_2 *s, pa_usec_t time_stamp, int64_t byte_coun
 }
 
 /* Calculate the current latency. For a source, the sign must be inverted */
-int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, size_t byte_count) {
+int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, uint64_t byte_count) {
     int64_t now, delay;
 
     pa_assert(s);


=====================================
src/pulsecore/time-smoother_2.h
=====================================
@@ -37,7 +37,7 @@ void pa_smoother_2_resume(pa_smoother_2 *s, pa_usec_t time_stamp);
 void pa_smoother_2_put(pa_smoother_2 *s, pa_usec_t time_stamp, int64_t byte_count);
 
 /* Calculate the current latency. For a source, the sign of the result must be inverted */
-int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, size_t byte_count);
+int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp, uint64_t byte_count);
 /* Convert system time since start to sound card time */
 pa_usec_t pa_smoother_2_get(pa_smoother_2 *s, pa_usec_t time_stamp);
 /* Convert a time interval from sound card time to system time */



View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/325108e532e770a7b5951b84acb55ff95a568535

-- 
View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/325108e532e770a7b5951b84acb55ff95a568535
You're receiving this email because of your account on gitlab.freedesktop.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-commits/attachments/20220517/2f6244bf/attachment-0001.htm>


More information about the pulseaudio-commits mailing list