diff options
author | Christian König <[email protected]> | 2012-01-02 14:22:33 +0100 |
---|---|---|
committer | Christian König <[email protected]> | 2012-01-15 12:40:44 +0100 |
commit | e027759336bf49e3f568bd73b9e5f26d56ef6f83 (patch) | |
tree | b82a3cd8c9f0ca6ce718567aa1ec128b14c7c0b3 /src/gallium/drivers | |
parent | 39491d1d31d9f03437816fbb4f2872761ae1157c (diff) |
vl/video_buffer: use template style create params
Just like in the rest of gallium, this reduces the
number of parameters significantly.
Signed-off-by: Christian König <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/nouveau/nouveau_video.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/gallium/drivers/nouveau/nouveau_video.c b/src/gallium/drivers/nouveau/nouveau_video.c index 24a63644b5d..055f9253fa5 100644 --- a/src/gallium/drivers/nouveau/nouveau_video.c +++ b/src/gallium/drivers/nouveau/nouveau_video.c @@ -780,24 +780,23 @@ nouveau_video_buffer_destroy(struct pipe_video_buffer *buffer) static struct pipe_video_buffer * nouveau_video_buffer_create(struct pipe_context *pipe, struct nouveau_screen *screen, - enum pipe_format buffer_format, - enum pipe_video_chroma_format chroma_format, - unsigned width, unsigned height) + const struct pipe_video_buffer *templat) { struct nouveau_video_buffer *buffer; struct pipe_resource templ; + unsigned width, height; /* Only do a linear surface when a hardware decoder is used * hardware decoder is only supported on some chipsets * and it only supports the NV12 format */ - if (buffer_format != PIPE_FORMAT_NV12 || getenv("XVMC_VL") || + if (templat->buffer_format != PIPE_FORMAT_NV12 || getenv("XVMC_VL") || (screen->device->chipset >= 0x98 && screen->device->chipset != 0xa0)) - return vl_video_buffer_create(pipe, buffer_format, chroma_format, width, height); + return vl_video_buffer_create(pipe, templat); - assert(chroma_format == PIPE_VIDEO_CHROMA_FORMAT_420); - width = align(width, 64); - height = align(height, 64); + assert(templat->chroma_format == PIPE_VIDEO_CHROMA_FORMAT_420); + width = align(templat->width, 64); + height = align(templat->height, 64); buffer = CALLOC_STRUCT(nouveau_video_buffer); if (!buffer) @@ -808,7 +807,7 @@ nouveau_video_buffer_create(struct pipe_context *pipe, buffer->base.get_sampler_view_planes = nouveau_video_buffer_sampler_view_planes; buffer->base.get_sampler_view_components = nouveau_video_buffer_sampler_view_components; buffer->base.get_surfaces = nouveau_video_buffer_surfaces; - buffer->base.chroma_format = chroma_format; + buffer->base.chroma_format = templat->chroma_format; buffer->base.width = width; buffer->base.height = height; buffer->num_planes = 2; @@ -882,12 +881,10 @@ nvfx_context_create_decoder(struct pipe_context *context, static struct pipe_video_buffer * nvfx_context_video_buffer_create(struct pipe_context *pipe, - enum pipe_format buffer_format, - enum pipe_video_chroma_format chroma_format, - unsigned width, unsigned height) + const struct pipe_video_buffer *templat) { struct nouveau_screen *screen = &nvfx_context(pipe)->screen->base; - return nouveau_video_buffer_create(pipe, screen, buffer_format, chroma_format, width, height); + return nouveau_video_buffer_create(pipe, screen, templat); } void @@ -913,12 +910,10 @@ nouveau_context_create_decoder(struct pipe_context *context, static struct pipe_video_buffer * nouveau_context_video_buffer_create(struct pipe_context *pipe, - enum pipe_format buffer_format, - enum pipe_video_chroma_format chroma_format, - unsigned width, unsigned height) + const struct pipe_video_buffer *templat) { struct nouveau_screen *screen = nouveau_context(pipe)->screen; - return nouveau_video_buffer_create(pipe, screen, buffer_format, chroma_format, width, height); + return nouveau_video_buffer_create(pipe, screen, templat); } void |