Commit graph

51 commits

Author SHA1 Message Date
oioitff
2b9f9283c2 Improve getRemainSize for MediaEngine.
It's more accurate now.
2013-06-25 00:17:04 +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
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
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
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
Sacha
5aba914a42 Build fix for non-ffmpeg and non-gcc non-++11. 2013-06-12 10:51:30 +10: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
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
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 Rydgard
04d24012e1 Prevent crashing the emu in stepVideo when things have gone very wrong. 2013-06-09 13:45:48 +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
oioitff
156c4ca78a Fix crash for invalid mpeg header. 2013-06-05 15:46:04 +08: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
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
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
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
oioitff
e099b8d954 Rewrite and implement MediaEngine. 2013-06-02 01:29:22 +08:00
Unknown W. Brackets
3931f07852 Fix a couple bad bounds checks in VAG/Mpeg. 2013-05-18 10:19:12 -07:00
raven02
2b89ccfa50 Use Dark Grey to identify CG is running instead of black 2013-04-28 10:43:31 +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
74f3b81846 Check for a null pointer when writing video. 2013-01-28 02:16:06 -08:00
Unknown W. Brackets
3464fd6b00 Fix crash with unitialized var in mpeg code. 2012-12-24 11:56:51 -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