This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to take screenshot/snapshot with OSD and video



I used framebuffer and gstreamer to display my video with graphics overlay (OSD).

I'd like to take a screen shot of such screen,

When using

cat /dev/fb0 > screenshot.dump

and converting screenshot.dump to a PNG picture via fbgrab

fbgrab -w 720 -h 576-b 16 -f screenshot.dump screenshot.png

I have only graphics framebuffer screenshot without video as I was expected.

Is there any trick or a linux command or a davinci command to take a snapshot of my actual screen containing both video and OSD or graphics overlays.

My following framebuffer are:

davincifb davincifb: dm_osd0_fb: 720x576x16@0,0 with framebuffer size 2025KB

davincifb davincifb: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 1224KB

davincifb davincifb: dm_osd1_fb: 720x576x4@0,0 with framebuffer size 2025KB

davincifb davincifb: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 1224KB

davincifb davincifb.0: dm_osd0_fb: Failed to obtain ownership of OSD window

PS: Concerning the last line  of the printed message during my kernel booting I have never suceeded to get ride of i.e "davincifb davincifb.0: dm_osd0_fb: Failed to obtain ownership of OSD window"

Many thanks for your help,

  • Labbe,

    You'll not be able to take a screenshot of the as video is not written to graphics framebuffer (fb0). Video is written to a different buffer (called overlay buffer) and it is blended with OSD buffer (framebuffer) by the VPBE unit in hardware and sent to display. You'll need the VPBE unit to write back the blended buffer to memory in order to fulfill your requirement. But this feature is not available your SoC. 

    This writeback feature is available in OMAP4/5 and DM81xx platforms from TI.