Commit Graph

47 Commits

Author SHA1 Message Date
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
57ae9a1181 Mpeg: Ensure garbage is not read from header.
In cases where we did not have a full 64k at first, we would potentially
send FFmpeg garbage if it asked for it.
2016-07-24 15:58:04 -07:00
Henrik Rydgård
5f8f3633a8 Merge pull request #6685 from unknownbrackets/kill-volume
Remove bgm and sfx volume settings
2014-08-19 07:56:01 +02: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
Unknown W. Brackets
5c470a1923 Remove bgm and sfx volume settings.
They don't actually work in all games, and this only confuses users.

Also, the default 7 lowers the volume of audio detected as bgm or sfx, but
not other volume.  This means that some audio may have played too loud in
some games by default, which will be fixed by this change.
2014-08-17 14:16:59 -07:00
Henrik Rydgard
1d0cc3417c Audio stuff: Cleanup, delete dead code 2014-06-22 14:01:23 +02:00
Unknown W. Brackets
13b735fd02 Validate more params in scePsmfPlayerGetVideoData. 2014-05-23 23:00:01 -07:00
Unknown W. Brackets
e522eea2b4 Improve psmf seek perf and audio sync. 2014-05-15 00:28:54 -07:00
Unknown W. Brackets
2042672ec7 Correct the audio pts from the actual stream data.
Before, we would just increment it and hope we were right.  There's no
reason we'd be wrong, but with seeking we have to be more careful.
2014-05-15 00:05:40 -07:00
Unknown W. Brackets
9c0bc32f52 Add support for initPts in scePsmfPlayerStart().
It won't be super speedy though, could more ideally do it on the calls to
Update()...
2014-05-11 14:23:13 -07:00
Unknown W. Brackets
eae4c9cc49 Check for no audio more directly.
This fixes some cases where the flag was set wrong.
2014-04-26 09:38:13 -07:00
Unknown W. Brackets
891764d8ee Make scePsmfPlayerSelect*() actually switch.
Don't have any games actually using this, so let's report too.  Audio is
falsely working when the stream isn't playable, not exactly sure the best
way to detect that.
2014-04-22 08:07:49 -07:00
kaienfr
b18252b2b5 Support audio playing (AT3, AT3+, Mp3, AAC) 2014-03-23 19:45:08 +01:00
Unknown W. Brackets
d65af7353b Avoid some ChunkFile includes. 2014-03-15 11:32:57 -07:00
Unknown W. Brackets
f19d8d2eae Handle alternating video streams a lot better. 2014-01-21 01:16:16 -08:00
Unknown W. Brackets
936f34a6b7 Check the audio buffer size just in case.
This way we definitely won't overfill it.
2014-01-04 01:25:42 -08:00
Unknown W. Brackets
4e929764c8 Set the audio/video streams per sceMpegGet*Au().
This fixes #2226, thanks to @raven02 for finding the issue.  Could also
help e.g. Xyanide: Resurrection and a few other games.

The video codec change path is not super well tested, because I couldn't
find a game that triggered it, but it should work.
2014-01-03 09:29:37 -08:00
Unknown W. Brackets
2c38805791 Retry opening the context if it fails at first.
This fixes #4550, the hang on the crash video in FF4.
2014-01-01 20:47:10 -08:00
Henrik Rydgård
00c32ddadb Mostly get rid of including "Globals.h" 2013-12-30 10:17:11 +01:00
Unknown W. Brackets
ae0560a1db Ignore bad video decode addresses.
Instead of crashing, even if that's more fun.
2013-12-11 08:21:01 -08:00
Sacha
efad755ccc Buildfix !USE_FFMPEG 2013-11-12 17:52:43 +10:00
Unknown W. Brackets
ad8c4af936 Respect the bgm vol setting for at3, mp3, video. 2013-10-26 19:33:25 -07:00
Henrik Rydgård
be40289d6c Use ffmpeg for Atrac3+ decoding during video playback as well. 2013-10-19 23:09:26 +02:00
Henrik Rydgård
ac2334386a Move BufferQueue out of the at3 plugin header 2013-10-17 12:31:22 +02:00
shenweip
a62e9f15e9 Implemented sceMpegAvcConvertToYuv420. 2013-09-18 14:05:09 +08:00
Unknown W. Brackets
0c6fbb461d Tweak ffmpeg logging in mp3/atrac as well. 2013-09-16 08:40:38 -07:00
oioitff
97c6b96408 Remove IsAudioEnd(), use IsNoAudioData() instead. 2013-07-02 17:20:46 +08:00
oioitff
7f7e7adfe2 Free loaded data in Ringbuffer only while
ffmpeg is requiring more data. Clean up some codes.
2013-06-25 00:16:59 +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
oioitff
77a17cacc5 Add support for multiple video/audio stream. 2013-06-11 19:04:14 +08:00
oioitff
32fb534375 Improve mpeg timestamp.
Read 6 bytes timestamp instead.
2013-06-10 04:21:36 +08: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
17907b204b Return a more accurate mpeg ringbuffer decode pos. 2013-06-08 03:00:46 -07: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
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
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
Unknown W. Brackets
3d1e426e4a Send games a free packet count that makes sense. 2013-06-01 15:33:47 -07:00
oioitff
e099b8d954 Rewrite and implement MediaEngine. 2013-06-02 01:29:22 +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
Unknown W. Brackets
cb0538c4db Can't just do that, might get the vtbl. Arg. 2012-12-29 03:19:13 -08: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