Codecs: mp3: Move strip tags to codec

Another fix for FS#13626 (replacement for 2bd88936f7)

Change-Id: Ife5f65539457559fd908d0048d4df94649b0b894
This commit is contained in:
Roman Artiukhin 2025-05-22 15:26:54 +03:00 committed by Solomon Peachy
parent 78903e9d38
commit 38105860dc
6 changed files with 24 additions and 0 deletions

View file

@ -1408,6 +1408,16 @@ ssize_t bufread(int handle_id, size_t size, void *dest)
return size;
}
off_t bufstripsize(int handle_id, off_t size)
{
struct memory_handle *h = find_handle(handle_id);
if (!h || h->filesize < size)
return ERR_INVALID_VALUE;
h->filesize = size;
return size;
}
/* Update the "data" pointer to make the handle's data available to the caller.
Return the length of the available linear data or < 0 for failure (handle
not found).

View file

@ -81,6 +81,7 @@ int bufseek(int handle_id, size_t newpos);
int bufadvance(int handle_id, off_t offset);
off_t bufftell(int handle_id);
ssize_t bufread(int handle_id, size_t size, void *dest);
off_t bufstripsize(int handle_id, off_t size);
ssize_t bufgetdata(int handle_id, size_t size, void **data);
/***************************************************************************

View file

@ -440,6 +440,11 @@ static bool codec_loop_track_callback(void)
return global_settings.repeat_mode == REPEAT_ONE;
}
void codec_strip_filesize_callback(off_t size)
{
if (bufstripsize(ci.audio_hid, size) >= 0)
ci.filesize = size;
}
/** --- CODEC THREAD --- **/
@ -647,6 +652,7 @@ void INIT_ATTR codec_thread_init(void)
ci.configure = codec_configure_callback;
ci.get_command = codec_get_command_callback;
ci.loop_track = codec_loop_track_callback;
ci.strip_filesize = codec_strip_filesize_callback;
/* Init threading */
queue_init(&codec_queue, false);

View file

@ -89,6 +89,7 @@ struct codec_api ci = {
NULL, /* configure */
NULL, /* get_command */
NULL, /* loop_track */
NULL, /* strip_filesize */
/* kernel/ system */
#if defined(ARM_NEED_DIV0)