You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-30 18:30:54 +00:00
Replace minimp3 with dr_mp3
This commit is contained in:
32
thirdparty/README.md
vendored
32
thirdparty/README.md
vendored
@@ -200,6 +200,20 @@ Patches:
|
||||
- `0001-ciso646-version.patch` (GH-105913)
|
||||
|
||||
|
||||
## dr_libs
|
||||
|
||||
- Upstream: https://github.com/mackron/dr_libs
|
||||
- Version: mp3-0.7.2 (547c211a87a06a42bf62c1366616aa14b57dd429, 2025)
|
||||
- License: Public Domain or Unlicense or MIT-0
|
||||
|
||||
Files extracted from upstream source:
|
||||
|
||||
- `dr_mp3.h`
|
||||
- `LICENSE`
|
||||
|
||||
`dr_bridge.h` is a Godot file and should be preserved on updates.
|
||||
|
||||
|
||||
## embree
|
||||
|
||||
- Upstream: https://github.com/embree/embree
|
||||
@@ -709,24 +723,6 @@ Patches:
|
||||
- `0002-clang-std-replacements-leak.patch` (GH-85208)
|
||||
|
||||
|
||||
## minimp3
|
||||
|
||||
- Upstream: https://github.com/lieff/minimp3
|
||||
- Version: git (afb604c06bc8beb145fecd42c0ceb5bda8795144, 2021)
|
||||
- License: CC0 1.0
|
||||
|
||||
Files extracted from upstream repository:
|
||||
|
||||
- `minimp3.h`
|
||||
- `minimp3_ex.h`
|
||||
- `LICENSE`
|
||||
|
||||
Patches:
|
||||
|
||||
- `0001-msvc-arm.patch` (GH-64921)
|
||||
- `0002-msvc-warnings.patch` (GH-66545)
|
||||
|
||||
|
||||
## miniupnpc
|
||||
|
||||
- Upstream: https://github.com/miniupnp/miniupnp
|
||||
|
||||
47
thirdparty/dr_libs/LICENSE
vendored
Normal file
47
thirdparty/dr_libs/LICENSE
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
This software is available as a choice of the following licenses. Choose
|
||||
whichever you prefer.
|
||||
|
||||
===============================================================================
|
||||
ALTERNATIVE 1 - Public Domain (www.unlicense.org)
|
||||
===============================================================================
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
|
||||
software, either in source code form or as a compiled binary, for any purpose,
|
||||
commercial or non-commercial, and by any means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors of this
|
||||
software dedicate any and all copyright interest in the software to the public
|
||||
domain. We make this dedication for the benefit of the public at large and to
|
||||
the detriment of our heirs and successors. We intend this dedication to be an
|
||||
overt act of relinquishment in perpetuity of all present and future rights to
|
||||
this software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
===============================================================================
|
||||
ALTERNATIVE 2 - MIT No Attribution
|
||||
===============================================================================
|
||||
Copyright 2020 David Reid
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
61
thirdparty/dr_libs/dr_bridge.h
vendored
Normal file
61
thirdparty/dr_libs/dr_bridge.h
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
/**************************************************************************/
|
||||
/* dr_bridge.h */
|
||||
/**************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/**************************************************************************/
|
||||
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
||||
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#include "core/io/file_access.h"
|
||||
#include "core/os/memory.h"
|
||||
#include "core/typedefs.h"
|
||||
|
||||
typedef struct {
|
||||
void *user_data;
|
||||
void *(*malloc_func)(size_t size, void *user_data);
|
||||
void *(*realloc_func)(void *ptr, size_t size, void *user_data);
|
||||
void (*free_func)(void *ptr, void *user_data);
|
||||
} dr_allocation_callbacks;
|
||||
|
||||
static void *dr_memalloc(size_t size, void *user_data) {
|
||||
return memalloc(size);
|
||||
}
|
||||
|
||||
static void *dr_memrealloc(void *ptr, size_t size, void *user_data) {
|
||||
return memrealloc(ptr, size);
|
||||
}
|
||||
|
||||
static void dr_memfree(void *ptr, void *user_data) {
|
||||
if (ptr) {
|
||||
memfree(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
const dr_allocation_callbacks dr_alloc_calls = {
|
||||
nullptr,
|
||||
dr_memalloc,
|
||||
dr_memrealloc,
|
||||
dr_memfree
|
||||
};
|
||||
5374
thirdparty/dr_libs/dr_mp3.h
vendored
Normal file
5374
thirdparty/dr_libs/dr_mp3.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
117
thirdparty/minimp3/LICENSE
vendored
117
thirdparty/minimp3/LICENSE
vendored
@@ -1,117 +0,0 @@
|
||||
CC0 1.0 Universal
|
||||
|
||||
Statement of Purpose
|
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer
|
||||
exclusive Copyright and Related Rights (defined below) upon the creator and
|
||||
subsequent owner(s) (each and all, an "owner") of an original work of
|
||||
authorship and/or a database (each, a "Work").
|
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for the
|
||||
purpose of contributing to a commons of creative, cultural and scientific
|
||||
works ("Commons") that the public can reliably and without fear of later
|
||||
claims of infringement build upon, modify, incorporate in other works, reuse
|
||||
and redistribute as freely as possible in any form whatsoever and for any
|
||||
purposes, including without limitation commercial purposes. These owners may
|
||||
contribute to the Commons to promote the ideal of a free culture and the
|
||||
further production of creative, cultural and scientific works, or to gain
|
||||
reputation or greater distribution for their Work in part through the use and
|
||||
efforts of others.
|
||||
|
||||
For these and/or other purposes and motivations, and without any expectation
|
||||
of additional consideration or compensation, the person associating CC0 with a
|
||||
Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
|
||||
and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
|
||||
and publicly distribute the Work under its terms, with knowledge of his or her
|
||||
Copyright and Related Rights in the Work and the meaning and intended legal
|
||||
effect of CC0 on those rights.
|
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||
protected by copyright and related or neighboring rights ("Copyright and
|
||||
Related Rights"). Copyright and Related Rights include, but are not limited
|
||||
to, the following:
|
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display, communicate,
|
||||
and translate a Work;
|
||||
|
||||
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||
|
||||
iii. publicity and privacy rights pertaining to a person's image or likeness
|
||||
depicted in a Work;
|
||||
|
||||
iv. rights protecting against unfair competition in regards to a Work,
|
||||
subject to the limitations in paragraph 4(a), below;
|
||||
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data in
|
||||
a Work;
|
||||
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||
European Parliament and of the Council of 11 March 1996 on the legal
|
||||
protection of databases, and under any national implementation thereof,
|
||||
including any amended or successor version of such directive); and
|
||||
|
||||
vii. other similar, equivalent or corresponding rights throughout the world
|
||||
based on applicable law or treaty, and any national implementations thereof.
|
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention of,
|
||||
applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
|
||||
unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
|
||||
and Related Rights and associated claims and causes of action, whether now
|
||||
known or unknown (including existing as well as future claims and causes of
|
||||
action), in the Work (i) in all territories worldwide, (ii) for the maximum
|
||||
duration provided by applicable law or treaty (including future time
|
||||
extensions), (iii) in any current or future medium and for any number of
|
||||
copies, and (iv) for any purpose whatsoever, including without limitation
|
||||
commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
|
||||
the Waiver for the benefit of each member of the public at large and to the
|
||||
detriment of Affirmer's heirs and successors, fully intending that such Waiver
|
||||
shall not be subject to revocation, rescission, cancellation, termination, or
|
||||
any other legal or equitable action to disrupt the quiet enjoyment of the Work
|
||||
by the public as contemplated by Affirmer's express Statement of Purpose.
|
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason be
|
||||
judged legally invalid or ineffective under applicable law, then the Waiver
|
||||
shall be preserved to the maximum extent permitted taking into account
|
||||
Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
|
||||
is so judged Affirmer hereby grants to each affected person a royalty-free,
|
||||
non transferable, non sublicensable, non exclusive, irrevocable and
|
||||
unconditional license to exercise Affirmer's Copyright and Related Rights in
|
||||
the Work (i) in all territories worldwide, (ii) for the maximum duration
|
||||
provided by applicable law or treaty (including future time extensions), (iii)
|
||||
in any current or future medium and for any number of copies, and (iv) for any
|
||||
purpose whatsoever, including without limitation commercial, advertising or
|
||||
promotional purposes (the "License"). The License shall be deemed effective as
|
||||
of the date CC0 was applied by Affirmer to the Work. Should any part of the
|
||||
License for any reason be judged legally invalid or ineffective under
|
||||
applicable law, such partial invalidity or ineffectiveness shall not
|
||||
invalidate the remainder of the License, and in such case Affirmer hereby
|
||||
affirms that he or she will not (i) exercise any of his or her remaining
|
||||
Copyright and Related Rights in the Work or (ii) assert any associated claims
|
||||
and causes of action with respect to the Work, in either case contrary to
|
||||
Affirmer's express Statement of Purpose.
|
||||
|
||||
4. Limitations and Disclaimers.
|
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||
surrendered, licensed or otherwise affected by this document.
|
||||
|
||||
b. Affirmer offers the Work as-is and makes no representations or warranties
|
||||
of any kind concerning the Work, express, implied, statutory or otherwise,
|
||||
including without limitation warranties of title, merchantability, fitness
|
||||
for a particular purpose, non infringement, or the absence of latent or
|
||||
other defects, accuracy, or the present or absence of errors, whether or not
|
||||
discoverable, all to the greatest extent permissible under applicable law.
|
||||
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||
that may apply to the Work or any use thereof, including without limitation
|
||||
any person's Copyright and Related Rights in the Work. Further, Affirmer
|
||||
disclaims responsibility for obtaining any necessary consents, permissions
|
||||
or other rights required for any use of the Work.
|
||||
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||
party to this document and has no duty or obligation with respect to this
|
||||
CC0 or use of the Work.
|
||||
|
||||
For more information, please see
|
||||
<http://creativecommons.org/publicdomain/zero/1.0/>
|
||||
|
||||
1884
thirdparty/minimp3/minimp3.h
vendored
1884
thirdparty/minimp3/minimp3.h
vendored
File diff suppressed because it is too large
Load Diff
1399
thirdparty/minimp3/minimp3_ex.h
vendored
1399
thirdparty/minimp3/minimp3_ex.h
vendored
File diff suppressed because it is too large
Load Diff
39
thirdparty/minimp3/patches/0001-msvc-arm.patch
vendored
39
thirdparty/minimp3/patches/0001-msvc-arm.patch
vendored
@@ -1,39 +0,0 @@
|
||||
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
|
||||
@@ -1,51 +0,0 @@
|
||||
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