[haiku-appserver] Re: Overlay support

  • From: "Rudolf" <drivers.be-hold@xxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Sat, 22 Apr 2006 19:11:52 +0200 CEST

Hi again,

> "Axel DÃrfler" <axeld@xxxxxxxxxxxxxxxx> wrote:
> > Theoretically, the app would need to acknowledge to the app_server
> > that
> > it stopped filling the overlay buffer. I also don't think that the
> > BBitmap base pointer will be updated in that case, which would be
> > just
> > broken. I'll investigate into this a bit.

The bitmap pointer is updated by the app_Server. (VLC example: VLC did
not fiddle with hooks on modeswitches!, still it all happens:
app_server at work ;-)

> Thinking about this, this must be the LockBits() thing in BBitmap.
> You
> must only access the overlay buffer when you hold the lock, and you
> must refresh its pointer everytime you locked the buffer.

Or update the pointer after the start message from the appserver. And
check for NULL I'd say.
And you (app) must release the lock as soon as the app_server sends you
the stop message, or it will make you segfault. (ah, that's why
mediaplayer segfaults.. ;-)

I guess it might turn out interesting to reverse engineer the media
player :)

> But that's probably not what most implementations do. Anyway, I'll
> implement it like this, does that sound right to you? :-)

With all the stuff I just told you done correctly, yes. :-)

It's very true, we don't have a single correct mediaplayer outthere
concerning overlay. This has been a problem always: there must be a
reference design in the future. It has been tiresome at times to keep
writing this kind of emails..



Other related posts: