[Mesa-dev] [PATCH 2/3] xorg/xvmc: Only set decode buffer when available
Younes Manton
younes.m at gmail.com
Sun Aug 28 09:13:45 PDT 2011
On Sat, Aug 27, 2011 at 7:58 PM, Maarten Lankhorst
<m.b.lankhorst at gmail.com> wrote:
> The nouveau xvmc decoder doesn't need it.
>
> Signed-off-by: Maarten Lankhorst <m.b.lankhorst at gmail.com>
> ---
> src/gallium/state_trackers/xorg/xvmc/surface.c | 9 ++++++---
> 1 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/state_trackers/xorg/xvmc/surface.c b/src/gallium/state_trackers/xorg/xvmc/surface.c
> index 79bd9c6..9cfec94 100644
> --- a/src/gallium/state_trackers/xorg/xvmc/surface.c
> +++ b/src/gallium/state_trackers/xorg/xvmc/surface.c
> @@ -111,7 +111,8 @@ SetDecoderStatus(XvMCSurfacePrivate *surface)
> context_priv = surface->context->privData;
> decoder = context_priv->decoder;
>
> - decoder->set_decode_buffer(decoder, surface->decode_buffer);
> + if (surface->decode_buffer)
> + decoder->set_decode_buffer(decoder, surface->decode_buffer);
> decoder->set_decode_target(decoder, surface->video_buffer);
>
> for (i = 0; i < 2; ++i) {
> @@ -181,7 +182,8 @@ Status XvMCCreateSurface(Display *dpy, XvMCContext *context, XvMCSurface *surfac
> if (!surface_priv)
> return BadAlloc;
>
> - surface_priv->decode_buffer = context_priv->decoder->create_buffer(context_priv->decoder);
> + if (context_priv->decoder->create_buffer)
> + surface_priv->decode_buffer = context_priv->decoder->create_buffer(context_priv->decoder);
> surface_priv->video_buffer = pipe->create_video_buffer
> (
> pipe, PIPE_FORMAT_NV12, context_priv->decoder->chroma_format,
> @@ -496,7 +498,8 @@ Status XvMCDestroySurface(Display *dpy, XvMCSurface *surface)
> SetDecoderStatus(surface_priv);
> context_priv->decoder->end_frame(context_priv->decoder);
> }
> - context_priv->decoder->destroy_buffer(context_priv->decoder, surface_priv->decode_buffer);
> + if (surface_priv->decode_buffer)
> + context_priv->decoder->destroy_buffer(context_priv->decoder, surface_priv->decode_buffer);
> surface_priv->video_buffer->destroy(surface_priv->video_buffer);
> FREE(surface_priv);
> surface->privData = NULL;
> --
> 1.7.6
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
Pushed. Thanks.
More information about the mesa-dev
mailing list