Day 23: No zero days November – 2023

One day late with this report but it’s a good one this time! ๐Ÿ™‚

It’s alive!

So we finally managed to get the first video to play within Godot by just looping through the array of frames, 11 second video shown in a second. So performance looks to be good, except for the high RAM usage as all frames are basically stored in an array in RGB, which is a pixel format unlike YUV420p which is planar. Images saved in pixels take up way more space compared to pictures in a planar format.

Optimizations

Se we should try to implement YUV420p support in Godot as this could save up to 66% of data per video (for the visual part). This together with dynamically loading of videos should decrease overall RAM usage. To increase overal performance as well as RAM usage we would need to downscale the video.

With my current setup of demuxing videos, this would be a rather easy task to achieve. For now a lot more parameters need to be setup and I’ll probably require an import profile as well, which will be a class/struct with all necesarry data variables which the importer would need, same as how the renderer works now.

Audio

Audio stays an issue, I’ve started working on a way to lower the mix-rate of the audio and I hope that this helps, right now you can kind of hear what is being said in the audio, but it is very very noisy. The file I use right now has an audio sample rate of 48000. By further investigating, I don’t think that this is the problem. Possible problem may be this which is written in AudioStreamWav

Note: This property expects signed PCM8 data. To convert unsigned PCM8 to signed PCM8, subtract 128 from each byte.

I thought and I am almost certain that it is being passed as PCM8, but I may be wrong ^^”

Conclusion

Was such a relieve yesterday to finally get it working, the rest of my day was busy, today and tomorrow also a busy schedule, but for now I will keep working on the audio. ^^