Reviewed QOA seek PR
This commit is contained in:
parent
0a3567439d
commit
f88604e6d5
2 changed files with 10 additions and 5 deletions
4
src/external/qoaplay.c
vendored
4
src/external/qoaplay.c
vendored
|
@ -36,7 +36,7 @@
|
|||
// QOA streaming data descriptor
|
||||
typedef struct {
|
||||
qoa_desc info; // QOA descriptor data
|
||||
|
||||
|
||||
FILE *file; // QOA file to read, if NULL, using memory buffer -> file_data
|
||||
unsigned char *file_data; // QOA file data on memory
|
||||
unsigned int file_data_size; // QOA file data on memory size
|
||||
|
@ -107,7 +107,7 @@ qoaplay_desc *qoaplay_open(const char *path)
|
|||
unsigned int sample_data_size = qoa.channels*QOA_FRAME_LEN*sizeof(short)*2;
|
||||
qoaplay_desc *qoa_ctx = QOA_MALLOC(sizeof(qoaplay_desc) + buffer_size + sample_data_size);
|
||||
memset(qoa_ctx, 0, sizeof(qoaplay_desc));
|
||||
|
||||
|
||||
qoa_ctx->file = file;
|
||||
qoa_ctx->file_data = NULL;
|
||||
qoa_ctx->file_data_size = 0;
|
||||
|
|
11
src/raudio.c
11
src/raudio.c
|
@ -1797,9 +1797,14 @@ void SeekMusicStream(Music music, float position)
|
|||
case MUSIC_AUDIO_MP3: drmp3_seek_to_pcm_frame((drmp3 *)music.ctxData, positionInFrames); break;
|
||||
#endif
|
||||
#if defined(SUPPORT_FILEFORMAT_QOA)
|
||||
//qoaplay_seek_frame seeks to QOA frame, not PCM frame, therefore we need to compute QOA frame number and change positionInFrames
|
||||
case MUSIC_AUDIO_QOA: { int qoaFrame = positionInFrames/QOA_FRAME_LEN; qoaplay_seek_frame((qoaplay_desc*)music.ctxData, qoaFrame);
|
||||
positionInFrames = ((qoaplay_desc*)music.ctxData)->sample_position; break; }
|
||||
case MUSIC_AUDIO_QOA:
|
||||
{
|
||||
int qoaFrame = positionInFrames/QOA_FRAME_LEN;
|
||||
qoaplay_seek_frame((qoaplay_desc *)music.ctxData, qoaFrame); // Seeks to QOA frame, not PCM frame
|
||||
|
||||
// We need to compute QOA frame number and update positionInFrames
|
||||
positionInFrames = ((qoaplay_desc *)music.ctxData)->sample_position;
|
||||
} break;
|
||||
#endif
|
||||
#if defined(SUPPORT_FILEFORMAT_FLAC)
|
||||
case MUSIC_AUDIO_FLAC: drflac_seek_to_pcm_frame((drflac *)music.ctxData, positionInFrames); break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue