summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/vdpau/surface.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2012-10-08 04:06:42 +0200
committerMarek Olšák <maraeo@gmail.com>2012-10-11 21:12:16 +0200
commit369e46888904c6d379b8b477d9242cff1608e30e (patch)
tree528b10f900f23af3acd22a0edcf50fde0eeee86e /src/gallium/state_trackers/vdpau/surface.c
parentec4c74a9dc10039d97ad24c4f16bd2400517991d (diff)
downloadexternal_mesa3d-369e46888904c6d379b8b477d9242cff1608e30e.zip
external_mesa3d-369e46888904c6d379b8b477d9242cff1608e30e.tar.gz
external_mesa3d-369e46888904c6d379b8b477d9242cff1608e30e.tar.bz2
gallium: unify transfer functions
"get_transfer + transfer_map" becomes "transfer_map". "transfer_unmap + transfer_destroy" becomes "transfer_unmap". transfer_map must create and return the transfer object and transfer_unmap must destroy it. transfer_map is successful if the returned buffer pointer is not NULL. If transfer_map fails, the pointer to the transfer object remains unchanged (i.e. doesn't have to be NULL). Acked-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/gallium/state_trackers/vdpau/surface.c')
-rw-r--r--src/gallium/state_trackers/vdpau/surface.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/gallium/state_trackers/vdpau/surface.c b/src/gallium/state_trackers/vdpau/surface.c
index cc866a6..bcc33c0 100644
--- a/src/gallium/state_trackers/vdpau/surface.c
+++ b/src/gallium/state_trackers/vdpau/surface.c
@@ -236,15 +236,9 @@ vlVdpVideoSurfaceGetBitsYCbCr(VdpVideoSurface surface,
struct pipe_transfer *transfer;
uint8_t *map;
- transfer = pipe->get_transfer(pipe, sv->texture, 0, PIPE_TRANSFER_READ, &box);
- if (transfer == NULL) {
- pipe_mutex_unlock(vlsurface->device->mutex);
- return VDP_STATUS_RESOURCES;
- }
-
- map = pipe_transfer_map(pipe, transfer);
- if (map == NULL) {
- pipe_transfer_destroy(pipe, transfer);
+ map = pipe->transfer_map(pipe, sv->texture, 0,
+ PIPE_TRANSFER_READ, &box, &transfer);
+ if (!map) {
pipe_mutex_unlock(vlsurface->device->mutex);
return VDP_STATUS_RESOURCES;
}
@@ -254,7 +248,6 @@ vlVdpVideoSurfaceGetBitsYCbCr(VdpVideoSurface surface,
box.width, box.height, map, transfer->stride, 0, 0);
pipe_transfer_unmap(pipe, transfer);
- pipe_transfer_destroy(pipe, transfer);
}
}
pipe_mutex_unlock(vlsurface->device->mutex);