g3dvl: Rework the decoder interface part 4/5

Make the picture_structure enum spec complient.
Also remove it from the compositor.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Younes Manton <younes.m@gmail.com>
This commit is contained in:
Christian König 2011-08-11 16:11:36 +02:00
parent d3770d6229
commit 835ea8480f
6 changed files with 11 additions and 29 deletions

View file

@ -673,7 +673,6 @@ vl_compositor_set_rgba_layer(struct vl_compositor *c,
void
vl_compositor_render(struct vl_compositor *c,
enum pipe_mpeg12_picture_type picture_type,
struct pipe_surface *dst_surface,
struct pipe_video_rect *dst_area,
struct pipe_video_rect *dst_clip)

View file

@ -156,7 +156,6 @@ vl_compositor_set_rgba_layer(struct vl_compositor *compositor,
*/
void
vl_compositor_render(struct vl_compositor *compositor,
enum pipe_mpeg12_picture_type picture_type,
struct pipe_surface *dst_surface,
struct pipe_video_rect *dst_area,
struct pipe_video_rect *dst_clip);

View file

@ -43,11 +43,15 @@ struct pipe_video_rect
unsigned x, y, w, h;
};
enum pipe_mpeg12_picture_type
/*
* see table 6-14 in the spec
*/
enum pipe_mpeg12_picture_structure
{
PIPE_MPEG12_PICTURE_TYPE_FIELD_TOP,
PIPE_MPEG12_PICTURE_TYPE_FIELD_BOTTOM,
PIPE_MPEG12_PICTURE_TYPE_FRAME
PIPE_MPEG12_PICTURE_STRUCTURE_RESERVED = 0x00,
PIPE_MPEG12_PICTURE_STRUCTURE_FIELD_TOP = 0x01,
PIPE_MPEG12_PICTURE_STRUCTURE_FIELD_BOTTOM = 0x02,
PIPE_MPEG12_PICTURE_STRUCTURE_FRAME = 0x03
};
/*

View file

@ -157,8 +157,7 @@ VdpStatus vlVdpVideoMixerRender(VdpVideoMixer mixer,
vl_compositor_clear_layers(&vmixer->compositor);
vl_compositor_set_buffer_layer(&vmixer->compositor, 0, surf->video_buffer, NULL, NULL);
vl_compositor_render(&vmixer->compositor, PIPE_MPEG12_PICTURE_TYPE_FRAME,
dst->surface, NULL, NULL);
vl_compositor_render(&vmixer->compositor, dst->surface, NULL, NULL);
return VDP_STATUS_OK;
}

View file

@ -169,8 +169,7 @@ vlVdpPresentationQueueDisplay(VdpPresentationQueue presentation_queue,
vl_compositor_clear_layers(&pq->compositor);
vl_compositor_set_rgba_layer(&pq->compositor, 0, surf->sampler_view, NULL, NULL);
vl_compositor_render(&pq->compositor, PIPE_MPEG12_PICTURE_TYPE_FRAME,
drawable_surface, NULL, NULL);
vl_compositor_render(&pq->compositor, drawable_surface, NULL, NULL);
pq->device->context->pipe->screen->flush_frontbuffer
(

View file

@ -42,24 +42,6 @@
#include "xvmc_private.h"
static enum pipe_mpeg12_picture_type PictureToPipe(int xvmc_pic)
{
switch (xvmc_pic) {
case XVMC_TOP_FIELD:
return PIPE_MPEG12_PICTURE_TYPE_FIELD_TOP;
case XVMC_BOTTOM_FIELD:
return PIPE_MPEG12_PICTURE_TYPE_FIELD_BOTTOM;
case XVMC_FRAME_PICTURE:
return PIPE_MPEG12_PICTURE_TYPE_FRAME;
default:
assert(0);
}
XVMC_MSG(XVMC_ERR, "[XvMC] Unrecognized picture type 0x%08X.\n", xvmc_pic);
return -1;
}
static void
MacroBlocksToPipe(XvMCContextPrivate *context,
XvMCSurfacePrivate *surface,
@ -447,7 +429,7 @@ Status XvMCPutSurface(Display *dpy, XvMCSurface *surface, Drawable drawable,
// Workaround for r600g, there seems to be a bug in the fence refcounting code
pipe->screen->fence_reference(pipe->screen, &surface_priv->fence, NULL);
vl_compositor_render(compositor, PictureToPipe(flags), context_priv->drawable_surface, &dst_rect, NULL);
vl_compositor_render(compositor, context_priv->drawable_surface, &dst_rect, NULL);
pipe->flush(pipe, &surface_priv->fence);