mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-24 09:14:04 +02:00
Update dr_mp3.
This commit is contained in:
+28
-5
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
MP3 audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file.
|
MP3 audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file.
|
||||||
dr_mp3 - v0.6.21 - 2020-11-28
|
dr_mp3 - v0.6.22 - 2020-12-02
|
||||||
|
|
||||||
David Reid - mackron@gmail.com
|
David Reid - mackron@gmail.com
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define DRMP3_VERSION_MAJOR 0
|
#define DRMP3_VERSION_MAJOR 0
|
||||||
#define DRMP3_VERSION_MINOR 6
|
#define DRMP3_VERSION_MINOR 6
|
||||||
#define DRMP3_VERSION_REVISION 21
|
#define DRMP3_VERSION_REVISION 22
|
||||||
#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION)
|
#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION)
|
||||||
|
|
||||||
#include <stddef.h> /* For size_t. */
|
#include <stddef.h> /* For size_t. */
|
||||||
@@ -3487,22 +3487,38 @@ static drmp3_bool32 drmp3__on_seek_stdio(void* pUserData, int offset, drmp3_seek
|
|||||||
|
|
||||||
DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
||||||
{
|
{
|
||||||
|
drmp3_bool32 result;
|
||||||
FILE* pFile;
|
FILE* pFile;
|
||||||
|
|
||||||
if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) {
|
if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) {
|
||||||
return DRMP3_FALSE;
|
return DRMP3_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
||||||
|
if (result != DRMP3_TRUE) {
|
||||||
|
fclose(pFile);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return DRMP3_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
||||||
{
|
{
|
||||||
|
drmp3_bool32 result;
|
||||||
FILE* pFile;
|
FILE* pFile;
|
||||||
|
|
||||||
if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) {
|
if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) {
|
||||||
return DRMP3_FALSE;
|
return DRMP3_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
||||||
|
if (result != DRMP3_TRUE) {
|
||||||
|
fclose(pFile);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return DRMP3_TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -3514,7 +3530,11 @@ DRMP3_API void drmp3_uninit(drmp3* pMP3)
|
|||||||
|
|
||||||
#ifndef DR_MP3_NO_STDIO
|
#ifndef DR_MP3_NO_STDIO
|
||||||
if (pMP3->onRead == drmp3__on_read_stdio) {
|
if (pMP3->onRead == drmp3__on_read_stdio) {
|
||||||
fclose((FILE*)pMP3->pUserData);
|
FILE* pFile = (FILE*)pMP3->pUserData;
|
||||||
|
if (pFile != NULL) {
|
||||||
|
fclose(pFile);
|
||||||
|
pMP3->pUserData = NULL; /* Make sure the file handle is cleared to NULL to we don't attempt to close it a second time. */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -4438,6 +4458,9 @@ counts rather than sample counts.
|
|||||||
/*
|
/*
|
||||||
REVISION HISTORY
|
REVISION HISTORY
|
||||||
================
|
================
|
||||||
|
v0.6.22 - 2020-12-02
|
||||||
|
- Fix an error where it's possible for a file handle to be left open when initialization of the decoder fails.
|
||||||
|
|
||||||
v0.6.21 - 2020-11-28
|
v0.6.21 - 2020-11-28
|
||||||
- Bring up to date with minimp3.
|
- Bring up to date with minimp3.
|
||||||
|
|
||||||
|
|||||||
+20
-4
@@ -45200,7 +45200,7 @@ extern "C" {
|
|||||||
#define DRMP3_XSTRINGIFY(x) DRMP3_STRINGIFY(x)
|
#define DRMP3_XSTRINGIFY(x) DRMP3_STRINGIFY(x)
|
||||||
#define DRMP3_VERSION_MAJOR 0
|
#define DRMP3_VERSION_MAJOR 0
|
||||||
#define DRMP3_VERSION_MINOR 6
|
#define DRMP3_VERSION_MINOR 6
|
||||||
#define DRMP3_VERSION_REVISION 21
|
#define DRMP3_VERSION_REVISION 22
|
||||||
#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION)
|
#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION)
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
typedef signed char drmp3_int8;
|
typedef signed char drmp3_int8;
|
||||||
@@ -63599,19 +63599,31 @@ static drmp3_bool32 drmp3__on_seek_stdio(void* pUserData, int offset, drmp3_seek
|
|||||||
}
|
}
|
||||||
DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
||||||
{
|
{
|
||||||
|
drmp3_bool32 result;
|
||||||
FILE* pFile;
|
FILE* pFile;
|
||||||
if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) {
|
if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) {
|
||||||
return DRMP3_FALSE;
|
return DRMP3_FALSE;
|
||||||
}
|
}
|
||||||
return drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
||||||
|
if (result != DRMP3_TRUE) {
|
||||||
|
fclose(pFile);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return DRMP3_TRUE;
|
||||||
}
|
}
|
||||||
DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks)
|
||||||
{
|
{
|
||||||
|
drmp3_bool32 result;
|
||||||
FILE* pFile;
|
FILE* pFile;
|
||||||
if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) {
|
if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) {
|
||||||
return DRMP3_FALSE;
|
return DRMP3_FALSE;
|
||||||
}
|
}
|
||||||
return drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks);
|
||||||
|
if (result != DRMP3_TRUE) {
|
||||||
|
fclose(pFile);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return DRMP3_TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
DRMP3_API void drmp3_uninit(drmp3* pMP3)
|
DRMP3_API void drmp3_uninit(drmp3* pMP3)
|
||||||
@@ -63621,7 +63633,11 @@ DRMP3_API void drmp3_uninit(drmp3* pMP3)
|
|||||||
}
|
}
|
||||||
#ifndef DR_MP3_NO_STDIO
|
#ifndef DR_MP3_NO_STDIO
|
||||||
if (pMP3->onRead == drmp3__on_read_stdio) {
|
if (pMP3->onRead == drmp3__on_read_stdio) {
|
||||||
fclose((FILE*)pMP3->pUserData);
|
FILE* pFile = (FILE*)pMP3->pUserData;
|
||||||
|
if (pFile != NULL) {
|
||||||
|
fclose(pFile);
|
||||||
|
pMP3->pUserData = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks);
|
drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks);
|
||||||
|
|||||||
Reference in New Issue
Block a user