On Mon, Oct 12, 2009 at 11:58 AM, José Fonseca <jfons...@vmware.com> wrote:
> Younes,
>
> I've finally took a good look to your changes.  Again, I don't know
> enough about video to comment on the details, so comments below focus
> more on shape than the content.
>
> Overall the interfaces look sane to me. The point I'm a bit skeptical
> about is your choice above of pipe_video_surface over pipe_surface and
> pipe_texture. I don't see a reason for video frames to be handled
> differently -- even if the pixel formats that can be used by
> pipe_context and pipe_video_context are disjoint the resource management
> side of it can still be shared.

Thanks for the comments. Originally I had pipe_texture used in place
of pipe_video_surface, but I assumed people who weren't interested in
video wouldn't want to deal with textures that weren't really always
textures as far as pipe_context was concerned. As it stands, aside
from pipe_screen::video_surface_create() the rest of the video
interface doesn't really mess with the 3D bits so it's not too much of
a burden on anyone and can be ignored easily enough.

Originally I noticed that pipe_format doesn't describe any kind of
planar formats, which are far more common in video. However it looks
like PIPE_LAYOUT_YCBCR only uses 2+3 bits so there's actually a lot of
room left there to describe the planar/interleaved/packed, etc layouts
that are common in video. It's not too much trouble to change, and it
does allow for uploading of pre-decoded frames via pipe_transfer for
things like Xv so I'd go with that.

> Furthermore, we've been considering unifying pipe_textures it with
> pipe_buffers, making pipe_surface/texture/buffer mere views of a
> "pipe_resource".  There are some OpenGL extensions that would become
> easier to implement if this was the case, and this is also aligned with
> the DirectX10 does.  So adding yet another resource type put us another
> step back on this direction.
>
> Also, why is pipe_mpeg12_macroblock::blocks a void * and not a
> pipe_buffer *? Won't that data ever be touched by the hardware?

Oversight. That struct is mostly 1:1 with XvMC's macroblock
definition. The blocks may or may not be touched by the hardware
directly so a pipe_user_buffer seems logical here.

> Finally, u_reduce_video_profile() should be in auxiliary/util. We want
> to move towards having only interfaces in include/pipe, and move inline
> helpers to auxiliary/util. It's messy change so there has been inertia
> in making it happen, but new code should try to stick with this.

Will do.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to