From a709f30da96d3283e7f0e9a0c04ace4ccb0790a3 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Sun, 2 Jun 2024 09:19:14 +0300 Subject: [PATCH] engine: soundlib: libmpg: add wrappers on top of libc read & lseek in case they don't match internal mpg123 types (we better migrate to upstream libmpg at some point) --- engine/common/soundlib/libmpg/reader.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/engine/common/soundlib/libmpg/reader.c b/engine/common/soundlib/libmpg/reader.c index db8d825f..8cc1283d 100644 --- a/engine/common/soundlib/libmpg/reader.c +++ b/engine/common/soundlib/libmpg/reader.c @@ -853,11 +853,21 @@ int open_feed( mpg123_handle_t *fr ) return 0; } +static mpg_ssize_t read_mpgtypes( int fd, void *buf, size_t count ) +{ + return read( fd, buf, count ); +} + +static mpg_off_t lseek_mpgtypes( int fd, mpg_off_t offset, int whence ) +{ + return lseek( fd, offset, whence ); +} + static int default_init( mpg123_handle_t *fr ) { fr->rdat.fdread = plain_read; - fr->rdat.read = fr->rdat.r_read != NULL ? fr->rdat.r_read : read; - fr->rdat.lseek = fr->rdat.r_lseek != NULL ? fr->rdat.r_lseek : lseek; + fr->rdat.read = fr->rdat.r_read != NULL ? fr->rdat.r_read : read_mpgtypes; + fr->rdat.lseek = fr->rdat.r_lseek != NULL ? fr->rdat.r_lseek : lseek_mpgtypes; fr->rdat.filelen = get_fileinfo( fr ); fr->rdat.filepos = 0;