fullscreen works...overlay has that same mesh of dots :wierd:
Announcement
Collapse
No announcement yet.
Fullscreen overlay mode
Collapse
X
-
Use theButton to edit your posts (should work for 3 hours after the post has been made). Of course you can NOT edit others Messages.
Comment
-
*sigh*, the misunderstandings afterwards would be so extremely big, you could have figured that out yourself, right?
Comment
-
Originally posted by Zevensoft
Atero, try 24/32 bit
Comment
-
I guess 24 won't. Though 32 might, since AVS is originally calculated in 32bit. Every other setting has to be recalculated and therefor slower.
Comment
-
In case you're wondering what overlays are, here's the deal... when you're playing video on the screen, it has to be updated a lot. But in effect, it's only one small area that is updated, and it's located somewhere in the center of the screen (windowed) or all over the place (full-screen). That's quite memory/cache intensive.
So someone thought of overlay mode: rather than doing all the copying in software, just put the video in a separate buffer, and let the videocard draw it as it sends the image to your monitor. After all, a video card is continuously scanning over the image anyway as it sends it to your monitor, so doing a simple switch between video and regular screen at the appropriate pixels is no big deal. On top of that, the video-card can scale/stretch the image very fast, because that sort of stuff can be put into silicon at no cost.
Unfortunately, there's the problem that in a windowed system, the video-area can be partially (or wholly) occluded. There's no easy way to get this info from windows, and even if you could, building support for irregularly shaped viewports for overlay would defeat the whole point because then the videocard would need a lot of extra logic too.
So, they use colorkeying: the video-area is filled with an uncommon, unique color, and the overlay is only drawn inside the designated viewport and when the color in the framebuffer (the 'screen') matches the color-key.
Now fullscreen overlay mode. Normally, going fullscreen required a resolution change, because otherwise the stretching would be done in software, which is either slow (bilinear) or ugly (point). Plus it wouldn't be able to handle arbitrary sizes anyway. So mediaplayers use the overlay functionality for the entire screen. This has some advantages:
- Bilinear filtering is done for free
- No resolution change is required
- Arbitrary sizes are allowed (though not in AVS)
Unfortunately, the overlay buffer's format is not RGB I believe, but YUV or a similar one. YUV or YCrCb stores the color as a brightness 'Y' plus a redness/blueness factor. It's halfway between HSL and RGB.
Interpolating in YUV gives you great results for natural photos and film, but looks like crap for computer generated stuff because the color can bleed at sharp edges.
As far as grabbing the image from the hDC, that would be very slow on Windows. I'm pretty sure AVS just creates a 32-bit DIBs (CreateDIBSection) and uses the returned pointer to directly read/write to the bitmap's pixels.
Comment
-
Now that certainly cleared some things up over here, thanks UnConeD.
Comment
-
UnConeD = Computer Encyclopedia
Thank ya!
Comment
-
lol, yep, that's a pretty accurate description.
Comment
Comment