Commit Graph

204 Commits

Author SHA1 Message Date
oioitff
b1cc94b9bf Bug fix for mpeg. 2013-06-25 00:16:46 +08:00
oioitff
7bde93d534 Fix corrupted frames and implement savestate
for mpeg.
2013-06-25 00:16:42 +08:00
oioitff
c970a7e689 Use ringbuffer as a real PSP instead huge buffer. 2013-06-25 00:16:38 +08:00
Lioncash
ee164a3977 Fix a case where a pointer was being used before its null check in MediaEngine.cpp 2013-06-24 03:42:13 -04:00
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