Commit Graph

350 Commits

Author SHA1 Message Date
Henrik Rydgard
67c185f8ea Update native to not wait in the opensl callback. Some minor audio optimizations. Also it seems ffmpeg has changed so update it. 2013-06-22 17:37:09 +02:00
Sacha
0839a6ed07 Fix frozen black screens for non-FFMPEG platforms 2013-06-20 01:34:34 +10:00
Sacha
45775d4fc2 Fix for non-ffmpeg platforms. Thanks unknownbrackets!
Can now get past videos on platforms such as Meego and Symbian.
Also fix some spacing and type issues.
2013-06-19 01:14:14 +10:00
Henrik Rydgård
5c14ec134c Add support for external at3plus decoders on MacOSX 64bit. 2013-06-16 12:43:37 +02:00
Unknown W. Brackets
afdaa1e299 Write video images with zeroed alpha.
Fixes #2277, Sword Art Online.
2013-06-15 10:01:57 -07:00
Unknown W. Brackets
f6534c3809 Fix a possible buffer over/underflow issue in mpeg.
Atrac seems to have a problem here, so let's be safe.
2013-06-14 23:21:12 -07:00
Unknown W. Brackets
9406561492 The seek callback should return new offset.
Like lseek().  Not the passed param.
2013-06-14 23:12:56 -07:00
Unknown W. Brackets
2ec8106809 Ensure FFmpeg doesn't corrupt an early keyframe.
When the analyze func runs, it seems to check between 2-4% (or so?) of the
stream, which for longer videos especially we don't have yet.  Returning a
read failure here seems to truncate that keyframe sometimes.

FFmpeg asks for the total size when this happens, which we were ignoring.
Handling it fixes this, as FFmpeg apparently realizes we ran out of data.
2013-06-14 17:56:27 -07:00
oioitff
23cefa03c6 Delay video decode until we have enough packets. 2013-06-14 01:16:59 -07:00
Unknown W. Brackets
6192feb27a Don't return less than ffmpeg wants 'til the end.
Fixes #2223 (at least for the games I have.)
2013-06-14 01:14:40 -07:00
Unknown W. Brackets
16b0a99e5f Adjust some default values for SAS audio. 2013-06-12 08:02:56 -07:00
Unknown W. Brackets
8b4b4a6b8c Use the 1 bit in sceSasRevVON() and cleanup.
Not used yet anyway.
2013-06-12 07:59:54 -07:00
Sacha
5aba914a42 Build fix for non-ffmpeg and non-gcc non-++11. 2013-06-12 10:51:30 +10:00
Henrik Rydgard
b8959b956b sceMpegGetUserDataAu: return ERROR_MPEG_NO_DATA. Add some notes for later implementing mpeg user data. Fixes part of #2172. Thanks to [unknown] 2013-06-11 19:27:02 +02:00
Henrik Rydgård
6b84743082 Merge pull request #2217 from oioitff/mpeg-fix
Add support for multiple video/audio stream.
2013-06-11 07:42:19 -07:00
oioitff
77a17cacc5 Add support for multiple video/audio stream. 2013-06-11 19:04:14 +08:00
Henrik Rydgard
a581e0d180 Avoid division by zero in audio envelope processing. Fixes sound FX on android in some games. 2013-06-11 11:05:34 +02:00
Unknown W. Brackets
b5ac7eead1 Cleanup some SAS constructors. 2013-06-11 00:37:29 -07:00
Unknown W. Brackets
2ce4cd245f Allow a video end a couple packets from end.
Fixes #2206, Patapon 3.  Possibly we don't even need this check at all,
but I'm not sure.
2013-06-10 23:18:36 -07:00
Henrik Rydgard
43af3d81d1 Add STATE_SUSTAIN code similar to JPCSP, should fix sound fx again in some games.
Please comment in the github commit if this breaks anything. Fixes #2189
2013-06-10 22:18:50 +02:00
Henrik Rydgård
3185594d3c Merge pull request #2186 from unknownbrackets/sas-minor2
Add some error handling in sceSas, delay sceSasCore()
2013-06-09 23:48:25 -07:00
Unknown W. Brackets
3aaabfb987 Revert #1974, the other fixes are better.
This is no longer needed for games I have, and it breaks Final Fantasy
Tactics' sound effects.

