[gst-devel] [cairo] Using cairo/pixman for raw video in GStreamer

Carl Worth cworth at cworth.org
Wed Sep 30 18:48:55 CEST 2009

Excerpts from Benjamin Otte's message of Wed Sep 30 07:06:04 -0700 2009:
> What have I done so far?

Fantastic stuff, Benjamin! Thanks for doing all this and writing it
all up.

> - Cairo meta surfaces copy whole surfaces
> One way of solving the aforementioned issue and a nice way to handle
> the threading issues listed above is to use meta surfaces and only
> replay them in the sink element. Unfortunately, Cairo copies image
> buffers when generating snapshots, which kills performance right
> there.

The meta-surface image-copying predates a bunch of copy-on-write work
in cairo for more efficient snapshots.

It should be the case that what the meta-surface does here is to
create a *snapshot* of each surface, (not an explicit copy). And if
that's the case, and it's simply a matter of making the snapshot code
just delay that copy until actually needed, then that should be easy
with the infrastructure in place in cairo now.

> - Ways to upload YUV data
> There is currently no good way to get an accelerated upload of YUV
> data to X. The only ways I'm aware of are GL (see gst-plugins-gl for
> code) and xv. So either we'll need to continue converting to RGB in
> the X case and focus on using cairo-gl, make cairo use xv or convince
> the X people that such a thing as YUV uploads would be a welcome
> addition to Xrender.
> It seems X people are currently at XDC getting all excited about
> Wayland, so I don't have very high hopes.

I don't understand your final point here at all. Having a bunch of X
people together at the same time seems an ideal way to make progress
here. I'll go ahead and read your paragraph here to the group this
morning and let you know what comes of it.

> When talking on IRC about this I realized that there is quite a lack
> of knowledge on all sides - my knowledge often isn't deep enough,
> GStreamer people don't know enough about state-of-the-art video
> handling and its gains and pitfalls, Cairo and X people lack knowledge
> about the requirements for video playback - and this lack of knowledge
> often results in preconceptions that lead to wrong decisions and make
> life harder on all sides.
> It would be nice if there was a way to get you people together and
> actually educate each other about this process. I'd suggest a
> hackfest, but I'm not sure what others think and who to approach for
> funding and locations.

The Linux Plumbers Conference was conceived of precisely to be able to
address these kinds of cross-project issues that are hard to solve
when many get-togethers address each project in
isolation. Unfortunately, Plumbers just happened last week so the next
one will be a year away.

As for funding, the X.org Foundation has funds and is very interested
in supporting X-related development events like this. The X.org
Foundation Board of Directors just stood up in XDC and asked for
people to request funds they need to get work done, (whether for
hardware or for hackfests, etc.).

So I think this is an ideal case. When you have some details put
together, please feel free to email the board as a whole
(xf_board at x.org) or me individually, (as a board member for at least
the next few months).

Again, great work!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20090930/69812e8e/attachment.pgp>

More information about the gstreamer-devel mailing list