2022-01-12 04:25 AM
Hi,
I'm using the TouchGFX 4.18.1 and trying to program the STM32469I-EVAL board with a video widget.
I selected the proper eval board then added the video widget.
Success for generate code. Simulator works fine.
But, 'Run Target' fails with the following error:
TouchGFX/generated/gui_generated/src/screen1_screen/Screen1ViewBase.cpp:6:10: fatal error: videos/VideoDatabase.hpp: No such file or directory
#include <videos/VideoDatabase.hpp>
What an I missing?
Thanks,
Ari
2022-01-12 07:39 AM
Hello @ari_v2
Make sure that your project has the right include paths.
So, add the correct paths to your include directories.
When your question is answered, please close this topic by choosing Select as Best. This will help other users find that answer faster.
Imen
2022-01-13 01:59 AM
Hi,
Have you enabled Video Decoding in the TouchGFX Generator settings in STM32CubeMX ? This step is necessary to work with the video widget. Here is a link to the Video Decoding article in the documentation, and a link to the article on how to work with video in TouchGFX.
/Romain
2022-01-13 02:25 AM
Hello,
In CubeMx generator you need to:
1- Activate LIBJPEG in Middleware menu.
2- Activate Video feature in Software mode from Software Packs menu:
3- Re-generate the code
2022-01-13 02:47 AM
I'll just chip in to warn that there are more settings required within LIBJPEG and the Video Decoding section to be able to work with the video widget as stated in the documentation links I shared.
2022-01-18 01:13 AM
Thanks all for replies.
Now a video widget works but it is slow.
As mentioned, CPU is STM32F469, so I must use software decoder for mpeg.
I used the example given for 216x216 (SampleVideo2_216x216.avi), the video time is 10 sec, but the actual time on my device lasts for 18 Seconds.
Digging in to find the bottleneck, I see that decodeMJPEGFrame() takes around 52 mSec. This results to 19 FPS with 0 wait time between frames. The avi parser shows that mSec between frames is set to 40, (25 frames per second).
I also see that decompress_onepass() is called around 14 per frame, and total runtime sums to ~30 mSec per frame. So, most of time is spend here.
Our LCD size is 480*800 and this sample video is small. I would like to present larger videos but I'm now sceptic if this is applicable using this MCU.
I would appreciate suggestions how is the best way to play video with STM32F469, and what could be the expected performance.
Perhaps I could spare the decoding procedure by using a different video format?
Maybe reduce frames per cycle?
Any other ideas?
Thank you
Ari