Looking at JPCSP for insight, I saw that it re-enables loops if you set a
voice even with a different address (I think?) but that seems strange.
2013-06-09 22:47:01 -07:00
Unknown W. Brackets
b7152c2f27 Correct envelope scaling in sas mixing.
Sound effects seem a bit loud, but this matches what JPCSP does and I've
added comments based on my understanding of it.  It makes sense.

This makes all the sounds that never get muted when the envelope hits 0 go
away.  Hurray.

Thanks to help from @i1x.
2013-06-09 19:28:21 -07:00
oioitff
32fb534375 Improve mpeg timestamp.
Read 6 bytes timestamp instead.
2013-06-10 04:21:36 +08:00
Sacha
29d1e40c79 Buildfix for Blackberry, Linux, Symbian, non-ffmpeg platforms, Meego, ... 2013-06-09 22:53:22 +10:00
Henrik Rydgård
62f8727bca Merge pull request #2165 from oioitff/atrac-fix
Implement __sceSasConcatenateATRAC3 and tiny bug fix for sceAtrac.
2013-06-09 04:54:45 -07:00
Henrik Rydgard
04d24012e1 Prevent crashing the emu in stepVideo when things have gone very wrong. 2013-06-09 13:45:48 +02:00
oioitff
c98adee757 Implement __sceSasConcatenateATRAC3.
.
2013-06-09 19:07:02 +08:00
Henrik Rydgård
00d589e1af Merge pull request #2150 from oioitff/atrac-fix
Partly implement _sceAtracGetContextAddress and __sceSasSetVoiceATRAC3.
2013-06-08 11:00:11 -07:00
oioitff
883d60fad3 Use a pointer for sampleQueue in SasAtrac3. 2013-06-09 01:58:06 +08:00
oioitff
3c13b574e3 Partly implement __sceSasSetVoiceATRAC3.
Fix Sol Trigger hang up issue.
2013-06-09 01:34:38 +08:00
Henrik Rydgard
f3224a60e1 Return "libat3plusdecoder.so" as at3plus decoder filename on non-Win/android platforms 2013-06-08 17:44:18 +02:00
Unknown W. Brackets
14034fd9c1 PSP can decode directly to vram, so detect that.
Not sure if any games do this but I did it in a test.
2013-06-08 04:52:37 -07:00
Unknown W. Brackets
4de27773d2 Detect audio end separately from video end.
Fixes Crisis Core, broken by Wipeout Pure fix.
2013-06-08 03:00:50 -07:00
Unknown W. Brackets
be7fd47fc2 Calculate packets left based on decode, not read.
This seems to be more correct.  Fixes #2039.
2013-06-08 03:00:49 -07:00
Unknown W. Brackets
073282217c Cut down on void *'s for easier debugging.
Nice to be able to see inside structs with the debugger.
2013-06-08 03:00:49 -07:00
Unknown W. Brackets
36eb90293e Don't use m_pFrame->pkt_duration directly.
Docs say you're supposed to call this func instead.
2013-06-08 03:00:48 -07:00
Unknown W. Brackets
6f9a879aad Set video end only when we run out of frames. 2013-06-08 03:00:48 -07:00
Unknown W. Brackets
b04b601958 Make sure to decode reordered mpeg frames. 2013-06-08 03:00:48 -07:00
Unknown W. Brackets
17907b204b Return a more accurate mpeg ringbuffer decode pos. 2013-06-08 03:00:46 -07:00
oioitff
49ecb1bdc0 Add support for mono CG audios. 2013-06-07 17:14:26 +08:00
Henrik Rydgard
a7f7410668 Merge branch 'master' into plugindownload 2013-06-05 16:13:55 +02:00
oioitff
156c4ca78a Fix crash for invalid mpeg header. 2013-06-05 15:46:04 +08:00
Henrik Rydgard
394a6a0f5c Merge branch 'master' into plugindownload 2013-06-04 23:54:50 +02:00
Henrik Rydgard
74638ef4ae More autodownload UI work etc 2013-06-04 22:32:52 +02:00
oioitff
a3788162c5 Add ffmpeg logs for MediaEngine in debug mode 2013-06-05 00:27:22 +08:00
oioitff
c913f92427 More improvement for mpeg pts.
The mpeglastTimeStamp is probably wrong in some videos. So a video is
end only if there is no more data for decoding.
2013-06-04 23:03:09 +08:00
Henrik Rydgard
0c7833796b Merge branch 'master' into plugindownload
Conflicts:
	Core/Core.vcxproj
	Windows/PPSSPP.vcxproj
	native
