cancel
Showing results for 
Search instead for 
Did you mean: 

TouchGFX Video widget on STM32F469i DISCO issues.

RobNewbury
Associate III

I would like to use a TouchGFX video widget on a STM32F469i DISCO board.

I created a simple project in TouchGFX comprising the following widgets:
Screen1:
Video Widget
ButtonWithLabel Widget.

I associated the video widget with the TouchGFX example video "video1_480x272.avi"

I know that the TouchGFX TBS for the STM32F469i DISCO does not directly support JPEG video decode, so I followed the TouchGFX documentation for Video Decode https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-video-decoding

I can program and run the target from within TouchGFX and compile then debug using STM32CubeIDE, so I am pretty sure that I have implemented the instructions to augment the TBS for STM32F469i DISCO correctly.

The video will play but with horizontal lines across the screen.
The video will only play with framebuffer strategy set to Double Buffered, when set to Single Buffered, the video will not load.

I'm using SDRAM, so Start Address 1 is set to 0xC0000000. I have set the Start Address 2 value to 0x00000000, however I would expect to set this value to something greater than the screen resolution of 480x800, i.e. 0xC005DC00) or greater, however if I do this the horizontal lines are worse and the video doesn't play, the outline of the video can be seen but no motion associated with the video can be determined.

RobNewbury_0-1756241245405.png

I am using TouchGFX 4.25.0 with STM32CUBEIDE workspace 1.16.0 and STMCUBEMX V6.15.0

The attached video show the issue and the project is attached.

Any ideas would be appreciated.

 

1 REPLY 1
mathiasmarkussen
ST Employee

I would in general advise to use By Allocation to place framebuffers. This way, they are placed automatically by the linker script, and you do not have to worry about it yourself. If you want to do it manually, remember that your frame buffers store 16-bit values, so you need to multiply your offset by 2. Address 0 is definitely wrong, and will give you problems.

Another thing is that the version of the TBS you are using is pretty confusing regarding the screen setup. I was able to get your project running ok with a single frame buffer placed by allocation and two video buffers, but there was still some noise in the bottom of the image, which I suspect may have been caused by the framebuffer size being overridden in the TBS.

I've created a working project based on the newest TBS for you. Note that the resolution is now 480x800 instead of 800x480. This is the native resolution of the display, which simplified the display handling in the TBS. As a consequence of this, bot the UI and the video is now on rotated mode.

I've not updated the Designer makefile for video, but running it from CubeIDE works.