Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
21885a5
fix android build issue and remove some trailing whitespace
XinfengZhang Feb 3, 2020
04acc78
Add 2 FourCC for 10bit RGB(without Alpha) format: X2R10G10B10 and X2B…
FurongZhang Jan 2, 2020
8e467a6
libva 2.7.0 pre1
XinfengZhang Feb 14, 2020
48f446b
Return error when no va devices available.
LeptonWu Feb 10, 2020
7eb84e4
Add av1 decode interfaces
ZefuLI Jun 17, 2019
0d2bb49
am: include va_dec_av1.h in makefile.am
Mar 4, 2020
b70f4a4
change the format of va_dec_av1.h to unix style
XinfengZhang Mar 5, 2020
fbf85e5
change the variable name style of va_dec_av1
XinfengZhang Mar 5, 2020
ef8cbc9
add matrix_coefficients into VADecPictureParameterBufferAV1
XinfengZhang Mar 5, 2020
5539944
Add HEVC REXT and SCC trace for decoding.
wangyan42164 Feb 21, 2020
64520e9
[trace] av1 decode buffers trace
IlyaSergeyev Mar 12, 2020
7e1a3cf
update NEWS for 2.7.0
XinfengZhang Mar 25, 2020
42ce2a4
Convert VAProfileAV1Profile0 VAProfileAV1Profile1 to string
Tianhaol Apr 1, 2020
0eb0f96
change the compatible list to be dynamic one
XinfengZhang Apr 1, 2020
2ece709
libva 2.8.0 pre1
XinfengZhang Apr 1, 2020
0e391fd
Add VAProfileHEVCSccMain444_10 for HEVC
Tianhaol Mar 13, 2020
e18a6ab
Fix HDR10 MaxCLL and MaxFALL documentation
Apr 2, 2020
e3fe76f
Add SCC flags to enable/disable features
Tianhaol Feb 12, 2020
bc8a12a
VA/X11: enable driver candidate selection for DRI2
Apr 13, 2020
c2c339d
VA/X11: VAAPI driver mapping for iris DRI driver
Apr 13, 2020
8212296
Add new slice structure flag for CAPS reporting
aleonenk Mar 31, 2020
256bbab
remove check of vaPutSurface implementation
XinfengZhang Apr 2, 2020
05bb3fb
change the return value to be UNIMPLEMENTED when the function pointer…
XinfengZhang Apr 7, 2020
6456e00
vatrace: List correct field names in va_TraceVAPictureParameterBuffer…
rgonzalezfluendo Mar 25, 2020
0014ada
add definition to enforce both reflist not empty
XinfengZhang Jan 20, 2020
deb4369
Fix clang warning (reading garbage)
i386x Dec 1, 2019
ccf3b08
Fix format string warnings
i386x Dec 1, 2019
ede255b
meson: Allow for libdir and includedir to be absolute paths
primeos May 23, 2020
7805675
Remove the execute bit from all source code files
primeos May 23, 2020
829bde7
travis: Add a test that code files don't have the exec bit set
primeos May 23, 2020
a307f42
add fourcc code for P012 format
sunxinpeng Jan 15, 2020
b4e690f
Fixes file descriptor leak
gstark May 20, 2020
7fde463
va_trace: add support for VAProfileHEVCSccMain444_10
xhaihao Jun 10, 2020
0f83767
trace: divide va_TraceEndPicture to two seperate function
XinfengZhang Jun 5, 2020
0b53ce0
va_trace:enable return value trace for successful function call
XinfengZhang May 20, 2020
7749f3c
update NEWS for 2.8.0
XinfengZhang Jun 18, 2020
3cc2212
Add vaSyncSurface2 with timeout
dmitryermilov Apr 22, 2020
afca400
Add vaSyncBuffer for output buffers synchronization
dmitryermilov Apr 23, 2020
179ddc3
libva 2.9.0 pre1
XinfengZhang Jul 16, 2020
7c6de6d
add attributes for context priority setting
XinfengZhang May 14, 2020
4359c18
Add interpolation method for scaling.
FurongZhang May 13, 2020
b2e28d8
Update mailing list
Sherry-Lin May 9, 2020
37e320b
Add FOURCC code for Y212 and Y412 format.
wangyan42164 Jul 14, 2020
1d807f7
Modify comments in av1 decoder interfaces
rosetta-jpn Jul 17, 2020
836d8e2
Add SCC fields trace for HEVC SCC encoding.
HeJunyan Aug 7, 2020
fc257b4
Create test.txt
aukhina Aug 28, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ before_install:
- sudo apt-get install -y autoconf
- sudo apt-get install -y automake
- sudo apt-get install -y libtool
- sudo apt-get install -y m4
- sudo apt-get install -y m4
- sudo apt-get install -y lcov
- sudo apt-get install -y perl
- sudo apt-get install -y pkg-config
Expand Down Expand Up @@ -57,6 +57,12 @@ script:
echo "Don't build on coverty_scan branch.";
exit 0;
fi
- if [[ -n "$(find -name '*.[ch]' -executable)" ]];
then
echo "Error, a source code file(s) has the execute bit set:" >&2;
find -name '*.[ch]' -executable;
exit 1;
fi
- ./autogen.sh
- ./configure --prefix=/usr
- make -j4 ; sudo make install
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Please mail to [email protected] directly for security issue

If you have a problem, please let us know. IRC is a perfectly fine place
to quickly informally bring something up, if you get a response. The
[mailing list](https://lists.01.org/mailman/listinfo/intel-vaapi-media)
[mailing list](https://lists.01.org/postorius/lists/intel-vaapi-media.lists.01.org)
is a more durable communication channel.

If it's a bug not already documented, by all means please [open an
Expand Down
37 changes: 35 additions & 2 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
libva NEWS -- summary of user visible changes. 2019-12-25
Copyright (C) 2009-2019 Intel Corporation
libva NEWS -- summary of user visible changes. 2020-06-18
Copyright (C) 2009-2020 Intel Corporation

version 2.8.0 - 18.Jun.2020
* trace: enable return value trace for successful function call
* trace: divide va_TraceEndPicture to two seperate function
* trace: add support for VAProfileHEVCSccMain444_10
* fix:Fixes file descriptor leak
* add fourcc code for P012 format
* travis: Add a test that code files don't have the exec bit set
* Remove the execute bit from all source code files
* meson: Allow for libdir and includedir to be absolute paths
* trace: Fix format string warnings
* fix:Fix clang warning (reading garbage)
* add definition to enforce both reflist not empty
* trace: List correct field names in va_TraceVAPictureParameterBufferHEVC
* change the return value to be UNIMPLEMENTED when the function pointer is NULL
* remove check of vaPutSurface implementation
* Add new slice structure flag for CAPS reporting
* VA/X11: VAAPI driver mapping for iris DRI driver
* VA/X11: enable driver candidate selection for DRI2
* Add SCC flags to enable/disable features
* fix: Fix HDR10 MaxCLL and MaxFALL documentation
* Add VAProfileHEVCSccMain444_10 for HEVC
* change the compatible list to be dynamic one
* trace:Convert VAProfileAV1Profile0 VAProfileAV1Profile1 to string

version 2.7.0 - 26.Mar.2020
* trace: av1 decode buffers trace
* trace: Add HEVC REXT and SCC trace for decoding.
* Add av1 decode interfaces
* Fix crashes on system without supported hardware by PR #369.
* Add 2 FourCC for 10bit RGB(without Alpha) format: X2R10G10B10 and X2B10G10R10.
* Fix android build issue #365 and remove some trailing whitespace
* Adjust call sequence to ensure authenticate operation is executed to fix #355

version 2.6.0 - 15.Dec.2019
* enable the mutiple driver selection logic and enable it for DRM.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ be accessed directly through [github pages
libva](http://intel.github.io/libva/)

The libva development team can be reached via our [mailing
list](https://lists.01.org/mailman/listinfo/intel-vaapi-media) and on IRC
list](https://lists.01.org/postorius/lists/intel-vaapi-media.lists.01.org) and on IRC
in channel ##intel-media on [Freenode](https://freenode.net/kb/answer/chat).

We also use [#Slack](https://slack.com) and host [VAAPI Media Slack
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
# - reset micro version to zero when minor version is incremented
# - reset minor version to zero when major version is incremented
m4_define([va_api_major_version], [1])
m4_define([va_api_minor_version], [6])
m4_define([va_api_minor_version], [9])
m4_define([va_api_micro_version], [0])

m4_define([va_api_version],
Expand Down
6 changes: 3 additions & 3 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# - reset micro version to zero when VA-API major or minor version is changed
project(
'libva', 'c',
version : '2.6.0.1',
version : '2.9.0.1',
meson_version : '>= 0.37.0',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
Expand All @@ -19,7 +19,7 @@ project(
# - reset micro version to zero when minor version is incremented
# - reset minor version to zero when major version is incremented
va_api_major_version = 1
va_api_minor_version = 6
va_api_minor_version = 9
va_api_micro_version = 0

va_api_version = '@0@.@1@.@2@'.format(va_api_major_version,
Expand Down Expand Up @@ -65,7 +65,7 @@ libva_lt_version = '@0@.@1@.@2@'.format(libva_lt_current,

driverdir = get_option('driverdir')
if driverdir == ''
driverdir = '@0@/@1@/@2@'.format(get_option('prefix'), get_option('libdir'), 'dri')
driverdir = join_paths(get_option('prefix'), get_option('libdir'), 'dri')
endif

configinc = include_directories('.')
Expand Down
4 changes: 2 additions & 2 deletions pkgconfig/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ pkgconf = configuration_data()

pkgconf.set('prefix', get_option('prefix'))
pkgconf.set('exec_prefix', '${prefix}')
pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir')))
pkgconf.set('LIBVA_VERSION', libva_version)
pkgconf.set('VA_API_VERSION', va_api_version)
pkgconf.set('LIBVA_DRIVERS_PATH', driverdir)
Expand Down
1 change: 1 addition & 0 deletions test.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Hello world
1 change: 1 addition & 0 deletions va/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ libva_source_h = \
va_backend.h \
va_backend_vpp.h \
va_compat.h \
va_dec_av1.h \
va_dec_hevc.h \
va_dec_jpeg.h \
va_dec_vp8.h \
Expand Down
1 change: 0 additions & 1 deletion va/android/va_android.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ static void va_DisplayContextDestroy (
free(pDisplayContext);
}

}
static VAStatus va_DisplayContextGetNumCandidates(
VADisplayContextP pDisplayContext,
int *num_candidates
Expand Down
8 changes: 4 additions & 4 deletions va/drm/va_drm_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ VA_DRM_GetNumCandidates(VADriverContextP ctx, int * num_candidates)
{
struct drm_state * const drm_state = ctx->drm_state;
drmVersionPtr drm_version;
int num_of_candidate = 0;
int count = 0;
const struct driver_name_map *m = NULL;
if (!drm_state || drm_state->fd < 0)
return VA_STATUS_ERROR_INVALID_DISPLAY;
Expand All @@ -64,12 +64,12 @@ VA_DRM_GetNumCandidates(VADriverContextP ctx, int * num_candidates)
for (m = g_driver_name_map; m->key != NULL; m++) {
if (drm_version->name_len >= m->key_len &&
strncmp(drm_version->name, m->key, m->key_len) == 0) {
num_of_candidate ++;
count ++;
}
}
drmFreeVersion(drm_version);
*num_candidates = num_of_candidate;
return VA_STATUS_SUCCESS;
*num_candidates = count;
return count ? VA_STATUS_SUCCESS : VA_STATUS_ERROR_UNKNOWN;
}

/* Returns the VA driver name for the active display */
Expand Down
4 changes: 2 additions & 2 deletions va/glx/va_glx_impl.c
Original file line number Diff line number Diff line change
Expand Up @@ -939,7 +939,7 @@ static VAStatus
vaDestroySurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface)
{
VASurfaceGLXP pSurfaceGLX;
struct OpenGLContextState old_cs, *new_cs;
struct OpenGLContextState old_cs = {0}, *new_cs;

INIT_SURFACE(pSurfaceGLX, gl_surface);

Expand Down Expand Up @@ -1072,7 +1072,7 @@ vaCopySurfaceGLX_impl_libva(
{
VASurfaceGLXP pSurfaceGLX;
VAStatus status;
struct OpenGLContextState old_cs;
struct OpenGLContextState old_cs = {0};

INIT_SURFACE(pSurfaceGLX, gl_surface);

Expand Down
1 change: 1 addition & 0 deletions va/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ libva_headers = [
'va_dec_jpeg.h',
'va_dec_vp8.h',
'va_dec_vp9.h',
'va_dec_av1.h',
'va_drmcommon.h',
'va_egl.h',
'va_enc_hevc.h',
Expand Down
80 changes: 60 additions & 20 deletions va/va.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
#define DRIVER_EXTENSION "_drv_video.so"

#define ASSERT assert
#define CHECK_VTABLE(s, ctx, func) if (!va_checkVtable(dpy, ctx->vtable->va##func, #func)) s = VA_STATUS_ERROR_UNKNOWN;
#define CHECK_VTABLE(s, ctx, func) if (!va_checkVtable(dpy, ctx->vtable->va##func, #func)) s = VA_STATUS_ERROR_UNIMPLEMENTED;
#define CHECK_MAXIMUM(s, ctx, var) if (!va_checkMaximum(dpy, ctx->max_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;
#define CHECK_STRING(s, ctx, var) if (!va_checkString(dpy, ctx->str_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;

Expand Down Expand Up @@ -378,7 +378,7 @@ static VAStatus va_getDriverNameByIndex(VADisplay dpy, char **driver_name, int c
status = pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
else
status = VA_STATUS_ERROR_INVALID_PARAMETER;
}
}
driver_name_env = getenv("LIBVA_DRIVER_NAME");
/*if user set driver name by vaSetDriverName */
if (ctx->override_driver_name){
Expand All @@ -398,7 +398,7 @@ static VAStatus va_getDriverNameByIndex(VADisplay dpy, char **driver_name, int c
*driver_name = strdup(driver_name_env);
va_infoMessage(dpy, "User environment variable requested driver '%s'\n", *driver_name);
return VA_STATUS_SUCCESS;
}
}
return status;
}

Expand Down Expand Up @@ -465,19 +465,16 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name)
char init_func_s[256];
int i;

static const struct {
struct {
int major;
int minor;
} compatible_versions[] = {
{ VA_MAJOR_VERSION, VA_MINOR_VERSION },
{ VA_MAJOR_VERSION, 5 },
{ VA_MAJOR_VERSION, 4 },
{ VA_MAJOR_VERSION, 3 },
{ VA_MAJOR_VERSION, 2 },
{ VA_MAJOR_VERSION, 1 },
{ VA_MAJOR_VERSION, 0 },
{ -1, -1}
};
} compatible_versions[VA_MINOR_VERSION + 2];
for (i = 0; i <= VA_MINOR_VERSION; i ++) {
compatible_versions[i].major = VA_MAJOR_VERSION;
compatible_versions[i].minor = VA_MINOR_VERSION - i;
}
compatible_versions[i].major = -1;
compatible_versions[i].minor = -1;

for (i = 0; compatible_versions[i].major >= 0; i++) {
if (va_getDriverInitName(init_func_s, sizeof(init_func_s),
Expand Down Expand Up @@ -547,7 +544,6 @@ static VAStatus va_openDriver(VADisplay dpy, char *driver_name)
CHECK_VTABLE(vaStatus, ctx, EndPicture);
CHECK_VTABLE(vaStatus, ctx, SyncSurface);
CHECK_VTABLE(vaStatus, ctx, QuerySurfaceStatus);
CHECK_VTABLE(vaStatus, ctx, PutSurface);
CHECK_VTABLE(vaStatus, ctx, QueryImageFormats);
CHECK_VTABLE(vaStatus, ctx, CreateImage);
CHECK_VTABLE(vaStatus, ctx, DeriveImage);
Expand Down Expand Up @@ -744,7 +740,7 @@ VAStatus vaInitialize (
if (vaStatus == VA_STATUS_SUCCESS) {
break;
}

}

*major_version = VA_MAJOR_VERSION;
Expand Down Expand Up @@ -1616,12 +1612,11 @@ VAStatus vaEndPicture (
ctx = CTX(dpy);

VA_FOOL_FUNC(va_FoolCheckContinuity, dpy);

VA_TRACE_ALL(va_TraceEndPicture, dpy, context, 0);
va_status = ctx->vtable->vaEndPicture( ctx, context );

/* dump surface content */
VA_TRACE_ALL(va_TraceEndPicture, dpy, context, 1);
VA_TRACE_RET(dpy, va_status);
/* dump surface content */
VA_TRACE_ALL(va_TraceEndPictureExt, dpy, context, 1);

return va_status;
}
Expand All @@ -1644,6 +1639,28 @@ VAStatus vaSyncSurface (
return va_status;
}

VAStatus vaSyncSurface2 (
VADisplay dpy,
VASurfaceID surface,
uint64_t timeout_ns
)
{
VAStatus va_status;
VADriverContextP ctx;

CHECK_DISPLAY(dpy);
ctx = CTX(dpy);

if (ctx->vtable->vaSyncSurface2)
va_status = ctx->vtable->vaSyncSurface2( ctx, surface, timeout_ns );
else
va_status = VA_STATUS_ERROR_UNIMPLEMENTED;
VA_TRACE_LOG(va_TraceSyncSurface2, dpy, surface, timeout_ns);
VA_TRACE_RET(dpy, va_status);

return va_status;
}

VAStatus vaQuerySurfaceStatus (
VADisplay dpy,
VASurfaceID render_target,
Expand Down Expand Up @@ -1683,6 +1700,29 @@ VAStatus vaQuerySurfaceError (
return va_status;
}

VAStatus vaSyncBuffer (
VADisplay dpy,
VABufferID buf_id,
uint64_t timeout_ns
)
{
VAStatus va_status;
VADriverContextP ctx;

CHECK_DISPLAY(dpy);
ctx = CTX(dpy);

VA_TRACE_LOG(va_TraceSyncBuffer, dpy, buf_id, timeout_ns);

if (ctx->vtable->vaSyncBuffer)
va_status = ctx->vtable->vaSyncBuffer( ctx, buf_id, timeout_ns );
else
va_status = VA_STATUS_ERROR_UNIMPLEMENTED;
VA_TRACE_RET(dpy, va_status);

return va_status;
}

/* Get maximum number of image formats supported by the implementation */
int vaMaxNumImageFormats (
VADisplay dpy
Expand Down
Loading