Commit Graph

111 Commits

Author SHA1 Message Date
Henrik Rydgård
e6403d7157 Split GetPointer into two versions, to help with const correctness 2022-07-24 13:26:19 +02:00
Unknown W. Brackets
864d0200fb Mp3: Delay low level init. 2022-01-27 00:24:10 -08:00
Unknown W. Brackets
914d022eef Mp3: Allow decode with NULL out pointer. 2022-01-27 00:22:44 -08:00
Unknown W. Brackets
4903e14aae Mp3: Cleanup AuCtx constructor. 2022-01-27 00:22:43 -08:00
Unknown W. Brackets
f7740edc6d Debugger: Add more metadata for memory usage. 2021-02-15 15:01:21 -08:00
Unknown W. Brackets
8a437b267e Mp3: Correct logging for init. 2021-01-27 07:07:14 -08:00
Unknown W. Brackets
4b4be0f34f Mp3: Always keep sample rate from original mp3.
Our codec context is updated with the source sample rate, so this makes us
not resample at all.

Converting to stereo still seems correct.
2021-01-26 23:50:54 -08:00
Unknown W. Brackets
463fc3c792 Mp3: Allow decode without pcm pointer.
Just like other audio decoding, you're allowed to skip audio.
Also prevents a crash if the mp3 is not yet inited.
2021-01-25 23:51:55 -08:00
Unknown W. Brackets
de5488d4df Mp3: Correct error handling for newer sdk versions.
The 6.xx behavior might be important if a game relies on it to add data.
2021-01-25 20:57:34 -08:00
sum2012
e7e36ca21a Add header information 2021-01-25 20:27:56 +08:00
sum2012
72cc39f929 sceMp3Init:Add layerBits and versionBits information 2021-01-25 20:14:02 +08:00
sum2012
25a09288e9 Resample only in 32000Hz 2021-01-24 04:51:26 +08:00
sum2012
8a1b0bd210 build fix 2021-01-23 21:51:18 +08:00
sum2012
64a51e1658 Resample all mp3
Fix #5213
2021-01-22 21:12:07 +08:00
Unknown W. Brackets
b8342fb8ec SaveState: Rename ChunkFile files to Serialize.
Makes more sense and less weird than ChunkFileDoMap, etc.
2020-08-10 08:04:05 +00:00
Unknown W. Brackets
1dc5ee424b SaveState: Split out Do types to reduce headers. 2020-08-10 08:03:44 +00:00
Unknown W. Brackets
4b4e3432cd SaveState: Split Do() into a separate header. 2020-08-10 08:03:41 +00:00
Henrik Rydgård
ff65b813d9 Assorted warning fixes 2019-05-10 23:26:34 +02:00
Unknown W. Brackets
848108c6ab Mp3: Set as inited only after success. 2019-04-29 04:47:59 -07:00
Unknown W. Brackets
4ee5d2b611 Mp3: Correct seek to specific frame.
Before, it treated it as an (incomplete) seek to a byte position, which
didn't make much sense.  This matches PSP behavior per tests.
2019-04-29 04:47:59 -07:00
Unknown W. Brackets
68d2571681 Mp3: Fix ID3 tag handling.
Just ignore them and handle via frame sync, which is what the PSP does..
2019-04-29 04:47:59 -07:00
Unknown W. Brackets
bfa9aa009d Mp3: Properly flush the buffer on reset. 2019-04-29 04:47:59 -07:00
Unknown W. Brackets
925e4d1343 Mp3: Correct delay on decode. 2019-04-28 08:44:46 -07:00
Unknown W. Brackets
ac43e55194 Mp3: Loop correctly from an offset.
If the offset points to an ID3 tag or the middle of a frame, that's fine -
it should just search forward to the next sync.  FFmpeg just returns a
decode error, so we do this first.
2019-04-28 08:35:35 -07:00
Unknown W. Brackets
a3640f303b Mp3: Correct sum decoded sample count.
It shouldn't consider both channels of stereo.  This could've been causing
some games to think they were playing audio at an incorrect speed.
2019-04-28 07:30:56 -07:00
Unknown W. Brackets
bc1e6e12f5 Mp3: Return total frame count in sceMp3GetFrameNum.
This might fix games failing to play mp3s correctly.
2019-04-28 07:10:26 -07:00
Unknown W. Brackets
95d3d99343 Mp3: Fix loop func errors, clamp to -1.
Might matter if some game is checking the result.
2019-04-28 06:36:48 -07:00
Unknown W. Brackets
0d6570e8ad Mp3: Correct sceMp3GetMaxOutputSample.
Was based on output buffer size, rather than frame size, before.

