diff --git a/src/picture.c b/src/picture.c index 24de480..e20ae01 100644 --- a/src/picture.c +++ b/src/picture.c @@ -240,8 +240,6 @@ VAStatus sunxi_cedrus_EndPicture(VADriverContextP ctx, VAContextID context) if(ioctl(driver_data->mem2mem_fd, VIDIOC_QBUF, &cap_buf)) { obj_surface->status = VASurfaceSkipped; sunxi_cedrus_msg("Error when queuing output: %s\n", strerror(errno)); - - ioctl(request_fd, MEDIA_REQUEST_IOC_REINIT, NULL); return VA_STATUS_ERROR_UNKNOWN; } @@ -250,7 +248,6 @@ VAStatus sunxi_cedrus_EndPicture(VADriverContextP ctx, VAContextID context) sunxi_cedrus_msg("Error when queuing input: %s\n", strerror(errno)); ioctl(driver_data->mem2mem_fd, VIDIOC_DQBUF, &cap_buf); - ioctl(request_fd, MEDIA_REQUEST_IOC_REINIT, NULL); return VA_STATUS_ERROR_UNKNOWN; } diff --git a/src/surface.c b/src/surface.c index 813cf0c..fb9a464 100644 --- a/src/surface.c +++ b/src/surface.c @@ -191,6 +191,8 @@ VAStatus sunxi_cedrus_SyncSurface(VADriverContextP ctx, if(rc < 0) return VA_STATUS_ERROR_UNKNOWN; + assert(ioctl(request_fd, MEDIA_REQUEST_IOC_REINIT, NULL)==0); + memset(&(buf), 0, sizeof(buf)); buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; buf.memory = V4L2_MEMORY_MMAP; @@ -217,7 +219,6 @@ VAStatus sunxi_cedrus_SyncSurface(VADriverContextP ctx, return VA_STATUS_ERROR_UNKNOWN; } - assert(ioctl(request_fd, MEDIA_REQUEST_IOC_REINIT, NULL)==0); return VA_STATUS_SUCCESS; }