xorg/xvmc: Only set decode buffer when available
The nouveau xvmc decoder doesn't need it. Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
This commit is contained in:

committed by
Younes Manton

parent
b2064ff311
commit
f5cf4ec90d
@@ -111,6 +111,7 @@ SetDecoderStatus(XvMCSurfacePrivate *surface)
|
||||
context_priv = surface->context->privData;
|
||||
decoder = context_priv->decoder;
|
||||
|
||||
if (surface->decode_buffer)
|
||||
decoder->set_decode_buffer(decoder, surface->decode_buffer);
|
||||
decoder->set_decode_target(decoder, surface->video_buffer);
|
||||
|
||||
@@ -181,6 +182,7 @@ Status XvMCCreateSurface(Display *dpy, XvMCContext *context, XvMCSurface *surfac
|
||||
if (!surface_priv)
|
||||
return BadAlloc;
|
||||
|
||||
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
|
||||
(
|
||||
@@ -496,6 +498,7 @@ Status XvMCDestroySurface(Display *dpy, XvMCSurface *surface)
|
||||
SetDecoderStatus(surface_priv);
|
||||
context_priv->decoder->end_frame(context_priv->decoder);
|
||||
}
|
||||
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);
|
||||
|
Reference in New Issue
Block a user