Commit Graph
97 Commits
Author SHA1 Message Date
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
kaienfr 4eedd7a3cd Merge remote-tracking branch 'origin/master' into Universal_Audio_Branch 2014-04-13 14:39:56 +02:00
raven02 3a0b17a50f Put in parameters for sceMp3LowLevelInit/Decode 2014-04-13 17:18:18 +08:00
kaienfr e25bc6908a Fix nonsmooth sound issue and incomplete frame at the end of source and pcm buffers.
using a std::string to save the source buffer, and changing the loading strategy so as we will not get any incomplete frame.
2014-04-12 23:16:38 +02:00
kaienfr 976c9bbfdc Fix Dead and live freezing issue.
Just a typo in sceMp3 when using the universal class.
2014-04-12 15:46:35 +02:00
kaienfr a7691737b5 Transfer old mp3 savestate into new mode; Rename class functions sceAu... to Au...
Tests on games are just ok.
2014-04-12 02:12:25 +02:00
kaienfr ee1d541c28 Update minor comments 2014-04-11 23:42:07 +02:00
kaienfr 3a12cf2ad7 Universal Audio Class
Based on my implementation in sceAac https://github.com/hrydgard/ppsspp/pull/5836
I've created a class AuCtx included in My SimpleAudioDec.cpp/.h which aims at providing a standard easy implementation to support all codecs in ffmpeg.
Here, I also completely re-code sceMp3 file with this class to give an example how to use this class, and it has solved all mp3 issues I've observed in the current master.
Tests on different freq and channels mp3 audios as:
Miku custom BGM (48kHz, stereo), Hanayaka Nari Wa ga Ichizoku(32kHz, mono, a little fast but better than before now), downstreet panic (44.1kHz, stereo), and learn jp09(44.1kHz, stero) are just all right.
Especially, I am very glad to see that Miku's Custom BGMs have no repetition issues in first tone any more and no longer stopped in the first second neither. :)
We will come into a new age to fast support new audio formats from now on I hope :P
2014-04-11 22:56:59 +02:00
kaienfr c216b535ee Save current changes 2014-04-11 15:09:31 +02:00
raven02 c711f76eaa Use ctx->mp3Channels instead of setting frame.channel in case of FF incomplete frame 2014-04-10 20:48:16 +08:00
raven02 97c68de661 Parse MP3 header to correct set the channel and samplerate 2014-04-10 20:08:34 +08:00
Henrik Rydgård f328cfe655 Merge pull request #5816 from raven02/patch-8
No need to init packet as 0
2014-04-09 15:01:00 +02:00
sum2012 292e9baa08 Fix Integer divide in zero in sceMp3Decode 2014-04-08 23:11:55 +08:00
raven02 619039aed6 No need to init packet as {0} 2014-04-07 19:29:57 +08:00
kaienfr abec329e59 Mp3 file is not always have two channels 2014-04-07 03:52:43 +02:00