Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mpeg:Improves the support of multiple streams video. #13659

Merged
merged 2 commits into from
Nov 15, 2020

Conversation

shenweip
Copy link
Contributor

Fixes #8526.

That game has strict requirements for the number of video frames. If no enough packets are read, the game will hang.

And the videos it uses have 4 video streams, but the mpegheader seems don't have the correct stream info.

Calls callback multiple times to read all packets when the write position reaches the boundary of the ringbuffer.
@shenweip shenweip changed the title Improves the support of multiple streams video. Mpeg:Improves the support of multiple streams video. Nov 13, 2020
@hrydgard hrydgard added the PSMF / MPEG Issue involves scePsmf or sceMpeg video playback. label Nov 13, 2020
@hrydgard hrydgard added this to the v1.11.0 milestone Nov 13, 2020
@hrydgard
Copy link
Owner

Code looks good. Let's try it.

@hrydgard hrydgard merged commit e01d538 into hrydgard:master Nov 15, 2020
@shenweip shenweip deleted the mpeg-multi_streams branch November 15, 2020 09:28
@Panderner
Copy link
Contributor

this will broke Jeanne d'Arc and Open Season unfortunately.

@shenweip
Copy link
Contributor Author

Don't worry, I know how to fix now:)

@@ -1495,6 +1496,9 @@ void PostPutAction::run(MipsCall &call) {
// Program signals that it has written data to the ringbuffer and gets a callback ?
static u32 sceMpegRingbufferPut(u32 ringbufferAddr, int numPackets, int available)
{
// Generally, program will call sceMpegRingbufferAvailableSize() before this func.
// Still need to check available?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #978. I think we should test this, though, for the correct behavior. Ideally we should replicate (as far as is visible) what firmware does.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PSMF / MPEG Issue involves scePsmf or sceMpeg video playback.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Xyanide Resurrection freezing
4 participants