Fixes choppy audio in Velocity.
2019-04-24 14:31:12 -07:00
Unknown W. Brackets
be6710ea4a Mp3: Fix errors for a bunch of init getters. 2019-04-24 14:13:46 -07:00
Unknown W. Brackets
5f82258fa1 Mp3: Detect offset headers, reject invalid data.
ID3 handling not really tested.  Left some error codes disabled in case
people are happily playing some custom BGM that the PSP didn't support.
2019-04-24 09:16:21 -07:00
Unknown W. Brackets
e4d2712897 Mp3: Apply offset to stream read buffer.
Handle errors for sceMp3CheckStreamDataNeeded as well.
2019-04-23 21:14:54 -07:00
Unknown W. Brackets
f1eaf9dc0e Mp3: Don't change buffer accounting until add.
If we just ask what we should add, that is meant to stay static until we
do actually add it.

This also reduces the max we ask for at a time, which better matches
correct behavior and might impact game behavior.
2019-04-23 20:18:16 -07:00
Unknown W. Brackets
709c9dc93c Mp3: Fix errors on sceMp3NotifyAddStreamData. 2019-04-23 19:48:01 -07:00
Unknown W. Brackets
5b9a3e6ca8 Mp3: Improve handle releasing behavior. 2019-04-22 23:01:40 -07:00
Unknown W. Brackets
4563d9487b Mp3: Better errors in sceMp3GetInfoToAddStreamData. 2019-04-22 22:57:05 -07:00
Unknown W. Brackets
351a10bd69 Mp3: Allow allocating two mp3 handles.
The handles are always 0 or 1, not pointers, which might be relied upon by
some games.  Two could be used with the same pointer.

This also makes NULL a valid pointer, which is used for low level mp3s.
2019-04-21 22:28:04 -07:00
Unknown W. Brackets
4ae2108629 Mp3: Fail to reserve if resource not inited.
Also, add a required parameter for sceMp3LowLevelInit, since it fails
unless proper values are passed for this on a PSP.
2019-04-21 19:54:34 -07:00
Unknown W. Brackets
92829d47fd Mp3: Better match resched on resource init/term.
It always seems to return 0, though.
2019-04-21 18:22:56 -07:00
Unknown W. Brackets
fcf0518223 Update all the HLE tables with arg and ret info. 2015-03-22 20:51:55 -07:00
Lioncash
4ccb838306 Core: Mark some module functions as static 2014-12-08 04:40:08 -05:00
Henrik Rydgard
cefc0bc96f Play the game's SND0.AT3 when a game is selected in the menu and on the "game screen". 2014-06-22 17:02:04 +02:00
Henrik Rydgard
1d0cc3417c Audio stuff: Cleanup, delete dead code 2014-06-22 14:01:23 +02:00
Unknown W. Brackets
29bd4b63e4 Fix a bunch of formatting warnings. 2014-05-21 07:59:58 -07:00
raven02
fbbd37d707 Delay thread for sceMp3Decode() 2014-04-15 21:55:28 +08:00
kaienfr
c6a1b0e743 Provide a new method AuCtx::AuCreateCodecContextFromSource()
This method can automatically read audio information from file (as channels, sample rate etc) via ffmpeg,
and create accurate ffmpeg's codec context.
Especially used for unknown audio format but supported  by ffmpeg.
2014-04-14 13:23:10 +02:00
kaienfr
73d8786078 Change error log to info in sceMp3LowLevelInit 2014-04-14 12:00:19 +02:00
kaienfr
d5fde0baee implement sceMp3GetFrameNum 2014-04-14 11:47:28 +02:00
kaienfr
6db28f0691 more cleanup 2014-04-13 21:42:46 +02:00
kaienfr
d5e583ee14 correct some comments. 2014-04-13 21:15:41 +02:00
kaienfr
ba34b211f1 Support sceMp3LowLevel*
Gundam G custom BGM is supported now :)
2014-04-13 21:11:04 +02:00