2013-06-03 23:42:49 +02:00
oioitff
a9ba797ce5 Improve mpeg pts.
A real PSP return a value start from 0.
2013-06-03 17:00:58 +08:00
Unknown W. Brackets
3d5f818095 Add a bounds check to writeVideoImageWithRange().
Fixes crash in Jeanne d' Arc, which sends 480x480.
2013-06-02 11:40:38 -07:00
Henrik Rydgard
e5090e36c2 More plugin stuff 2013-06-02 14:38:22 +02:00
Sacha
aa67301618 Buildfix for non-ffmpeg platforms. 2013-06-02 20:05:40 +10:00
Unknown W. Brackets
777bcc36b2 Android/etc. buildfix.
I keep thinking enums can be forward declared... and MSVC allows it.
2013-06-02 02:46:16 -07:00
Unknown W. Brackets
d69da21189 Also convert directly inside sceMpegAvcCsc().
Erp, needed this too, what was I thinking?
2013-06-02 01:47:55 -07:00
Unknown W. Brackets
8dfeeee4a1 Handle 16-bit video conversion correctly.
Still directly converting, turns out colors are swapped and linesize needs
adjustment.  Oops.
2013-06-02 01:37:16 -07:00
Unknown W. Brackets
b32a52f35c Convert videos directly to the desired format.
This still converts at least in some cases, but less.  But these seem
backwards, why are the BGR formats converting to RGB?
2013-06-02 00:31:16 -07:00
Sacha
b39a572043 Buildfixes.
Fix C++11 usage.
Remove redundancy.
Fix st_*time re-usage.
2013-06-02 13:26:39 +10:00
Unknown W. Brackets
3d1e426e4a Send games a free packet count that makes sense. 2013-06-01 15:33:47 -07:00
Henrik Rydgard
230d0b3679 Buildfixes 2013-06-01 23:37:51 +02:00
Henrik Rydgård
0e65c23346 Merge pull request #2020 from oioitff/mpeg-support
Rewrite some core functions for sceMpeg with ffmpeg.
2013-06-01 14:24:48 -07:00
oioitff
e099b8d954 Rewrite and implement MediaEngine. 2013-06-02 01:29:22 +08:00
oioitff
e0e8b2ec81 Add MpegDemux for demuxing audios. 2013-06-02 01:25:53 +08:00
Henrik Rydgard
1e84dd23d7 Hide atrac3+ option if no codec dll/.so installed 2013-06-01 19:12:11 +02:00
raven02
25b8007407 Toggle Atrac3+ in [Sound] section 2013-06-01 23:10:31 +08:00
Henrik Rydgard
3d06c6784c Buildfix 2013-05-30 19:13:39 +02:00
Henrik Rydgard
839e5eccc6 Copy at3plusdecoder.so to internal memory to solve android permission issues on devices with no-exec mounted SD cards. 2013-05-30 19:06:56 +02:00
Henrik Rydgard
ae23c26af1 Print more debug info if the library load fails. 2013-05-30 18:14:52 +02:00
Henrik Rydgard
f9af7007d2 Add support for loading at3plusdecoder.so on Android. Make sure the .so files are at /PSP/libs/armeabi-v7a and/or /PSP/libs/armeabi on your Android external storage. 2013-05-30 15:26:12 +02:00
Henrik Rydgard
820fd52c48 Load at3plus decoders through "at3plusdecoder64.dll" under win64.
This way 32 and 64-bit builds can coexist in the same folder.
2013-05-30 13:58:10 +02:00
Henrik Rydgard
169ca97377 Change atrac3plus decoder dll name to be neutral. Add basic non-windows support for loading it (not tested yet). 2013-05-30 13:51:44 +02:00
oioitff
852a07d347 Remove all dshow stuff. 2013-05-30 19:14:18 +08:00
oioitff
b0a3f803e0 Add support for new atrac3plus decoder 2013-05-30 17:33:47 +08:00
Unknown W. Brackets
42ced72b13 Fix undead VAG loops, KeyOff should stop them. 2013-05-28 23:05:34 -07:00
Henrik Rydgård
0abf322c1d Merge pull request #1961 from unknownbrackets/savestates
Fix some missing things from save states
2013-05-28 00:41:01 -07:00
Henrik Rydgård
d76d05b338 Merge pull request #1957 from unknownbrackets/perf
Small performance improvement in VAG decoding
2013-05-28 00:39:43 -07:00
Unknown W. Brackets
4e76d45bca Add pcmIndex to sas voice DoState().
Otherwise we can get crashes.
2013-05-27 23:49:46 -07:00
Unknown W. Brackets
1107571af5 Don't cap predict_nr, just make the table bigger. 2013-05-27 18:16:41 -07:00
Unknown W. Brackets
e8be3d8da2 Decode VAG samples in one shot, not two. 2013-05-27 18:16:40 -07:00
Unknown W. Brackets
7b154f9a2e Fix VAG looping. 2013-05-27 16:48:59 -07:00
Henrik Rydgård
ce873ccbeb Merge branch 'master' of https://github.com/raven02/ppsspp into raven02-master
Conflicts:
	Core/HW/audioPlayer.cpp
