GoZen Update: 2024 – Week 14

Big news for this weeks update! The FFmpeg core is complete! At least for now, some adjustments will need to be made in the future but that’s a worry for later. The last couple of weeks I had been so focused on getting this part done, FFmpeg and C++ was all I could think of, even had a nightmare about FFmpeg.

Playback is working

Right now with V-sync disabled, I get about 200 frames per second, which is enough to play a 60 fps video at 3 times speed and a 30 fps video at 6 times speed … on my system at least. This is why I’ll be starting a side project, a video player made with Godot. Main reason for this is to clean up the GDExtension code and to let the alpha testers have a go to see if there are any problems with it which could cause trouble for GoZen. Early bug testing, but needed bug testing as FFmpeg and GDExtensions are difficult things to deal with.

GDExtensions are …

First of all, GDExtensions are great as they allow you to easily expand upon the editor, downside is in the way you have to debug them. The moment you try to mess around with an external library, things just crash for no apparent reason. The smallest thing can trigger the GDExtension to just break.

Multi-threaded decoding

During my journey of making the decoding work so we have smooth playback, I found out about something. FFmpeg has build in multi-threading for decoding (probably also for encoding, but that’s a worry for later). My system has quite outdated hardware at this point, but I still noticed a slight bump in performance, especially when frame seeking video files.

Without the multi-threading whilst getting frames by number through seeking, I only got about 20 FPS. With multi-threading enables, the same task gave me 30-40 FPS which made playback actually reasonable enough.

What now?

As I mentioned, I’ll be making a small video editor for testing purposes. I’ll keep that one open source and I’ll make a video about it as well, or more likely multiple videos. First up however, I’ll be doing a live-stream to show what I got, how it works, and during that same live-stream I’ll probably start the process of working on this video player as it would be a good thing to show off. So glad things are finally coming together and this has probably been the most important update so far to be honest.

This may not seem like much to most of you, but this really was a deal breaker. I had been stressing about this for so long and the last couple of day’s people probably started seeing my stress in the Discord server. Sorry about that! ^^”

A huge weight lifted of my shoulders as I feel that Gozen now has a real future! A big thanks to the people on the Discord server for trying to help in figuring out what was wrong and for supporting me! That being said, I really need to work more on video’s and really need a break for at least a day of the FFmpeg/GDExtension/GoZen stuff. ^^” So stream will probably be on Sunday. 😉

Big thanks to my Ko-fi supporters for believing in me as well! ^o^