You can control the playback speed in Sofdec2 with the ::criManaPlyayer_SetSpeed function.
There is no limit to how slow playback speed can be, but for fast-forwarding you will need to clear two conditions.
Conditions for Fast-Forwarding
The bottleneck for fast-forwarding is decoding performance and the main loop cycle.
To play a 30fps movie at double speed, you will need to clear the following two conditions.
Condition 1: The main loop (drawing loop) is set up for 60fps (i.e. it can draw 60 frames per second)
Condition 2: There is sufficient CPU time even if decoding at double speed.
Please note that you cannot fast-forward if the main loop cycle is the same as the movie.
Further, another cause of not being able to fast-forward at the set speed is insufficient decoding performance. In this situation, lower the movie resolution and frame rate to adjust the load.
Fast-Forwarding via Skipping
Sofdec.Prime
In Sofdec.Prime, even when the main loop is at the same frame rate than the movie, it is possible to fast-forward by enabling the skip decoding function.
Skip decoding is disabled by default on console machines, so you have to call the criMana_SetDecodeSkipFlag function.
However, there is a limit to the number of frames that can be skipped. The upper limit for fast-forwarding via skipping is 2.6x the current speed.
H.264/VP9
The decoding skip function can not be done when using the H.264/VP9 codecs.
It is necessary to decode and acquire all frames.
Since it is not possible to perform fast-forward playback on the decoding side with these codecs,
please consider skipping the display (i.e. discarding some of the decoded frames without drawing them) on the application side.
Changing Playback Speed during Playback
You cannot change playback speed during playback if the movie has audio.
If the movie does not have audio, then you can dynamically change speed by calling the ::criManaPlyayer_SetSpeed function during playback.