@@ -1430,14 +1430,43 @@ VAStatus vaMapBuffer(
14301430)
14311431{
14321432 VADriverContextP ctx ;
1433- VAStatus va_status ;
1433+ VAStatus va_status = VA_STATUS_SUCCESS ;
1434+
1435+ CHECK_DISPLAY (dpy );
1436+ ctx = CTX (dpy );
1437+
1438+ if (ctx -> vtable -> vaMapBuffer2 ) {
1439+ va_status = ctx -> vtable -> vaMapBuffer2 (ctx , buf_id , pbuf , VA_MAPBUFFER_FLAG_DEFAULT );
1440+ } else if (ctx -> vtable -> vaMapBuffer ) {
1441+ va_status = ctx -> vtable -> vaMapBuffer (ctx , buf_id , pbuf );
1442+ }
1443+
1444+ VA_TRACE_ALL (va_TraceMapBuffer , dpy , buf_id , pbuf , VA_MAPBUFFER_FLAG_DEFAULT );
1445+ VA_TRACE_RET (dpy , va_status );
1446+
1447+ return va_status ;
1448+ }
1449+
1450+ VAStatus vaMapBuffer2 (
1451+ VADisplay dpy ,
1452+ VABufferID buf_id , /* in */
1453+ void * * pbuf , /* out */
1454+ uint32_t flags /*in */
1455+ )
1456+ {
1457+ VADriverContextP ctx ;
1458+ VAStatus va_status = VA_STATUS_SUCCESS ;
14341459
14351460 CHECK_DISPLAY (dpy );
14361461 ctx = CTX (dpy );
14371462
1438- va_status = ctx -> vtable -> vaMapBuffer (ctx , buf_id , pbuf );
1463+ if (ctx -> vtable -> vaMapBuffer2 ) {
1464+ va_status = ctx -> vtable -> vaMapBuffer2 (ctx , buf_id , pbuf , flags );
1465+ } else if (ctx -> vtable -> vaMapBuffer ) {
1466+ va_status = ctx -> vtable -> vaMapBuffer (ctx , buf_id , pbuf );
1467+ }
14391468
1440- VA_TRACE_ALL (va_TraceMapBuffer , dpy , buf_id , pbuf );
1469+ VA_TRACE_ALL (va_TraceMapBuffer , dpy , buf_id , pbuf , flags );
14411470 VA_TRACE_RET (dpy , va_status );
14421471
14431472 return va_status ;
0 commit comments