Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
miniaudio
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
miniaudio
Commits
cfb9f71c
Commit
cfb9f71c
authored
May 05, 2019
by
David Reid
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More C89 fixes.
parent
74225ea5
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
32 deletions
+51
-32
extras/dr_flac.h
extras/dr_flac.h
+2
-2
extras/dr_mp3.h
extras/dr_mp3.h
+7
-5
miniaudio.h
miniaudio.h
+42
-25
No files found.
extras/dr_flac.h
View file @
cfb9f71c
...
...
@@ -900,7 +900,7 @@ DRFLAC_DEPRECATED float* drflac_open_and_decode_memory_f32(const void* data, siz
#if defined(DRFLAC_X64) || defined(DRFLAC_X86)
#if defined(_MSC_VER) && !defined(__clang__)
/* MSVC. */
#if
!defined(DRFLAC_NO_SSE2)
/* Assume all MSVC compilers support SSE2 intrinsics.
*/
#if
_MSC_VER >= 1400 && !defined(DRFLAC_NO_SSE2)
/* 2005
*/
#define DRFLAC_SUPPORT_SSE2
#endif
#if _MSC_VER >= 1600 && !defined(DRFLAC_NO_SSE41)
/* 2010 */
...
...
@@ -6521,7 +6521,7 @@ static drflac_bool32 drflac__on_seek_stdio(void* pUserData, int offset, drflac_s
static
FILE
*
drflac__fopen
(
const
char
*
filename
)
{
FILE
*
pFile
;
#if
def _MSC_VER
#if
defined(_MSC_VER) && _MSC_VER >= 1400
if
(
fopen_s
(
&
pFile
,
filename
,
"rb"
)
!=
0
)
{
return
NULL
;
}
...
...
extras/dr_mp3.h
View file @
cfb9f71c
/*
MP3 audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file.
dr_mp3 - v0.4.
3 - 2019-05-05
dr_mp3 - v0.4.
4 - 2019-05-06
David Reid - mackron@gmail.com
...
...
@@ -409,7 +409,6 @@ void drmp3_free(void* p);
#ifdef DR_MP3_IMPLEMENTATION
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <limits.h>
/* For INT_MAX */
/* Disable SIMD when compiling with TCC for now. */
...
...
@@ -464,7 +463,7 @@ void drmp3_free(void* p);
#define DR_MP3_ONLY_SIMD
#endif
#if (
defined(_MSC_VER
) && (defined(_M_IX86) || defined(_M_X64))) || ((defined(__i386__) || defined(__x86_64__)) && defined(__SSE2__))
#if (
(defined(_MSC_VER) && _MSC_VER >= 1400
) && (defined(_M_IX86) || defined(_M_X64))) || ((defined(__i386__) || defined(__x86_64__)) && defined(__SSE2__))
#if defined(_MSC_VER)
#include <intrin.h>
#endif
...
...
@@ -1169,7 +1168,7 @@ static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *g
lsb
+=
DRMP3_PEEK_BITS
(
linbits
);
DRMP3_FLUSH_BITS
(
linbits
);
DRMP3_CHECK_BITS
;
*
dst
=
one
*
drmp3_L3_pow_43
(
lsb
)
*
((
int32_t
)
bs_cache
<
0
?
-
1
:
1
);
*
dst
=
one
*
drmp3_L3_pow_43
(
lsb
)
*
((
drmp3_int32
)
bs_cache
<
0
?
-
1
:
1
);
}
else
{
*
dst
=
g_drmp3_pow43
[
16
+
lsb
-
16
*
(
bs_cache
>>
31
)]
*
one
;
...
...
@@ -3259,7 +3258,7 @@ drmp3_bool32 drmp3_seek_to_pcm_frame__seek_table(drmp3* pMP3, drmp3_uint64 frame
the sample rate is being reduced in my testing. Should work fine when the input and output sample rate is the same
or a clean multiple.
*/
pMP3
->
src
.
algo
.
linear
.
alpha
=
pMP3
->
currentPCMFrame
*
((
double
)
pMP3
->
src
.
config
.
sampleRateIn
/
pMP3
->
src
.
config
.
sampleRateOut
);
pMP3
->
src
.
algo
.
linear
.
alpha
=
(
drmp3_int64
)
pMP3
->
currentPCMFrame
*
((
double
)
pMP3
->
src
.
config
.
sampleRateIn
/
pMP3
->
src
.
config
.
sampleRateOut
);
/* <-- Cast to int64 is required for VC6. */
pMP3
->
src
.
algo
.
linear
.
alpha
=
pMP3
->
src
.
algo
.
linear
.
alpha
-
(
drmp3_uint32
)(
pMP3
->
src
.
algo
.
linear
.
alpha
);
if
(
pMP3
->
src
.
algo
.
linear
.
alpha
>
0
)
{
pMP3
->
src
.
algo
.
linear
.
isPrevFramesLoaded
=
1
;
...
...
@@ -3780,6 +3779,9 @@ DIFFERENCES BETWEEN minimp3 AND dr_mp3
/*
REVISION HISTORY
================
v0.4.4 - 2019-05-06
- Fixes to the VC6 build.
v0.4.3 - 2019-05-05
- Use the channel count and/or sample rate of the first MP3 frame instead of DR_MP3_DEFAULT_CHANNELS and
DR_MP3_DEFAULT_SAMPLE_RATE when they are set to 0. To use the old behaviour, just set the relevant property to
...
...
miniaudio.h
View file @
cfb9f71c
...
...
@@ -577,12 +577,15 @@ typedef ma_uint16 wchar_t;
#endif
#endif
#ifdef _MSC_VER
#define MA_ALIGN(alignment) __declspec(align(alignment))
#if defined(_MSC_VER)
#if _MSC_VER >= 1400
#define MA_ALIGN(alignment) __declspec(align(alignment))
#endif
#elif !defined(__DMC__)
#define MA_ALIGN(alignment) __attribute__((aligned(alignment)))
#else
#define MA_ALIGN(alignment)
#define MA_ALIGN(alignment) __attribute__((aligned(alignment)))
#endif
#ifndef MA_ALIGN
#define MA_ALIGN(alignment)
#endif
#ifdef _MSC_VER
...
...
@@ -3183,7 +3186,7 @@ IMPLEMENTATION
#if defined(MA_X64) || defined(MA_X86)
#if defined(_MSC_VER) && !defined(__clang__)
/* MSVC. */
#if
!defined(MA_NO_SSE2) /* Assume all MSVC compilers support SSE2 intrinsics.
*/
#if
_MSC_VER >= 1400 && !defined(MA_NO_SSE2) /* 2005
*/
#define MA_SUPPORT_SSE2
#endif
/*#if _MSC_VER >= 1600 && !defined(MA_NO_AVX)*/ /* 2010 */
...
...
@@ -4142,11 +4145,11 @@ ma_uint32 ma_get_standard_sample_rate_priority_index(ma_uint32 sampleRate) /*
ma_uint64 ma_calculate_frame_count_after_src(ma_uint32 sampleRateOut, ma_uint32 sampleRateIn, ma_uint64 frameCountIn)
{
double srcRatio = (double)sampleRateOut / sampleRateIn;
double frameCountOutF =
frameCountIn * srcRatio;
double frameCountOutF =
(ma_int64)frameCountIn * srcRatio; /* Cast to int64 required for VC6. */
ma_uint64 frameCountOut = (ma_uint64)frameCountOutF;
/* If the output frame count is fractional, make sure we add an extra frame to ensure there's enough room for that last sample. */
if ((frameCountOutF - frameCountOut) > 0.0) {
if ((frameCountOutF -
(ma_int64)
frameCountOut) > 0.0) {
frameCountOut += 1;
}
...
...
@@ -6169,12 +6172,11 @@ WASAPI Backend
/* Some compilers don't define VerifyVersionInfoW. Need to write this ourselves. */
#if defined(__DMC__)
#define _WIN32_WINNT_VISTA 0x0600
#define VER_MINORVERSION 0x01
#define VER_MAJORVERSION 0x02
#define VER_SERVICEPACKMAJOR 0x20
#define VER_GREATER_EQUAL 0x03
#define MA_WIN32_WINNT_VISTA 0x0600
#define MA_VER_MINORVERSION 0x01
#define MA_VER_MAJORVERSION 0x02
#define MA_VER_SERVICEPACKMAJOR 0x20
#define MA_VER_GREATER_EQUAL 0x03
typedef struct {
DWORD dwOSVersionInfoSize;
...
...
@@ -6190,11 +6192,8 @@ typedef struct {
BYTE wReserved;
} ma_OSVERSIONINFOEXW;
BOOL WINAPI VerifyVersionInfoW(ma_OSVERSIONINFOEXW* lpVersionInfo, DWORD dwTypeMask, DWORDLONG dwlConditionMask);
ULONGLONG WINAPI VerSetConditionMask(ULONGLONG dwlConditionMask, DWORD dwTypeBitMask, BYTE dwConditionMask);
#else
typedef OSVERSIONINFOEXW ma_OSVERSIONINFOEXW;
#endif
typedef BOOL (WINAPI * ma_PFNVerifyVersionInfoW) (ma_OSVERSIONINFOEXW* lpVersionInfo, DWORD dwTypeMask, DWORDLONG dwlConditionMask);
typedef ULONGLONG (WINAPI * ma_PFNVerSetConditionMask)(ULONGLONG dwlConditionMask, DWORD dwTypeBitMask, BYTE dwConditionMask);
#ifndef PROPERTYKEY_DEFINED
...
...
@@ -8680,15 +8679,33 @@ ma_result ma_context_init__wasapi(const ma_context_config* pConfig, ma_context*
/*
WASAPI is only supported in Vista SP1 and newer. The reason for SP1 and not the base version of Vista is that event-driven
exclusive mode does not work until SP1.
Unfortunately older compilers don't define these functions so we need to dynamically load them in order to avoid a lin error.
*/
{
ma_OSVERSIONINFOEXW osvi;
ma_handle kernel32DLL;
ma_PFNVerifyVersionInfoW _VerifyVersionInfoW;
ma_PFNVerSetConditionMask _VerSetConditionMask;
kernel32DLL = ma_dlopen("kernel32.dll");
if (kernel32DLL == NULL) {
return MA_NO_BACKEND;
}
_VerifyVersionInfoW = (ma_PFNVerifyVersionInfoW)ma_dlsym(kernel32DLL, "VerifyVersionInfoW");
_VerSetConditionMask = (ma_PFNVerSetConditionMask)ma_dlsym(kernel32DLL, "VerSetConditionMask");
if (_VerifyVersionInfoW == NULL || _VerSetConditionMask == NULL) {
ma_dlclose(kernel32DLL);
return MA_NO_BACKEND;
}
ma_zero_object(&osvi);
osvi.dwOSVersionInfoSize = sizeof(osvi);
osvi.dwMajorVersion = HIBYTE(_WIN32_WINNT_VISTA);
osvi.dwMinorVersion = LOBYTE(_WIN32_WINNT_VISTA);
osvi.dwMajorVersion = HIBYTE(
MA
_WIN32_WINNT_VISTA);
osvi.dwMinorVersion = LOBYTE(
MA
_WIN32_WINNT_VISTA);
osvi.wServicePackMajor = 1;
if (
VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, VerSetConditionMask(VerSetConditionMask(VerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL), VER_MINORVERSION, VER_GREATER_EQUAL), VER_SERVICEPACKMAJOR,
VER_GREATER_EQUAL))) {
if (
_VerifyVersionInfoW(&osvi, MA_VER_MAJORVERSION | MA_VER_MINORVERSION | MA_VER_SERVICEPACKMAJOR, _VerSetConditionMask(_VerSetConditionMask(_VerSetConditionMask(0, MA_VER_MAJORVERSION, MA_VER_GREATER_EQUAL), MA_VER_MINORVERSION, MA_VER_GREATER_EQUAL), MA_VER_SERVICEPACKMAJOR, MA_
VER_GREATER_EQUAL))) {
result = MA_SUCCESS;
} else {
result = MA_NO_BACKEND;
...
...
@@ -28913,7 +28930,7 @@ ma_uint64 ma_src_read_deinterleaved__linear(ma_src* pSRC, ma_uint64 frameCount,
/* Read Input Data */
tBeg = pSRC->linear.timeIn;
tEnd = tBeg + (
framesToRead*factor);
tEnd = tBeg + (
(ma_int64)framesToRead*factor); /* Cast to int64 required for VC6. */
framesToReadFromClient = (ma_uint32)(tEnd) + 1 + 1; /* +1 to make tEnd 1-based and +1 because we always need to an extra sample for interpolation. */
if (framesToReadFromClient >= maxFrameCountPerChunkIn) {
...
...
@@ -29540,7 +29557,7 @@ ma_uint64 ma_src_read_deinterleaved__sinc(ma_src* pSRC, ma_uint64 frameCount, vo
prevWindowPosInSamples = pSRC->sinc.windowPosInSamples;
pSRC->sinc.timeIn += (
outputFramesToRead * factor);
pSRC->sinc.timeIn += (
(ma_int64)outputFramesToRead * factor); /* Cast to int64 required for VC6. */
pSRC->sinc.windowPosInSamples = (ma_uint32)pSRC->sinc.timeIn;
pSRC->sinc.inputFrameCount -= pSRC->sinc.windowPosInSamples - prevWindowPosInSamples;
...
...
@@ -32775,7 +32792,7 @@ ma_uint64 ma_sine_wave_read_f32_ex(ma_sine_wave* pSineWave, ma_uint64 frameCount
}
}
} else {
pSineWave->time += pSineWave->delta *
frameCount;
pSineWave->time += pSineWave->delta *
(ma_int64)frameCount; /* Cast to int64 required for VC6. */
}
return frameCount;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment