Commit Graph
287 Commits
Author SHA1 Message Date
shenweip 6eb1d1b742 Check whether the audio is actually played in psmf player
Fixes #11898, some audio contained in pmf videos seem not be actually played by the games. current code prevents video from moving forward for waiting auido and sync, similar issue will happen.
2020-02-27 17:35:16 +08:00
Unknown W. Brackets 913121cf2b Io: Consistently use error codes with OpenFile().
This gets rid of OpenWithError(), and just always returns a negative value
on error for OpenFile().  Also fixed the sequence rollover, which could've
returned 0.

0 should be considered a valid handle ideally, but left it never returning
0 to simplify cleanup in some areas.
2019-10-20 11:03:37 -07:00
Unknown W. Brackets ad274d5b72 Psmf: Cleanup finishThread save state handling. 2019-09-01 08:16:05 -07:00
Unknown W. Brackets dd804660c9 Psmf: Use kernel memory for helper thread stack.
Also, thread stacks must be 0x200 or larger.
2019-09-01 08:16:05 -07:00
Henrik Rydgård b286283ced Since we know from #9601 that e9d5eb694b is wrong, at least make it more specific. 2017-05-18 15:30:12 +02:00
Henrik Rydgard e9d5eb694b Fix video playback in LocoRoco 2. scePsmfPlayerGetInfo had a couple more parameters.
Fixes #7887.
2017-02-17 10:29:00 +01:00
Unknown W. Brackets a0484dce65 Psmf: Use packets for end in all versions.
Turns out no version of the library looks at the pts for the end.
2016-08-15 21:00:10 -07:00
sum2012 00a379e9f0 Psmf: Ignore last timestamp with old PsmfPlayer libs
Until 5.50
Fix #6574
2016-08-16 03:57:36 +08:00
Unknown W. Brackets f23391578f Psmf: Ignore stream size with old PsmfPlayer libs.
Until 5.50, the stream size was not used.  See #6574.
2016-08-14 17:24:29 -07:00
Henrik RydgårdandGitHub eac18489e6 Merge pull request #8867 from unknownbrackets/mpeg
Improve mpeg parsing / corruption issues
2016-08-06 18:14:17 +02:00
Unknown W. Brackets fd546ff21d Fix some type comparison warnings. 2016-08-05 10:47:45 -07:00
Unknown W. Brackets 558b4620e8 Mpeg: Parse video streams from PSMF header.
Without doing this, FFmpeg will try to probe the streams to detect them
instead.  When it does this, sometimes it tries to read beyond the data
that's available - and then gets confused by EOFs.

Parsing this way allows us to control the situation.

An example is Valkyrie Profile, corruption in the first frames of the
second video during the intro.  Thi doesn't fix it yet, but now it's just
a matter of buffering.
2016-07-24 15:58:06 -07:00
Unknown W. Brackets 80d72acaec Psmf: Correct default stream.
Fixes Jeanne d'Arc, others.
2016-06-07 20:41:13 -07:00
Unknown W. Brackets bda1956f90 Psmf: Enable error check on player create.
Reporting makes it look like this should be safe.
2016-06-04 18:17:38 -07:00
Unknown W. Brackets cf2796de41 Psmf: Allow each struct to have its own stream.
Some games will create a clone, and then set a different stream on it,
e.g. one for the video, another for the audio stream.
2016-06-04 18:17:37 -07:00
Unknown W. Brackets b13c68a373 Psmf: Correct get video/audio info errors.
This actually grabs from the currently specified stream, and fails if it's
the wrong type.  Additionally, return stream-specific info... unlikely to
matter, hard to imagine a video with a mono and stereo stream.

Also reduces log verbosity.
2016-06-04 18:17:37 -07:00
Unknown W. Brackets 185ad781f3 Psmf: Add better error handling for SetPsmf.
Checked on different devkit versions in case of changes.
2016-06-04 18:17:36 -07:00
Unknown W. Brackets 91887ad85c Psmf: Correct errors in current stream num. 2016-05-31 09:55:51 -07:00
Unknown W. Brackets 0a00777403 Psmf: Only write current type/channel if valid.
And improve error handling in general.
2016-05-31 09:55:51 -07:00
Unknown W. Brackets 7ad07ca82e Psmf: Handle stream specification per tests.
These seem buggy, but generally sane.
2016-05-31 09:55:50 -07:00
Unknown W. Brackets cca9a73105 Psmf: Start at stream 0 when not specified. 2016-05-31 09:55:49 -07:00
Unknown W. Brackets 510db2051d Psmf: Detect PCM streams from private stream info.
This logic comes from Jpcsp.  Let's report though and see if there's more.
2016-05-31 09:55:49 -07:00
Unknown W. Brackets 74239c199d Psmf: Allow AUDIO type when specifying streams. 2016-05-31 09:55:48 -07:00
Unknown W. Brackets 5f7c95f249 Psmf: Count PCM as an AUDIO stream as well. 2016-05-31 09:55:47 -07:00
Unknown W. Brackets 9df727f94f Psmf: Stop pretending streamMap is a vector. 2016-05-31 09:55:47 -07:00
Unknown W. Brackets f60aef2e16 Add a more specific interface for video frames.
Since we know more about them.  No functional change yet.
2016-01-17 12:57:26 -08:00
Unknown W. Brackets d6cd3bd5ad Remove some unused variables. 2015-12-23 15:22:28 -08:00
Unknown W. Brackets 2450724be2 Make Memory::Memcpy() execute memchecks directly.
This makes it easier to handle breakpoints in HLE.
2015-04-05 18:09:20 -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 0e3d68e27f scePsmf: Remove unnecessary conditions
tempBuf is a stack-allocated array, and filehandle has a check for it above this conditional.
2014-12-10 23:30:19 -05:00
Lioncash 4ccb838306 Core: Mark some module functions as static 2014-12-08 04:40:08 -05:00
Lioncash a962bc5a6c Mark some functions as const 2014-12-07 17:08:13 -05:00
Unknown W. Brackets 9d97eb5b12 Oops, fix an old typo.
Thanks Lioncash.  This broke a small range of old savestates.
2014-12-03 12:49:52 -08:00
Lioncash f830d5dec7 Core: Mark some functions as const 2014-12-03 15:16:11 -05:00
Unknown W. Brackets 3fbab33c91 Only loop at video end.
In case of a short video that runs out of data but isn't ready to loop
yet.
2014-08-17 15:46:04 -07:00
Henrik Rydgard 8560e317d0 Reload the stream on loop. Fixes #6703. Thanks to @unknownbrackets 2014-08-17 22:29:01 +02:00
Unknown W. Brackets 3bd945c2a8 Ignore displaybuf in psmfplayer when warming up.
Should fix #6704.
2014-08-10 21:56:05 -07:00
Henrik Rydgard b7ac539420 Fix crash after loading state from within Psmf movie
(a variable was not initialized)
2014-07-28 00:01:28 +02:00
Unknown W. Brackets c7a2753a00 Fix savestates when there are psmfplayers.
Oops.  Fixes #6613.
2014-07-25 09:19:07 -07:00
Unknown W. Brackets ae13d51cef Don't skip the first psmf frame when syncing audio.
Fixes #6374.
2014-06-20 09:07:18 -07:00
Unknown W. Brackets aa3a429a0b Avoid unaligned 32 bit reads.
They make Symbian do odd things.
2014-06-05 01:12:27 -07:00
Unknown W. Brackets c142207a93 Fix a few warnings, mostly type comparisons. 2014-05-31 21:42:57 -07:00
Unknown W. Brackets df22d0609f End the video when we run out of packets.
If there are no audio or video packets left, even if we haven't hit the
pts, the video is over.
Fixes #6135, hanging in Chinese translation of Clannad.
2014-05-25 18:45:31 -07:00
Unknown W. Brackets 213646b218 Correct errors in minor psmfplayer funcs. 2014-05-24 15:35:51 -07:00
Unknown W. Brackets 68bccebdeb Clear the psmfplayer handle on delete. 2014-05-24 14:13:18 -07:00
Unknown W. Brackets c651a0d1e9 Correct status check in scePsmfPlayerStop(). 2014-05-24 12:46:34 -07:00
Unknown W. Brackets 64df42d613 Don't change status in scePsmfPlayerBreak().
It was changed to INIT in d37100b30a, but I
think that only fixed the game because STANDBY was wrong.  Not changing
the status is the correct behavior.
2014-05-24 12:41:40 -07:00
Unknown W. Brackets d4e548013e Don't zero paused, but do zero end in psmfplayer.
To make sure the video/audio sync up.

If an audio frame was already decoded, it should technically be returned,
but after that it will return an error.
2014-05-24 01:31:50 -07:00
Unknown W. Brackets 222be04b38 Cleanup err codes in scePsmfPlayerGetAudioData().
Even if there's no *more* audio, if the current audio is valid return 0.
2014-05-24 01:10:26 -07:00
Unknown W. Brackets bc661f4f10 Clean up a duplicate if branch. 2014-05-23 23:02:23 -07:00