2013-05-27 19:45:57 +02:00
raven02
83cb0869f4 Add NOTICE_LOG to indicate the filter load successfully 2013-05-26 23:55:54 +08:00
Henrik Rydgard
2ef4a05a49 Disable auto-loading the directshow filter by default as it's unstable. Add new INI setting [Sound] AutoLoadDShow to turn it back on. 2013-05-25 17:01:18 +02:00
Sacha
260cc305f5 Fix Linux/Harmattan builds. 2013-05-25 14:38:34 +10:00
Henrik Rydgård
f6acdabc59 Merge pull request #1874 from oioitff/atrac3plus
Use filter directly without register.
2013-05-24 06:44:05 -07:00
Henrik Rydgård
2bf1beb8d8 Merge pull request #1898 from oioitff/audio-fix
Implement pcm voice correctly
2013-05-23 13:14:20 -07:00
oioitff
338f7ae700 Use another method to scale by envelopValue. 2013-05-24 04:08:37 +08:00
oioitff
99f8041375 Implement pcm voice correctly. 2013-05-24 00:42:15 +08:00
oioitff
69e1671a90 Bug fix when loading filter failed. 2013-05-21 02:03:36 +08:00
oioitff
c700f90503 Use filter directly without register. 2013-05-21 00:57:17 +08:00
Henrik Rydgård
28908f993b Merge pull request #1870 from oioitff/atrac3plus
Remove an useless command in audioPlayer.
2013-05-20 07:18:26 -07:00
oioitff
b28d72ed27 Remove an useless command in audioPlayer. 2013-05-20 22:16:40 +08:00
Henrik Rydgård
a1060ffabd Merge pull request #1803 from oioitff/atrac3plus
Add atrac3plus filter for windows
2013-05-19 08:09:01 -07:00
Unknown W. Brackets
3931f07852 Fix a couple bad bounds checks in VAG/Mpeg. 2013-05-18 10:19:12 -07:00
oioitff
5e27af6eea Remove the dependency on DirectShow SDK. 2013-05-14 19:41:08 +08:00
oioitff
9b0c22f87d Add atrac3plus lib. 2013-05-14 19:01:33 +08:00
oioitff
8d10724b64 Implement volume control for _sceSasCoreWithMix.
Tested with Fate Unlimited Code.
2013-05-11 04:30:02 +08:00
raven02
2b89ccfa50 Use Dark Grey to identify CG is running instead of black 2013-04-28 10:43:31 +08:00
oioitff
62f79989bd Implement _sceSasCoreWithMix correctly.
The inoutAddr should be both input and output buffer address.
2013-04-23 22:00:14 +08:00
oioitff
3ff492646b Add simple mono support for sasaudio 2013-04-13 19:01:22 +08:00
oioitff
828b5a0be8 Implement pcm voices for sasaudio.
Tested with NPJH 50569: Ore no Imouto2.
2013-04-13 18:58:13 +08:00
Henrik Rydgård
6a8096c0de Merge pull request #1187 from raven02/patch-7
Add default ADSR rate/ curvetype and default volume
2013-04-06 00:46:57 -07:00
raven02
87b5b195e3 Add default volume value for left/right channel 2013-04-06 15:41:49 +08:00
raven02
e4f3571e05 Add default ADSR value for rate and curve type 2013-04-06 15:39:28 +08:00
Unknown W. Brackets
4974124587 Fix some small constant-comparison type warnings. 2013-04-05 20:58:35 -07:00
raven02
c7d2626bca Set fake image to black 2013-03-18 19:28:10 +08:00
Unknown W. Brackets
c20251ab30 Organize mem access a bit in SasInstance::Mix().
It's a bit faster but this isn't really the hottest part...
2013-03-16 11:59:44 -07:00
raven02
19599a27d2 Shift << 3 in sasAudio 2013-03-12 21:21:10 +08:00
raven02
4b86fd7567 Fake VOICETYPE_PCM code 2013-03-12 09:14:31 +08:00
Unknown W. Brackets
2cb2601456 Fix crash executing the sascore test. 2013-02-23 18:35:22 -08:00
Unknown W. Brackets
363d1dbe19 Fix some misc. warnings. 2013-02-18 08:44:59 -08:00
Henrik Rydgard
686c083b6f sceSas: initialize some stuff 2013-02-16 14:07:04 +01:00
Unknown W. Brackets
a4032c5170 Simplify savestate code so it's all automagical.
If you can't beat 'em, join 'em?
2013-02-04 08:27:01 -08:00
Unknown W. Brackets
2a6457b6ab Cut down on h files including PointerWrap.
This makes changes to it a bit faster to build.
2013-02-04 08:26:59 -08:00
Henrik Rydgard
ddd0ce4c18 Implement a PSP model checking function, comment fix 2013-02-02 12:38:24 +01:00
raven02
a4c78888c0 Set predict_nr = 0 when predict_nr greater than VAG array length 2013-01-31 22:16:15 +08:00
raven02
693619ed6e Init loop to true which ignore VAG loop and set sampleRate for each voices 2013-01-31 15:00:58 +08:00
Unknown W. Brackets
74f3b81846 Check for a null pointer when writing video. 2013-01-28 02:16:06 -08:00
raven02
4a1218387d Add effectLeft and effectRight 2013-01-27 22:34:14 +08:00
raven02
523f026c3d Restore shift volume to 15 2013-01-27 22:16:15 +08:00
Henrik Rydgard
0930b5b587 Typo + warning fix 2013-01-25 19:08:28 +01:00
Henrik Rydgard
4deaec8924 Make ADPCM audio a little less crackly in a hacky way.. 2013-01-25 18:36:05 +01:00
Henrik Rydgard
31b73a0b99 No need for double precision in ADPCM decoder 2013-01-25 18:29:15 +01:00
Unknown W. Brackets
cb0538c4db Can't just do that, might get the vtbl. Arg. 2012-12-29 03:19:13 -08:00
Unknown W. Brackets
6f9f9e1c98 Merge branch 'master' into mediaengine.
Note: doesn't compile, just fixes conflicts.

