[MPlayer-dev-eng] Direct rendering feature request
Arpi
arpi at thot.banki.hu
Fri Mar 15 14:49:29 CET 2002
Hi,
> Hi,
> is there any or _could_ be there a function call to notify vo_driver,
> when frame decoding is finished (in direct rendering)?
yes. flip_page() is called when decoding is finished.
> I have to lock buffer in get_image() and need to know when to unlock it.
> Could be a draw_osd used for this? I'm not sure if it is called in/after
> each frame.
no, draw_osd is optional and isn't called when osd is disabled
> My desired scheme for frame disp:
> - get_image called -> buffer locked for decoder access
> - __decode_complete__ called -> buffer is unlocked, (stretch)blit
> initiated to scale and transfer from buffer to offscreen video memory
> (done preferably by hw)-->> this is missing
> - draw_osd/alpha -> osd is drawn in offscreen video memory (eg. osd and
> subtitles are using whole screen not just film area)
> - flip -> flip is performed (switched video memory buffers)
>
> As it works today (in vo_directfb)
> - get_image called -> buffer locked for decoder access
> - draw_osd/alpha ->buffer is unlocked, osd is drawn in buffer (has some
> side effect when bufffer is static)
> - flip -> (stretch)blit initiated to scale and transfer from buffer to
> screen
hmm. is directfb able to transfer image from system ram to video ram without
using cpu ? (i mean between draw_osd and flip_page)
anyway it's easy to add a new control() similar to get_image to notify
driver when done (like image_finished).
btw. it's possible (i'm trying to avoid but happens sometimes) that
get_image() is called but no real rendering (broken frame etc) so no
draw_osd and flip_page call follows it.
so, the finish_image control() call should also tell eth driver if it
actually did something (blit) or not (just unlock)
A'rpi / Astral & ESP-team
--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu
More information about the MPlayer-dev-eng
mailing list