initial commit, 4.5 stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled
This commit is contained in:
39
thirdparty/minimp3/patches/0001-msvc-arm.patch
vendored
Normal file
39
thirdparty/minimp3/patches/0001-msvc-arm.patch
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
diff --git a/thirdparty/minimp3/minimp3.h b/thirdparty/minimp3/minimp3.h
|
||||
index 3220ae1a85..49708b9846 100644
|
||||
--- a/thirdparty/minimp3/minimp3.h
|
||||
+++ b/thirdparty/minimp3/minimp3.h
|
||||
@@ -1566,7 +1566,16 @@ static void mp3d_synth(float *xl, mp3d_sample_t *dstl, int nch, float *lins)
|
||||
|
||||
#else /* MINIMP3_FLOAT_OUTPUT */
|
||||
|
||||
+#if defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_ARM))
|
||||
+ static f4 g_scale;
|
||||
+ g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 0);
|
||||
+ g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 1);
|
||||
+ g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 2);
|
||||
+ g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 3);
|
||||
+#else
|
||||
static const f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f };
|
||||
+#endif
|
||||
+
|
||||
a = VMUL(a, g_scale);
|
||||
b = VMUL(b, g_scale);
|
||||
#if HAVE_SSE
|
||||
@@ -1813,7 +1822,17 @@ void mp3dec_f32_to_s16(const float *in, int16_t *out, int num_samples)
|
||||
int aligned_count = num_samples & ~7;
|
||||
for(; i < aligned_count; i += 8)
|
||||
{
|
||||
+
|
||||
+#if defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_ARM))
|
||||
+ static f4 g_scale;
|
||||
+ g_scale = vsetq_lane_f32(32768.0f, g_scale, 0);
|
||||
+ g_scale = vsetq_lane_f32(32768.0f, g_scale, 1);
|
||||
+ g_scale = vsetq_lane_f32(32768.0f, g_scale, 2);
|
||||
+ g_scale = vsetq_lane_f32(32768.0f, g_scale, 3);
|
||||
+#else
|
||||
static const f4 g_scale = { 32768.0f, 32768.0f, 32768.0f, 32768.0f };
|
||||
+#endif
|
||||
+
|
||||
f4 a = VMUL(VLD(&in[i ]), g_scale);
|
||||
f4 b = VMUL(VLD(&in[i+4]), g_scale);
|
||||
#if HAVE_SSE
|
51
thirdparty/minimp3/patches/0002-msvc-warnings.patch
vendored
Normal file
51
thirdparty/minimp3/patches/0002-msvc-warnings.patch
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
diff --git a/thirdparty/minimp3/minimp3_ex.h b/thirdparty/minimp3/minimp3_ex.h
|
||||
index 2871705df3..2b207a25a7 100644
|
||||
--- a/thirdparty/minimp3/minimp3_ex.h
|
||||
+++ b/thirdparty/minimp3/minimp3_ex.h
|
||||
@@ -377,7 +377,7 @@ int mp3dec_load_cb(mp3dec_t *dec, mp3dec_io_t *io, uint8_t *buf, size_t buf_size
|
||||
samples = hdr_frame_samples(hdr)*frame_info.channels;
|
||||
if (3 != frame_info.layer)
|
||||
break;
|
||||
- int ret = mp3dec_check_vbrtag(hdr, frame_size, &frames, &delay, &padding);
|
||||
+ ret = mp3dec_check_vbrtag(hdr, frame_size, &frames, &delay, &padding);
|
||||
if (ret > 0)
|
||||
{
|
||||
padding *= frame_info.channels;
|
||||
@@ -529,7 +529,8 @@ int mp3dec_iterate_buf(const uint8_t *buf, size_t buf_size, MP3D_ITERATE_CB call
|
||||
|
||||
if (callback)
|
||||
{
|
||||
- if ((ret = callback(user_data, hdr, frame_size, free_format_bytes, buf_size, hdr - orig_buf, &frame_info)))
|
||||
+ ret = callback(user_data, hdr, frame_size, free_format_bytes, buf_size, hdr - orig_buf, &frame_info);
|
||||
+ if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
buf += frame_size;
|
||||
@@ -562,7 +563,7 @@ int mp3dec_iterate_cb(mp3dec_io_t *io, uint8_t *buf, size_t buf_size, MP3D_ITERA
|
||||
readed += id3v2size;
|
||||
} else
|
||||
{
|
||||
- size_t readed = io->read(buf + MINIMP3_ID3_DETECT_SIZE, buf_size - MINIMP3_ID3_DETECT_SIZE, io->read_data);
|
||||
+ readed = io->read(buf + MINIMP3_ID3_DETECT_SIZE, buf_size - MINIMP3_ID3_DETECT_SIZE, io->read_data);
|
||||
if (readed > (buf_size - MINIMP3_ID3_DETECT_SIZE))
|
||||
return MP3D_E_IOERROR;
|
||||
filled += readed;
|
||||
@@ -590,7 +591,8 @@ int mp3dec_iterate_cb(mp3dec_io_t *io, uint8_t *buf, size_t buf_size, MP3D_ITERA
|
||||
readed += i;
|
||||
if (callback)
|
||||
{
|
||||
- if ((ret = callback(user_data, hdr, frame_size, free_format_bytes, filled - consumed, readed, &frame_info)))
|
||||
+ ret = callback(user_data, hdr, frame_size, free_format_bytes, filled - consumed, readed, &frame_info);
|
||||
+ if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
readed += frame_size;
|
||||
@@ -600,7 +602,7 @@ int mp3dec_iterate_cb(mp3dec_io_t *io, uint8_t *buf, size_t buf_size, MP3D_ITERA
|
||||
memmove(buf, buf + consumed, filled - consumed);
|
||||
filled -= consumed;
|
||||
consumed = 0;
|
||||
- size_t readed = io->read(buf + filled, buf_size - filled, io->read_data);
|
||||
+ readed = io->read(buf + filled, buf_size - filled, io->read_data);
|
||||
if (readed > (buf_size - filled))
|
||||
return MP3D_E_IOERROR;
|
||||
if (readed != (buf_size - filled))
|
Reference in New Issue
Block a user