Conflicts:
	Core/HLE/sceKernel.cpp
	Core/HLE/sceKernelThread.cpp
	Core/HLE/sceKernelThread.h
2012-12-28 22:32:56 -08:00
Unknown W. Brackets
bcecd881b1 Savestate cleanup + be more careful with vectors.
For some reason I debugged it going into std::string so I just made
them all more explicit which fixed everything.
2012-12-28 13:55:31 -08:00
Unknown W. Brackets
e665618891 Fix kernel object loading (ouch) from save states.
Also a fix to SAS voices not saving right.
2012-12-28 13:55:30 -08:00
Unknown W. Brackets
7a2adfd8a5 Don't store pointers in VagDecoder directly.
I'm assuming it's fine to not fix read_ when end_ happens.
Shouldn't be any performance penality, really.
2012-12-28 13:55:29 -08:00
Unknown W. Brackets
19aaca2705 Start save stating audio, plus minor fixes. 2012-12-28 13:55:29 -08:00
Unknown W. Brackets
fbe4fd396e Add a mechanism to restore event callback ptrs.
Ugh, more duplicates.  Maybe can find a good way to refactor.
2012-12-28 13:55:24 -08:00
Henrik Rydgård
ddd3e4384f audio: need to clear the rest of the buffer at end of sample. 2012-12-26 19:12:23 +01:00
Henrik Rydgård
27e8e4c6fb Stop ADPCM decoder from running off into space. improves motogp audio. 2012-12-26 09:07:52 +01:00
Henrik Rydgård
fb238c685e SasAudio: voice.samplePos -> voice.sampleFrac. Gets rid of annoying overflow errors. 2012-12-26 08:53:19 +01:00
Henrik Rydgård
38a7059bdd Initialize some stuff in SasAudio, fixes some audio issues on my mac 2012-12-25 10:08:57 +01:00
Unknown W. Brackets
3464fd6b00 Fix crash with unitialized var in mpeg code. 2012-12-24 11:56:51 -08:00
raven02
c7a9c40827 Fix audio crash in FF type-0 2012-12-23 23:27:54 +08:00
Unknown W. Brackets
217bdc275e Fix some type-conversion warnings. 2012-12-21 16:07:38 -08:00
Henrik Rydgard
2b8419e0ff Attempt more accurate frame timing (windows). Increase audio volume. 2012-12-18 10:25:57 +01:00
Henrik Rydgard
ab35c7f612 Merge branch 'master' into mediaengine 2012-12-18 00:05:09 +01:00
Henrik Rydgard
c3819ec721 Fix a possible crash in audio code 2012-12-17 21:59:43 +01:00
Henrik Rydgard
913f392d66 Move the SasInstance to the heap. Some cleanup. 2012-12-17 21:43:31 +01:00
Henrik Rydgard
b5808eaf47 optimizin', bugfixin' 2012-12-17 20:43:43 +01:00
Henrik Rydgard
9acfd50139 Fix one cause of audio choppiness - we were dropping samples when audio functions blocked. Also some cleanup. 2012-12-17 20:15:23 +01:00
Henrik Rydgard
bc214dcf37 Merge branch 'master' into mediaengine
Conflicts:
	Common/LogManager.cpp
	Core/CMakeLists.txt
	Core/Core.vcxproj
	Core/Core.vcxproj.filters
	Core/CoreParameter.h
	Core/HLE/sceAudio.cpp
	Core/HLE/sceKernel.cpp
	Core/HLE/sceKernelThread.cpp
	Core/HLE/sceMpeg.cpp
	android/jni/Android.mk
2012-12-17 18:48:32 +01:00
Henrik Rydgard
1400237d0e Lots of various work on sceSas. ADSR envelopes, correct looping, etc etc... Still far from perfect but better. 2012-12-17 18:07:25 +01:00
Henrik Rydgard
369afa5b93 sceSas: Resample audio according to pitch 2012-12-16 21:20:16 +01:00
Henrik Rydgard
15b7c1c96c sceSas cleanup 2012-12-16 20:40:49 +01:00
Henrik Rydgard
8053c244b8 Implement large chunks of sceMpeg and scePsmf with JPSCP as a guide.
Not yet hooked up to FFMPEG and doesn't quite work yet.
2012-11-13 18:07:20 +01:00
Henrik Rydgard
1127c72124 some initial mediaengine work 2012-11-12 20:53:16 +01:00
Henrik Rydgard
1b90a8b327 Another memstick ioctl, minor fixes 2012-11-09 10:01:54 +01:00
Henrik Rydgard
d086c18db7 MemoryStick HW 2012-11-06 15:45:13 +01:00