| 103 | } |
| 104 | |
| 105 | bool draw(VADisplay display, VASurfaceID surface) |
| 106 | { |
| 107 | VaapiImage *vi = reinterpret_cast<VaapiImage *>(rawdata); |
| 108 | VAImage &image = vi->image; |
| 109 | data = NULL; |
| 110 | if (vi->data != NULL) { |
| 111 | vi->data = NULL; |
| 112 | CHECK_VA(vaUnmapBuffer(display, image.buf)); |
| 113 | } |
| 114 | CHECK_VA(vaGetImage(display, surface, 0, 0, image.width, image.height, image.image_id)); |
| 115 | CHECK_VA(vaMapBuffer(display, image.buf, (void**)&vi->data)); |
| 116 | data = vi->data; |
| 117 | return true; |
| 118 | } |
| 119 | }; |
| 120 | |
| 121 | class VaapiBuffer: public Buffer |