Codebase list libva / aaa3dc2
Update upstream source from tag 'upstream/2.2.0' Update to upstream version '2.2.0' with Debian dir 86e33082c2cc896202fe47e6c4b2a49412db40dc Sebastian Ramacher 5 years ago
14 changed file(s) with 707 addition(s) and 130 deletion(s). Raw diff Collapse all Expand all
0 libva NEWS -- summary of user visible changes. 2018-02-12
0 libva NEWS -- summary of user visible changes. 2018-07-11
11 Copyright (C) 2009-2018 Intel Corporation
2
3 Version 2.2.0 - 11.July.2018
4 * Bump VA-API version to 1.2.0 and libva to 2.2.0
5 * Add support for hevc range extension decoding
6 * Add support for fast intra prediction in HEVC FEI
7 * Add 10/12-bit YUV render target formats
8 * Add fourcc code for Y210/Y216/Y410/Y416/RGB565/BGR565
9 * Add VA_STATUS_ERROR_NOT_ENOUGH_BUFFER
10 * Add VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT
11 * Improve documentation
212
313 Version 2.1.0 - 12.Feb.2018
414 * Bump VA-API version to 1.1.0 and libva to 2.1.0
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for libva 2.1.0.
2 # Generated by GNU Autoconf 2.69 for libva 2.2.0.
33 #
4 # Report bugs to <https://github.com/01org/libva/issues/new>.
4 # Report bugs to <https://github.com/intel/libva/issues/new>.
55 #
66 #
77 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
274274 $as_echo "$0: be upgraded to zsh 4.3.4 or later."
275275 else
276276 $as_echo "$0: Please tell bug-autoconf@gnu.org and
277 $0: https://github.com/01org/libva/issues/new about your
277 $0: https://github.com/intel/libva/issues/new about your
278278 $0: system, including any error possibly output before this
279279 $0: message. Then install a modern shell, or manually run
280280 $0: the script under such a shell if you do have one."
589589 # Identity of this package.
590590 PACKAGE_NAME='libva'
591591 PACKAGE_TARNAME='libva'
592 PACKAGE_VERSION='2.1.0'
593 PACKAGE_STRING='libva 2.1.0'
594 PACKAGE_BUGREPORT='https://github.com/01org/libva/issues/new'
595 PACKAGE_URL='https://github.com/01org/libva'
592 PACKAGE_VERSION='2.2.0'
593 PACKAGE_STRING='libva 2.2.0'
594 PACKAGE_BUGREPORT='https://github.com/intel/libva/issues/new'
595 PACKAGE_URL='https://github.com/intel/libva'
596596
597597 ac_unique_file="Makefile.am"
598598 # Factoring default headers for most tests.
13911391 # Omit some internal or obsolete options to make the list less imposing.
13921392 # This message is too long to be a string in the A/UX 3.1 sh.
13931393 cat <<_ACEOF
1394 \`configure' configures libva 2.1.0 to adapt to many kinds of systems.
1394 \`configure' configures libva 2.2.0 to adapt to many kinds of systems.
13951395
13961396 Usage: $0 [OPTION]... [VAR=VALUE]...
13971397
14621462
14631463 if test -n "$ac_init_help"; then
14641464 case $ac_init_help in
1465 short | recursive ) echo "Configuration of libva 2.1.0:";;
1465 short | recursive ) echo "Configuration of libva 2.2.0:";;
14661466 esac
14671467 cat <<\_ACEOF
14681468
15361536 Use these variables to override the choices made by `configure' or to help
15371537 it to find libraries and programs with nonstandard names/locations.
15381538
1539 Report bugs to <https://github.com/01org/libva/issues/new>.
1540 libva home page: <https://github.com/01org/libva>.
1539 Report bugs to <https://github.com/intel/libva/issues/new>.
1540 libva home page: <https://github.com/intel/libva>.
15411541 _ACEOF
15421542 ac_status=$?
15431543 fi
16001600 test -n "$ac_init_help" && exit $ac_status
16011601 if $ac_init_version; then
16021602 cat <<\_ACEOF
1603 libva configure 2.1.0
1603 libva configure 2.2.0
16041604 generated by GNU Autoconf 2.69
16051605
16061606 Copyright (C) 2012 Free Software Foundation, Inc.
20672067 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
20682068 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
20692069 ( $as_echo "## -------------------------------------------------------- ##
2070 ## Report this to https://github.com/01org/libva/issues/new ##
2070 ## Report this to https://github.com/intel/libva/issues/new ##
20712071 ## -------------------------------------------------------- ##"
20722072 ) | sed "s/^/$as_me: WARNING: /" >&2
20732073 ;;
20902090 This file contains any messages produced by compilers while
20912091 running configure, to aid debugging if configure makes a mistake.
20922092
2093 It was created by libva $as_me 2.1.0, which was
2093 It was created by libva $as_me 2.2.0, which was
20942094 generated by GNU Autoconf 2.69. Invocation command line was
20952095
20962096 $ $0 $@
29562956
29572957 # Define the identity of the package.
29582958 PACKAGE='libva'
2959 VERSION='2.1.0'
2959 VERSION='2.2.0'
29602960
29612961
29622962 cat >>confdefs.h <<_ACEOF
30963096
30973097
30983098 VA_API_MAJOR_VERSION=1
3099 VA_API_MINOR_VERSION=1
3099 VA_API_MINOR_VERSION=2
31003100 VA_API_MICRO_VERSION=0
3101 VA_API_VERSION=1.1.0
3101 VA_API_VERSION=1.2.0
31023102
31033103
31043104
31053105
31063106
31073107 LIBVA_MAJOR_VERSION=2
3108 LIBVA_MINOR_VERSION=1
3108 LIBVA_MINOR_VERSION=2
31093109 LIBVA_MICRO_VERSION=0
3110 LIBVA_VERSION=2.1.0
3111
3112
3113
3114
3115
3116 LIBVA_LT_CURRENT=102
3110 LIBVA_VERSION=2.2.0
3111
3112
3113
3114
3115
3116 LIBVA_LT_CURRENT=202
31173117 LIBVA_LT_REV=0
3118 LIBVA_LT_AGE=100
3118 LIBVA_LT_AGE=200
31193119 LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE"
31203120 LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION"
31213121
1847118471 # report actual input values of CONFIG_FILES etc. instead of their
1847218472 # values after options handling.
1847318473 ac_log="
18474 This file was extended by libva $as_me 2.1.0, which was
18474 This file was extended by libva $as_me 2.2.0, which was
1847518475 generated by GNU Autoconf 2.69. Invocation command line was
1847618476
1847718477 CONFIG_FILES = $CONFIG_FILES
1853118531 Configuration commands:
1853218532 $config_commands
1853318533
18534 Report bugs to <https://github.com/01org/libva/issues/new>.
18535 libva home page: <https://github.com/01org/libva>."
18534 Report bugs to <https://github.com/intel/libva/issues/new>.
18535 libva home page: <https://github.com/intel/libva>."
1853618536
1853718537 _ACEOF
1853818538 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1853918539 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1854018540 ac_cs_version="\\
18541 libva config.status 2.1.0
18541 libva config.status 2.2.0
1854218542 configured by $0, generated by GNU Autoconf 2.69,
1854318543 with options \\"\$ac_cs_config\\"
1854418544
2626 # - reset micro version to zero when minor version is incremented
2727 # - reset minor version to zero when major version is incremented
2828 m4_define([va_api_major_version], [1])
29 m4_define([va_api_minor_version], [1])
29 m4_define([va_api_minor_version], [2])
3030 m4_define([va_api_micro_version], [0])
3131
3232 m4_define([va_api_version],
8383 AC_PREREQ(2.57)
8484 AC_INIT([libva],
8585 [libva_version],
86 [https://github.com/01org/libva/issues/new],
86 [https://github.com/intel/libva/issues/new],
8787 [libva],
88 [https://github.com/01org/libva])
88 [https://github.com/intel/libva])
8989
9090 AC_CONFIG_SRCDIR([Makefile.am])
9191 AC_CONFIG_MACRO_DIR([m4])
7474 -Wl,-version-script,${srcdir}/libva.syms \
7575 $(NULL)
7676
77 libva_cflags = \
78 -Wall \
79 -fstack-protector \
80 $(NULL)
81
7782 lib_LTLIBRARIES = libva.la
7883 libvaincludedir = ${includedir}/va
7984 libvainclude_HEADERS = $(libva_source_h)
8085 noinst_HEADERS = $(libva_source_h_priv)
8186 libva_la_SOURCES = $(libva_source_c)
87 libva_la_CFLAGS = $(libva_cflags)
8288 libva_la_LDFLAGS = $(libva_ldflags)
8389 libva_la_DEPENDENCIES = libva.syms
8490 libva_la_LIBADD = $(LIBVA_LIBS) -ldl
8793 SUBDIRS += drm
8894 lib_LTLIBRARIES += libva-drm.la
8995 libva_drm_la_SOURCES =
96 libva_drm_la_CFLAGS = $(libva_cflags)
9097 libva_drm_la_LDFLAGS = $(LDADD)
9198 libva_drm_la_DEPENDENCIES = libva.la drm/libva_drm.la
9299 libva_drm_la_LIBADD = libva.la drm/libva_drm.la \
98105 lib_LTLIBRARIES += libva-x11.la
99106 libva_source_h += va_x11.h
100107 libva_x11_la_SOURCES =
108 libva_x11_la_CFLAGS = $(libva_cflags)
101109 libva_x11_la_LDFLAGS = $(LDADD)
102110 libva_x11_la_DEPENDENCIES = libva.la x11/libva_x11.la
103111 libva_x11_la_LIBADD = libva.la x11/libva_x11.la \
108116 SUBDIRS += glx
109117 lib_LTLIBRARIES += libva-glx.la
110118 libva_glx_la_SOURCES =
119 libva_glx_la_CFLAGS = $(libva_cflags)
111120 libva_glx_la_LDFLAGS = $(LDADD)
112121 libva_glx_la_DEPENDENCIES = libva.la glx/libva_glx.la libva-x11.la
113122 libva_glx_la_LIBADD = libva.la glx/libva_glx.la libva-x11.la \
118127 SUBDIRS += wayland
119128 lib_LTLIBRARIES += libva-wayland.la
120129 libva_wayland_la_SOURCES =
130 libva_wayland_la_CFLAGS = $(libva_cflags)
121131 libva_wayland_la_LDFLAGS = $(LDADD)
122132 libva_wayland_la_DEPENDENCIES = libva.la wayland/libva_wayland.la
123133 libva_wayland_la_LIBADD = libva.la wayland/libva_wayland.la \
170170 am__v_lt_0 = --silent
171171 am__v_lt_1 =
172172 libva_drm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
173 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
174 $(libva_drm_la_LDFLAGS) $(LDFLAGS) -o $@
173 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libva_drm_la_CFLAGS) \
174 $(CFLAGS) $(libva_drm_la_LDFLAGS) $(LDFLAGS) -o $@
175175 @USE_DRM_TRUE@am_libva_drm_la_rpath = -rpath $(libdir)
176176 am_libva_glx_la_OBJECTS =
177177 libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS)
178178 libva_glx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
179 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
180 $(libva_glx_la_LDFLAGS) $(LDFLAGS) -o $@
179 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libva_glx_la_CFLAGS) \
180 $(CFLAGS) $(libva_glx_la_LDFLAGS) $(LDFLAGS) -o $@
181181 @USE_GLX_TRUE@am_libva_glx_la_rpath = -rpath $(libdir)
182182 am_libva_wayland_la_OBJECTS =
183183 libva_wayland_la_OBJECTS = $(am_libva_wayland_la_OBJECTS)
184184 libva_wayland_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
185185 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
186 $(AM_CFLAGS) $(CFLAGS) $(libva_wayland_la_LDFLAGS) $(LDFLAGS) \
187 -o $@
186 $(libva_wayland_la_CFLAGS) $(CFLAGS) \
187 $(libva_wayland_la_LDFLAGS) $(LDFLAGS) -o $@
188188 @USE_WAYLAND_TRUE@am_libva_wayland_la_rpath = -rpath $(libdir)
189189 am_libva_x11_la_OBJECTS =
190190 libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS)
191191 libva_x11_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
192 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
193 $(libva_x11_la_LDFLAGS) $(LDFLAGS) -o $@
192 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libva_x11_la_CFLAGS) \
193 $(CFLAGS) $(libva_x11_la_LDFLAGS) $(LDFLAGS) -o $@
194194 @USE_X11_TRUE@am_libva_x11_la_rpath = -rpath $(libdir)
195 am__objects_1 = va.lo va_compat.lo va_fool.lo va_str.lo va_trace.lo
195 am__objects_1 = libva_la-va.lo libva_la-va_compat.lo \
196 libva_la-va_fool.lo libva_la-va_str.lo libva_la-va_trace.lo
196197 am_libva_la_OBJECTS = $(am__objects_1)
197198 libva_la_OBJECTS = $(am_libva_la_OBJECTS)
198199 libva_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
199 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
200 $(libva_la_LDFLAGS) $(LDFLAGS) -o $@
200 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libva_la_CFLAGS) \
201 $(CFLAGS) $(libva_la_LDFLAGS) $(LDFLAGS) -o $@
201202 AM_V_P = $(am__v_P_@AM_V@)
202203 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
203204 am__v_P_0 = false
497498 -Wl,-version-script,${srcdir}/libva.syms \
498499 $(NULL)
499500
501 libva_cflags = \
502 -Wall \
503 -fstack-protector \
504 $(NULL)
505
500506 lib_LTLIBRARIES = libva.la $(am__append_2) $(am__append_4) \
501507 $(am__append_7) $(am__append_9)
502508 libvaincludedir = ${includedir}/va
503509 libvainclude_HEADERS = $(libva_source_h)
504510 noinst_HEADERS = $(libva_source_h_priv)
505511 libva_la_SOURCES = $(libva_source_c)
512 libva_la_CFLAGS = $(libva_cflags)
506513 libva_la_LDFLAGS = $(libva_ldflags)
507514 libva_la_DEPENDENCIES = libva.syms
508515 libva_la_LIBADD = $(LIBVA_LIBS) -ldl
509516 @USE_DRM_TRUE@libva_drm_la_SOURCES =
517 @USE_DRM_TRUE@libva_drm_la_CFLAGS = $(libva_cflags)
510518 @USE_DRM_TRUE@libva_drm_la_LDFLAGS = $(LDADD)
511519 @USE_DRM_TRUE@libva_drm_la_DEPENDENCIES = libva.la drm/libva_drm.la
512520 @USE_DRM_TRUE@libva_drm_la_LIBADD = libva.la drm/libva_drm.la \
513521 @USE_DRM_TRUE@ $(LIBVA_LIBS) $(DRM_LIBS) -ldl
514522
515523 @USE_X11_TRUE@libva_x11_la_SOURCES =
524 @USE_X11_TRUE@libva_x11_la_CFLAGS = $(libva_cflags)
516525 @USE_X11_TRUE@libva_x11_la_LDFLAGS = $(LDADD)
517526 @USE_X11_TRUE@libva_x11_la_DEPENDENCIES = libva.la x11/libva_x11.la
518527 @USE_X11_TRUE@libva_x11_la_LIBADD = libva.la x11/libva_x11.la \
519528 @USE_X11_TRUE@ $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) $(DRM_LIBS) -ldl
520529
521530 @USE_GLX_TRUE@libva_glx_la_SOURCES =
531 @USE_GLX_TRUE@libva_glx_la_CFLAGS = $(libva_cflags)
522532 @USE_GLX_TRUE@libva_glx_la_LDFLAGS = $(LDADD)
523533 @USE_GLX_TRUE@libva_glx_la_DEPENDENCIES = libva.la glx/libva_glx.la libva-x11.la
524534 @USE_GLX_TRUE@libva_glx_la_LIBADD = libva.la glx/libva_glx.la libva-x11.la \
525535 @USE_GLX_TRUE@ $(GLX_LIBS) -ldl
526536
527537 @USE_WAYLAND_TRUE@libva_wayland_la_SOURCES =
538 @USE_WAYLAND_TRUE@libva_wayland_la_CFLAGS = $(libva_cflags)
528539 @USE_WAYLAND_TRUE@libva_wayland_la_LDFLAGS = $(LDADD)
529540 @USE_WAYLAND_TRUE@libva_wayland_la_DEPENDENCIES = libva.la wayland/libva_wayland.la
530541 @USE_WAYLAND_TRUE@libva_wayland_la_LIBADD = libva.la wayland/libva_wayland.la \
632643 distclean-compile:
633644 -rm -f *.tab.c
634645
635 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va.Plo@am__quote@
636 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_compat.Plo@am__quote@
637 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_fool.Plo@am__quote@
638 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_str.Plo@am__quote@
639 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/va_trace.Plo@am__quote@
646 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libva_la-va.Plo@am__quote@
647 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libva_la-va_compat.Plo@am__quote@
648 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libva_la-va_fool.Plo@am__quote@
649 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libva_la-va_str.Plo@am__quote@
650 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libva_la-va_trace.Plo@am__quote@
640651
641652 .c.o:
642653 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
658669 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
659670 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
660671 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
672
673 libva_la-va.lo: va.c
674 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -MT libva_la-va.lo -MD -MP -MF $(DEPDIR)/libva_la-va.Tpo -c -o libva_la-va.lo `test -f 'va.c' || echo '$(srcdir)/'`va.c
675 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libva_la-va.Tpo $(DEPDIR)/libva_la-va.Plo
676 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='va.c' object='libva_la-va.lo' libtool=yes @AMDEPBACKSLASH@
677 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
678 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -c -o libva_la-va.lo `test -f 'va.c' || echo '$(srcdir)/'`va.c
679
680 libva_la-va_compat.lo: va_compat.c
681 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -MT libva_la-va_compat.lo -MD -MP -MF $(DEPDIR)/libva_la-va_compat.Tpo -c -o libva_la-va_compat.lo `test -f 'va_compat.c' || echo '$(srcdir)/'`va_compat.c
682 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libva_la-va_compat.Tpo $(DEPDIR)/libva_la-va_compat.Plo
683 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='va_compat.c' object='libva_la-va_compat.lo' libtool=yes @AMDEPBACKSLASH@
684 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
685 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -c -o libva_la-va_compat.lo `test -f 'va_compat.c' || echo '$(srcdir)/'`va_compat.c
686
687 libva_la-va_fool.lo: va_fool.c
688 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -MT libva_la-va_fool.lo -MD -MP -MF $(DEPDIR)/libva_la-va_fool.Tpo -c -o libva_la-va_fool.lo `test -f 'va_fool.c' || echo '$(srcdir)/'`va_fool.c
689 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libva_la-va_fool.Tpo $(DEPDIR)/libva_la-va_fool.Plo
690 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='va_fool.c' object='libva_la-va_fool.lo' libtool=yes @AMDEPBACKSLASH@
691 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
692 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -c -o libva_la-va_fool.lo `test -f 'va_fool.c' || echo '$(srcdir)/'`va_fool.c
693
694 libva_la-va_str.lo: va_str.c
695 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -MT libva_la-va_str.lo -MD -MP -MF $(DEPDIR)/libva_la-va_str.Tpo -c -o libva_la-va_str.lo `test -f 'va_str.c' || echo '$(srcdir)/'`va_str.c
696 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libva_la-va_str.Tpo $(DEPDIR)/libva_la-va_str.Plo
697 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='va_str.c' object='libva_la-va_str.lo' libtool=yes @AMDEPBACKSLASH@
698 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
699 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -c -o libva_la-va_str.lo `test -f 'va_str.c' || echo '$(srcdir)/'`va_str.c
700
701 libva_la-va_trace.lo: va_trace.c
702 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -MT libva_la-va_trace.lo -MD -MP -MF $(DEPDIR)/libva_la-va_trace.Tpo -c -o libva_la-va_trace.lo `test -f 'va_trace.c' || echo '$(srcdir)/'`va_trace.c
703 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libva_la-va_trace.Tpo $(DEPDIR)/libva_la-va_trace.Plo
704 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='va_trace.c' object='libva_la-va_trace.lo' libtool=yes @AMDEPBACKSLASH@
705 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
706 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libva_la_CFLAGS) $(CFLAGS) -c -o libva_la-va_trace.lo `test -f 'va_trace.c' || echo '$(srcdir)/'`va_trace.c
661707
662708 mostlyclean-libtool:
663709 -rm -f *.lo
401401 int minor;
402402 } compatible_versions[] = {
403403 { VA_MAJOR_VERSION, VA_MINOR_VERSION },
404 { VA_MAJOR_VERSION, 1 },
404405 { VA_MAJOR_VERSION, 0 },
405406 { -1, }
406407 };
593594 return "HW busy now";
594595 case VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE:
595596 return "an unsupported memory type was supplied";
597 case VA_STATUS_ERROR_NOT_ENOUGH_BUFFER:
598 return "allocated memory size is not enough for input or output";
596599 case VA_STATUS_ERROR_UNKNOWN:
597600 return "unknown libva error";
598601 }
8585 extern "C" {
8686 #endif
8787
88 #ifdef __GNUC__
88 #if defined(__GNUC__) && !defined(__COVERITY__)
8989 #define va_deprecated __attribute__((deprecated))
9090 #if __GNUC__ >= 6
9191 #define va_deprecated_enum va_deprecated
209209 #define VA_STATUS_ERROR_HW_BUSY 0x00000022
210210 /** \brief An unsupported memory type was supplied. */
211211 #define VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE 0x00000024
212 /** \brief Indicate allocated buffer size is not enough for input or output. */
213 #define VA_STATUS_ERROR_NOT_ENOUGH_BUFFER 0x00000025
212214 #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF
213215
214216 /** De-interlacing flags for vaPutSurface() */
372374 VAProfileVP9Profile0 = 19,
373375 VAProfileVP9Profile1 = 20,
374376 VAProfileVP9Profile2 = 21,
375 VAProfileVP9Profile3 = 22
377 VAProfileVP9Profile3 = 22,
378 VAProfileHEVCMain12 = 23,
379 VAProfileHEVCMain422_10 = 24,
380 VAProfileHEVCMain422_12 = 25,
381 VAProfileHEVCMain444 = 26,
382 VAProfileHEVCMain444_10 = 27,
383 VAProfileHEVCMain444_12 = 28,
384 VAProfileHEVCSccMain = 29,
385 VAProfileHEVCSccMain10 = 30,
386 VAProfileHEVCSccMain444 = 31
376387 } VAProfile;
377388
378389 /**
751762 uint32_t value; /* OR'd flags (bits) for this attribute */
752763 } VAConfigAttrib;
753764
754 /** attribute value for VAConfigAttribRTFormat */
755 #define VA_RT_FORMAT_YUV420 0x00000001
756 #define VA_RT_FORMAT_YUV422 0x00000002
757 #define VA_RT_FORMAT_YUV444 0x00000004
758 #define VA_RT_FORMAT_YUV411 0x00000008
759 #define VA_RT_FORMAT_YUV400 0x00000010
760 /** YUV formats with more than 8 bpp */
761 #define VA_RT_FORMAT_YUV420_10BPP 0x00000100
762 /** RGB formats */
763 #define VA_RT_FORMAT_RGB16 0x00010000
764 #define VA_RT_FORMAT_RGB32 0x00020000
765 /* RGBP covers RGBP and BGRP fourcc */
766 #define VA_RT_FORMAT_RGBP 0x00100000
767 /**
768 * RGB 10-bit packed format with upper 2 bits as alpha channel.
769 * The existing pre-defined fourcc codes can be used to signal
770 * the position of each component for this RT format.
771 */
772 #define VA_RT_FORMAT_RGB32_10BPP 0x00200000
765 /* Attribute values for VAConfigAttribRTFormat. */
766
767 #define VA_RT_FORMAT_YUV420 0x00000001 ///< YUV 4:2:0 8-bit.
768 #define VA_RT_FORMAT_YUV422 0x00000002 ///< YUV 4:2:2 8-bit.
769 #define VA_RT_FORMAT_YUV444 0x00000004 ///< YUV 4:4:4 8-bit.
770 #define VA_RT_FORMAT_YUV411 0x00000008 ///< YUV 4:1:1 8-bit.
771 #define VA_RT_FORMAT_YUV400 0x00000010 ///< Greyscale 8-bit.
772 #define VA_RT_FORMAT_YUV420_10 0x00000100 ///< YUV 4:2:0 10-bit.
773 #define VA_RT_FORMAT_YUV422_10 0x00000200 ///< YUV 4:2:2 10-bit.
774 #define VA_RT_FORMAT_YUV444_10 0x00000400 ///< YUV 4:4:4 10-bit.
775 #define VA_RT_FORMAT_YUV420_12 0x00001000 ///< YUV 4:2:0 12-bit.
776 #define VA_RT_FORMAT_YUV422_12 0x00002000 ///< YUV 4:2:2 12-bit.
777 #define VA_RT_FORMAT_YUV444_12 0x00004000 ///< YUV 4:4:4 12-bit.
778
779 #define VA_RT_FORMAT_RGB16 0x00010000 ///< Packed RGB, 16 bits per pixel.
780 #define VA_RT_FORMAT_RGB32 0x00020000 ///< Packed RGB, 32 bits per pixel, 8 bits per colour sample.
781 #define VA_RT_FORMAT_RGBP 0x00100000 ///< Planar RGB, 8 bits per sample.
782 #define VA_RT_FORMAT_RGB32_10 0x00200000 ///< Packed RGB, 32 bits per pixel, 10 bits per colour sample.
783
773784 #define VA_RT_FORMAT_PROTECTED 0x80000000
785
786 #define VA_RT_FORMAT_RGB32_10BPP VA_RT_FORMAT_RGB32_10 ///< @deprecated use VA_RT_FORMAT_RGB32_10 instead.
787 #define VA_RT_FORMAT_YUV420_10BPP VA_RT_FORMAT_YUV420_10 ///< @deprecated use VA_RT_FORMAT_YUV420_10 instead.
774788
775789 /** @name Attribute values for VAConfigAttribRateControl */
776790 /**@{*/
13181332 #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE 0x00000008
13191333 /** \brief Surface used for display. */
13201334 #define VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY 0x00000010
1335 /** \brief Surface used for export to third-party APIs, e.g. via
1336 * vaExportSurfaceHandle(). */
1337 #define VA_SURFACE_ATTRIB_USAGE_HINT_EXPORT 0x00000020
13211338
13221339 /**@}*/
13231340
18041821 /** \brief Rate control parameters */
18051822 typedef struct _VAEncMiscParameterRateControl
18061823 {
1807 /* this is the maximum bit-rate to be constrained by the rate control implementation */
1824 /** The maximum bit-rate which the the rate controller should generate. */
18081825 uint32_t bits_per_second;
1809 /* this is the bit-rate the rate control is targeting, as a percentage of the maximum
1810 * bit-rate for example if target_percentage is 95 then the rate control will target
1811 * a bit-rate that is 95% of the maximum bit-rate
1826 /** The target bit-rate which the rate controller should generate, as a percentage of the
1827 * maximum bit-rate.
1828 *
1829 * In CBR mode this value is ignored (treated as 100%).
18121830 */
18131831 uint32_t target_percentage;
1814 /* windows size in milliseconds. For example if this is set to 500,
1815 * then the rate control will guarantee the target bit-rate over a 500 ms window
1832 /** Rate control window size in milliseconds.
1833 *
1834 * The rate controller will attempt to guarantee that the target and maximum bit-rates are
1835 * correct over this window.
18161836 */
18171837 uint32_t window_size;
1818 /* initial QP at I frames */
1838 /** Initial quantiser value used at the start of the stream.
1839 *
1840 * Ignored if set to zero.
1841 */
18191842 uint32_t initial_qp;
1843 /** Minimum quantiser value to use.
1844 *
1845 * The quantiser will not go below the value - if this limit is hit, the output bitrate may
1846 * be lower than the target. Ignored if set to zero.
1847 */
18201848 uint32_t min_qp;
1849 /** Basic unit size.
1850 *
1851 * Only used by some drivers - see driver documentation for details. Set to zero if unused.
1852 */
18211853 uint32_t basic_unit_size;
18221854 union
18231855 {
18241856 struct
18251857 {
1858 /** Force rate controller reset.
1859 *
1860 * The next frame will be treated as the start of a new stream, with all rate
1861 * controller state reset to its initial values.
1862 */
18261863 uint32_t reset : 1;
1827 uint32_t disable_frame_skip : 1; /* Disable frame skip in rate control mode */
1828 uint32_t disable_bit_stuffing : 1; /* Disable bit stuffing in rate control mode */
1829 uint32_t mb_rate_control : 4; /* Control VA_RC_MB 0: default, 1: enable, 2: disable, other: reserved*/
1830 /*
1831 * The temporal layer that the rate control parameters are specified for.
1864 /** Disable frame skip in rate control mode. */
1865 uint32_t disable_frame_skip : 1;
1866 /** Disable bit stuffing in rate control mode. */
1867 uint32_t disable_bit_stuffing : 1;
1868 /** Macroblock-level rate control.
1869 *
1870 * 0: use default, 1: always enable, 2: always disable, other: reserved.
1871 *
1872 * This feature is only available if VAConfigAttribRateControl has the
1873 * \ref VA_RC_MB bit set.
18321874 */
1875 uint32_t mb_rate_control : 4;
1876 /** The temporal layer that these rate control parameters apply to. */
18331877 uint32_t temporal_id : 8;
1834 uint32_t cfs_I_frames : 1; /* I frame also follows CFS */
1878 /** Ensure that intra frames also conform to the constant frame size. */
1879 uint32_t cfs_I_frames : 1;
1880 /** Enable parallel rate control for hierarchical B frames.
1881 *
1882 * See \ref VA_RC_PARALLEL.
1883 */
18351884 uint32_t enable_parallel_brc : 1;
18361885 uint32_t enable_dynamic_scaling : 1;
1837 /** \brief Frame Tolerance Mode
1886 /** Frame tolerance mode.
1887 *
18381888 * Indicates the tolerance the application has to variations in the frame size.
18391889 * For example, wireless display scenarios may require very steady bit rate to
18401890 * reduce buffering time. It affects the rate control algorithm used,
18481898 * other -- invalid.
18491899 */
18501900 uint32_t frame_tolerance_mode : 2;
1901 /** Reserved for future use, must be zero. */
18511902 uint32_t reserved : 12;
18521903 } bits;
18531904 uint32_t value;
18541905 } rc_flags;
1855 uint32_t ICQ_quality_factor; /* Initial ICQ quality factor: 1-51. */
1856 /** \brief Reserved bytes for future use, must be zero */
1906 /** Initial quality factor used in ICQ mode.
1907 *
1908 * This value must be between 1 and 51.
1909 */
1910 uint32_t ICQ_quality_factor;
1911 /** Maximum quantiser value to use.
1912 *
1913 * The quantiser will not go above this value - if this limit is hit, the output bitrate
1914 * may exceed the target. Ignored if set to zero.
1915 */
18571916 uint32_t max_qp;
1917 /** Reserved bytes for future use, must be zero. */
18581918 uint32_t va_reserved[VA_PADDING_MEDIUM - 2];
18591919 } VAEncMiscParameterRateControl;
18601920
1921 /** Encode framerate parameters.
1922 *
1923 * Sets the encode framerate used by the rate controller. This should be
1924 * provided in all modes using a bitrate target (variable framerate is not
1925 * supported).
1926 */
18611927 typedef struct _VAEncMiscParameterFrameRate
18621928 {
1863 /*
1929 /** Encode framerate.
1930 *
18641931 * The framerate is specified as a number of frames per second, as a
18651932 * fraction. The denominator of the fraction is given in the top half
18661933 * (the high two bytes) of the framerate field, and the numerator is
18831950 {
18841951 struct
18851952 {
1886 /*
1887 * The temporal id the framerate parameters are specified for.
1888 */
1953 /** The temporal layer that these framerate parameters apply to. */
18891954 uint32_t temporal_id : 8;
1955 /** Reserved for future use, must be zero. */
18901956 uint32_t reserved : 24;
18911957 } bits;
18921958 uint32_t value;
19612027 uint32_t va_reserved[VA_PADDING_LOW];
19622028 } VAEncMiscParameterRIR;
19632029
2030 /** HRD / VBV buffering parameters for encoding.
2031 *
2032 * This sets the HRD / VBV parameters which will be used by the rate
2033 * controller for encoding. It should be specified in modes using a bitrate
2034 * target when the buffering of the output stream needs to be constrained.
2035 *
2036 * If not provided, the encoder may use arbitrary amounts of buffering.
2037 */
19642038 typedef struct _VAEncMiscParameterHRD
19652039 {
1966 uint32_t initial_buffer_fullness; /* in bits */
1967 uint32_t buffer_size; /* in bits */
2040 /** The initial fullness of the HRD coded picture buffer, in bits.
2041 *
2042 * This sets how full the CPB is when encoding begins - that is, how much
2043 * buffering will happen on the decoder side before the first frame.
2044 * The CPB fullness will be reset to this value after any rate control
2045 * reset (a change in parameters or an explicit reset).
2046 *
2047 * For H.264, it should match the value of initial_cpb_removal_delay in
2048 * buffering_period SEI messages.
2049 */
2050 uint32_t initial_buffer_fullness;
2051 /** The HRD coded picture buffer size, in bits.
2052 *
2053 * For H.264, it should match the value of cpb_size_value_minus1 in the VUI
2054 * parameters.
2055 */
2056 uint32_t buffer_size;
19682057
19692058 /** \brief Reserved bytes for future use, must be zero */
19702059 uint32_t va_reserved[VA_PADDING_LOW];
35463635 ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \
35473636 ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 ))
35483637
3549 /*
3550 * Pre-defined fourcc codes
3638 /* Pre-defined fourcc codes. */
3639
3640 /** NV12: two-plane 8-bit YUV 4:2:0.
3641 * The first plane contains Y, the second plane contains U and V in pairs of bytes.
35513642 */
35523643 #define VA_FOURCC_NV12 0x3231564E
3644 /** NV21: two-plane 8-bit YUV 4:2:0.
3645 * Same as NV12, but with U and V swapped.
3646 */
35533647 #define VA_FOURCC_NV21 0x3132564E
3648
3649 /** AI44: packed 4-bit YA.
3650 *
3651 * The bottom half of each byte contains luma, the top half contains alpha.
3652 */
35543653 #define VA_FOURCC_AI44 0x34344149
3654
3655 /** RGBA: packed 8-bit RGBA.
3656 *
3657 * Four bytes per pixel: red, green, blue, alpha.
3658 */
35553659 #define VA_FOURCC_RGBA 0x41424752
3660 /** RGBX: packed 8-bit RGB.
3661 *
3662 * Four bytes per pixel: red, green, blue, unspecified.
3663 */
35563664 #define VA_FOURCC_RGBX 0x58424752
3665 /** BGRA: packed 8-bit RGBA.
3666 *
3667 * Four bytes per pixel: blue, green, red, alpha.
3668 */
35573669 #define VA_FOURCC_BGRA 0x41524742
3670 /** BGRX: packed 8-bit RGB.
3671 *
3672 * Four bytes per pixel: blue, green, red, unspecified.
3673 */
35583674 #define VA_FOURCC_BGRX 0x58524742
3675 /** ARGB: packed 8-bit RGBA.
3676 *
3677 * Four bytes per pixel: alpha, red, green, blue.
3678 */
35593679 #define VA_FOURCC_ARGB 0x42475241
3680 /** XRGB: packed 8-bit RGB.
3681 *
3682 * Four bytes per pixel: unspecified, red, green, blue.
3683 */
35603684 #define VA_FOURCC_XRGB 0x42475258
3685 /** ABGR: packed 8-bit RGBA.
3686 *
3687 * Four bytes per pixel: alpha, blue, green, red.
3688 */
35613689 #define VA_FOURCC_ABGR 0x52474241
3690 /** XBGR: packed 8-bit RGB.
3691 *
3692 * Four bytes per pixel: unspecified, blue, green, red.
3693 */
35623694 #define VA_FOURCC_XBGR 0x52474258
3695
3696 /** UYUV: packed 8-bit YUV 4:2:2.
3697 *
3698 * Four bytes per pair of pixels: U, Y, U, V.
3699 */
35633700 #define VA_FOURCC_UYVY 0x59565955
3701 /** YUY2: packed 8-bit YUV 4:2:2.
3702 *
3703 * Four bytes per pair of pixels: Y, U, Y, V.
3704 */
35643705 #define VA_FOURCC_YUY2 0x32595559
3706 /** AYUV: packed 8-bit YUVA 4:4:4.
3707 *
3708 * Four bytes per pixel: A, Y, U, V.
3709 */
35653710 #define VA_FOURCC_AYUV 0x56555941
3711 /** NV11: two-plane 8-bit YUV 4:1:1.
3712 *
3713 * The first plane contains Y, the second plane contains U and V in pairs of bytes.
3714 */
35663715 #define VA_FOURCC_NV11 0x3131564e
3716 /** YV12: three-plane 8-bit YUV 4:2:0.
3717 *
3718 * The three planes contain Y, V and U respectively.
3719 */
35673720 #define VA_FOURCC_YV12 0x32315659
3721 /** P208: two-plane 8-bit YUV 4:2:2.
3722 *
3723 * The first plane contains Y, the second plane contains U and V in pairs of bytes.
3724 */
35683725 #define VA_FOURCC_P208 0x38303250
3569 /* IYUV same as I420, but most user perfer I420, will deprecate it */
3726 /** I420: three-plane 8-bit YUV 4:2:0.
3727 *
3728 * The three planes contain Y, U and V respectively.
3729 */
3730 #define VA_FOURCC_I420 0x30323449
3731 /** YV24: three-plane 8-bit YUV 4:4:4.
3732 *
3733 * The three planes contain Y, V and U respectively.
3734 */
3735 #define VA_FOURCC_YV24 0x34325659
3736 /** YV32: four-plane 8-bit YUVA 4:4:4
3737 *
3738 * The four planes contain Y, V, U and A respectively.
3739 */
3740 #define VA_FOURCC_YV32 0x32335659
3741 /** Y800: 8-bit greyscale.
3742 */
3743 #define VA_FOURCC_Y800 0x30303859
3744 /** IMC3: three-plane 8-bit YUV 4:2:0.
3745 *
3746 * Equivalent to YV12, but with the additional constraint that the pitch of all three planes
3747 * must be the same.
3748 */
3749 #define VA_FOURCC_IMC3 0x33434D49
3750 /** 411P: three-plane 8-bit YUV 4:1:1.
3751 *
3752 * The three planes contain Y, U and V respectively.
3753 */
3754 #define VA_FOURCC_411P 0x50313134
3755 /** 411R: three-plane 8-bit YUV.
3756 *
3757 * The subsampling is the transpose of 4:1:1 - full chroma appears on every fourth line.
3758 * The three planes contain Y, U and V respectively.
3759 */
3760 #define VA_FOURCC_411R 0x52313134
3761 /** 422H: three-plane 8-bit YUV 4:2:2.
3762 *
3763 * The three planes contain Y, U and V respectively.
3764 */
3765 #define VA_FOURCC_422H 0x48323234
3766 /** 422V: three-plane 8-bit YUV 4:4:0.
3767 *
3768 * The three planes contain Y, U and V respectively.
3769 */
3770 #define VA_FOURCC_422V 0x56323234
3771 /** 444P: three-plane 8-bit YUV 4:4:4.
3772 *
3773 * The three planes contain Y, U and V respectively.
3774 */
3775 #define VA_FOURCC_444P 0x50343434
3776
3777 /** RGBP: three-plane 8-bit RGB.
3778 *
3779 * The three planes contain red, green and blue respectively.
3780 */
3781 #define VA_FOURCC_RGBP 0x50424752
3782 /** BGRP: three-plane 8-bit RGB.
3783 *
3784 * The three planes contain blue, green and red respectively.
3785 */
3786 #define VA_FOURCC_BGRP 0x50524742
3787 /** RG16: packed 5/6-bit RGB.
3788 *
3789 * Each pixel is a two-byte little-endian value.
3790 * Red, green and blue are found in bits 15:11, 10:5, 4:0 respectively.
3791 */
3792 #define VA_FOURCC_RGB565 0x36314752
3793 /** BG16: packed 5/6-bit RGB.
3794 *
3795 * Each pixel is a two-byte little-endian value.
3796 * Blue, green and red are found in bits 15:11, 10:5, 4:0 respectively.
3797 */
3798 #define VA_FOURCC_BGR565 0x36314742
3799
3800 /** Y210: packed 10-bit YUV 4:2:2.
3801 *
3802 * Eight bytes represent a pair of pixels. Each sample is a two-byte little-endian value,
3803 * with the bottom six bits ignored. The samples are in the order Y, U, Y, V.
3804 */
3805 #define VA_FOURCC_Y210 0x30313259
3806 /** Y216: packed 16-bit YUV 4:2:2.
3807 *
3808 * Eight bytes represent a pair of pixels. Each sample is a two-byte little-endian value.
3809 * The samples are in the order Y, U, Y, V.
3810 */
3811 #define VA_FOURCC_Y216 0x36313259
3812 /** Y410: packed 10-bit YUVA 4:4:4.
3813 *
3814 * Each pixel is a four-byte little-endian value.
3815 * A, V, Y, U are found in bits 31:30, 29:20, 19:10, 9:0 respectively.
3816 */
3817 #define VA_FOURCC_Y410 0x30313459
3818 /** Y416: packed 16-bit YUVA 4:4:4.
3819 *
3820 * Each pixel is a set of four samples, each of which is a two-byte little-endian value.
3821 * The samples are in the order A, V, Y, U.
3822 */
3823 #define VA_FOURCC_Y416 0x36313459
3824
3825 /** YV16: three-plane 8-bit YUV 4:2:2.
3826 *
3827 * The three planes contain Y, V and U respectively.
3828 */
3829 #define VA_FOURCC_YV16 0x36315659
3830 /** P010: two-plane 10-bit YUV 4:2:0.
3831 *
3832 * Each sample is a two-byte little-endian value with the bottom six bits ignored.
3833 * The first plane contains Y, the second plane contains U and V in pairs of samples.
3834 */
3835 #define VA_FOURCC_P010 0x30313050
3836 /** P016: two-plane 16-bit YUV 4:2:0.
3837 *
3838 * Each sample is a two-byte little-endian value. The first plane contains Y, the second
3839 * plane contains U and V in pairs of samples.
3840 */
3841 #define VA_FOURCC_P016 0x36313050
3842
3843 /** I010: three-plane 10-bit YUV 4:2:0.
3844 *
3845 * Each sample is a two-byte little-endian value with the top six bits ignored.
3846 * The three planes contain Y, V and U respectively.
3847 */
3848 #define VA_FOURCC_I010 0x30313049
3849
3850 /** IYUV: three-plane 8-bit YUV 4:2:0.
3851 *
3852 * @deprecated Use I420 instead.
3853 */
35703854 #define VA_FOURCC_IYUV 0x56555949
3571 #define VA_FOURCC_I420 0x30323449
3572 #define VA_FOURCC_YV24 0x34325659
3573 #define VA_FOURCC_YV32 0x32335659
3574 #define VA_FOURCC_Y800 0x30303859
3575 #define VA_FOURCC_IMC3 0x33434D49
3576 #define VA_FOURCC_411P 0x50313134
3577 #define VA_FOURCC_422H 0x48323234
3578 #define VA_FOURCC_422V 0x56323234
3579 #define VA_FOURCC_444P 0x50343434
3580 #define VA_FOURCC_RGBP 0x50424752
3581 #define VA_FOURCC_BGRP 0x50524742
3582 #define VA_FOURCC_411R 0x52313134 /* rotated 411P */
3583 /**
3584 * Planar YUV 4:2:2.
3585 * 8-bit Y plane, followed by 8-bit 2x1 subsampled V and U planes
3586 */
3587 #define VA_FOURCC_YV16 0x36315659
3588 /**
3589 * 10-bit and 16-bit Planar YUV 4:2:0.
3590 */
3591 #define VA_FOURCC_P010 0x30313050
3592 #define VA_FOURCC_P016 0x36313050
3593
3594 /**
3595 * 10-bit Planar YUV 420 and occupy the lower 10-bit.
3596 */
3597 #define VA_FOURCC_I010 0x30313049
35983855
35993856 /* byte order */
36003857 #define VA_LSB_FIRST 1
194194 } VAPictureParameterBufferHEVC;
195195
196196 /**
197 * \brief HEVC Decoding Picture Parameter Buffer Structure for Range Extension
198 *
199 * This structure conveys picture level HEVC Range Extension parameters
200 * and should be sent once per frame. This data structure should be sent
201 * together with VAPictureParameterBufferHEVC in a single buffer of
202 * \ref VAPictureParameterBufferHEVCExtension since each frame
203 * of HEVC range extension contains both picture level parameters and picture
204 * level range extension parameters. They should be parsed together. The buffer
205 * type is same as \ref VAPictureParameterBufferHEVC.
206 *
207 */
208 typedef struct _VAPictureParameterBufferHEVCRext
209 {
210 union
211 {
212 struct
213 {
214 /** \brief HEVC range extension flags
215 * The following flags bears the same syntax and semantics as
216 * those defined in HEVC bit stream spec.
217 */
218 uint32_t transform_skip_rotation_enabled_flag : 1;
219 uint32_t transform_skip_context_enabled_flag : 1;
220 uint32_t implicit_rdpcm_enabled_flag : 1;
221 uint32_t explicit_rdpcm_enabled_flag : 1;
222 uint32_t extended_precision_processing_flag : 1;
223 uint32_t intra_smoothing_disabled_flag : 1;
224 uint32_t high_precision_offsets_enabled_flag : 1;
225 uint32_t persistent_rice_adaptation_enabled_flag : 1;
226 uint32_t cabac_bypass_alignment_enabled_flag : 1;
227 uint32_t cross_component_prediction_enabled_flag : 1;
228 uint32_t chroma_qp_offset_list_enabled_flag : 1;
229
230 /** \brief Reserved bytes for future use, must be zero */
231 uint32_t reserved : 21;
232 } bits;
233 uint32_t value;
234 } range_extension_pic_fields;
235
236 /** \brief HEVC range extension flags
237 * The following flags bears the same syntax and semantics as
238 * those defined in HEVC bit stream spec.
239 */
240 uint8_t diff_cu_chroma_qp_offset_depth;
241 uint8_t chroma_qp_offset_list_len_minus1;
242 uint8_t log2_sao_offset_scale_luma;
243 uint8_t log2_sao_offset_scale_chroma;
244 uint8_t log2_max_transform_skip_block_size_minus2;
245 int8_t cb_qp_offset_list[6];
246 int8_t cr_qp_offset_list[6];
247 } VAPictureParameterBufferHEVCRext;
248
249 /**
250 *\brief HEVC Decoding Picture Parameter Buffer Structure for
251 *Screen Content extension
252 *
253 *This structure conveys picture level HEVC Scc parameters
254 *and should be sent once per frame. This data structure should be sent
255 *together with VAPictureParameterBufferHEVC and VAPictureParameterBufferHEVCRext
256 *in a single buffer of \ref VAPictureParameterBufferHEVCExtension since each
257 *frame of HEVC SCC contains picture level parameters, picture level range
258 *extension parameters and picture level Scc parameters. They should be parsed
259 *together and the buffer type is same as \ref VAPictureParameterBufferHEVC.
260 *
261 */
262 typedef struct _VAPictureParameterBufferHEVCScc
263 {
264 union
265 {
266 struct
267 {
268 /** \brief HEVC Scc extension flags
269 * The following flags bears the same syntax and semantics as
270 * those defined in HEVC bit stream spec.
271 */
272 /* indicates if intra block copy (IBC) is enabled or not. */
273 uint32_t pps_curr_pic_ref_enabled_flag : 1;
274 /* indicates if Palette Mode is enabled or not. */
275 uint32_t palette_mode_enabled_flag : 1;
276 /* controls the presence and inference of the use_integer_mv_flag syntax
277 * in slice segment header that specifies the resolution of motion
278 * vectors for inter prediction.
279 */
280 uint32_t motion_vector_resolution_control_idc : 2;
281 /* specifies that the intra boundary filtering process is
282 * disabled or not for intra prediction.
283 */
284 uint32_t intra_boundary_filtering_disabled_flag : 1;
285 /* specifies that an adaptive colour transform may be applied
286 * to the residual in the decoding process.
287 */
288 uint32_t residual_adaptive_colour_transform_enabled_flag : 1;
289
290 /* specifies that slice_act_y_qp_offset, slice_act_cb_qp_offset,
291 * slice_act_cr_qp_offset are present in the slice header
292 */
293 uint32_t pps_slice_act_qp_offsets_present_flag : 1;
294
295 /** \brief Reserved bytes for future use, must be zero */
296 uint32_t reserved : 25;
297 } bits;
298 uint32_t value;
299 } screen_content_pic_fields;
300
301 /* specifies the maximum allowed palette size. */
302 uint8_t palette_max_size;
303 /* Correspond to HEVC syntax elements of the same names.
304 * It specifies the difference between the maximum allowed palette
305 * predictor size and the maximum allowed palette size.
306 * App needs to enforce that the variable PaletteMaxPredictorSize,
307 * which is derived as follows:
308 * PaletteMaxPredictorSize = palette_max_size + delta_palette_max_predictor_size
309 * should have a value range of [0..128].
310 */
311 uint8_t delta_palette_max_predictor_size;
312 /** \brief Size of initial palette predictor.
313 * It is derived from pps_num_palette_predictor_initializer or
314 * sps_num_palette_predictor_initializer_minus1.
315 * Details in HEVC SCC spec section 9.3.2.3.
316 */
317 uint8_t predictor_palette_size;
318 /** \brief Palette predictor initializer.
319 * It is derived from pps_palette_predictor_initializers[][]
320 * or sps_palette_predictor_initializers[][].
321 * Details in HEVC SCC spec section 9.3.2.3.
322 */
323 uint16_t predictor_palette_entries[3][128];
324 /* are used to determine the offsets that are applied to the
325 * quantization parameter values for the luma, Cb and Cr
326 * components, respectively.
327 */
328 int8_t pps_act_y_qp_offset_plus5;
329 int8_t pps_act_cb_qp_offset_plus5;
330 int8_t pps_act_cr_qp_offset_plus3;
331 } VAPictureParameterBufferHEVCScc;
332
333 /**
334 * \brief HEVC Decoding Picture Parameter Buffer Structure including Extensions
335 *
336 * This structure conveys picture level HEVC parameters including basic version 1
337 * and range extension and screen content extension.
338 * The data buffer should be sent once per frame.
339 *
340 */
341 typedef struct _VAPictureParameterBufferHEVCExtension
342 {
343 /** \brief basic HEVC picture parameters data structure
344 */
345 VAPictureParameterBufferHEVC base;
346
347 /** \brief HEVC range extension picture parameters data structure
348 */
349 VAPictureParameterBufferHEVCRext rext;
350
351 /** \brief HEVC screen content picture parameters data structure
352 */
353 VAPictureParameterBufferHEVCScc scc;
354 } VAPictureParameterBufferHEVCExtension;
355
356 /**
197357 * \brief HEVC Slice Parameter Buffer Structure For Long Format
198358 *
199359 * VASliceParameterBufferHEVC structure should be accompanied by a
326486 uint32_t va_reserved[VA_PADDING_LOW];
327487 } VASliceParameterBufferHEVC;
328488
329
489 /**
490 * \brief HEVC Extented Slice Parameter Buffer Structure For Long Format
491 *
492 * This data structure contains extension profiles (range extension and screen content).
493 *
494 * VASliceParameterBufferHEVCRext structure should be accompanied by a
495 * slice data buffer, which holds the whole raw slice NAL unit bit streams
496 * including start code prefix and emulation prevention bytes not removed.
497 *
498 * This structure conveys parameters related to slice segment header and should
499 * be sent once per slice with VASliceParameterBufferHEVC in a single buffer of
500 * \ref VASliceParameterBufferHEVCExtension and the buffer type is same as \ref
501 * VASliceParameterBufferHEVC.
502 *
503 * For short format, this data structure is not sent by application.
504 *
505 */
506 typedef struct _VASliceParameterBufferHEVCRext
507 {
508 /* below four parameters are used to replace data types of the
509 * corresponding parameters of those in \# VASliceParameterBufferHEVC.
510 */
511 int16_t luma_offset_l0[15];
512 int16_t ChromaOffsetL0[15][2];
513 int16_t luma_offset_l1[15];
514 int16_t ChromaOffsetL1[15][2];
515
516 union
517 {
518 struct
519 {
520 uint32_t cu_chroma_qp_offset_enabled_flag : 1;
521 uint32_t use_integer_mv_flag : 1;
522 /** \brief Reserved bytes for future use, must be zero */
523 uint32_t reserved : 30;
524 } bits;
525 uint32_t value;
526 } slice_ext_flags;
527
528 /** \brief Screen Content Extension parameters.
529 * data range [-12..12]
530 */
531 int8_t slice_act_y_qp_offset;
532 int8_t slice_act_cb_qp_offset;
533 int8_t slice_act_cr_qp_offset;
534 } VASliceParameterBufferHEVCRext;
535
536 /**
537 * \brief HEVC Decoding Slice Parameter Buffer Structure For Long Format including Extensions
538 *
539 * This data structure contains both baseline HEVC profiles (main, main10)
540 * and extension profiles (range extension and screen content).
541 *
542 * VASliceParameterBufferHEVCExtension structure should be accompanied by a
543 * slice data buffer, which holds the whole raw slice NAL unit bit streams
544 * including start code prefix and emulation prevention bytes not removed.
545 *
546 * This structure conveys parameters related to slice segment header and should
547 * be sent once per slice. For HEVC range extension and HEVC Scc decoding,
548 * application should parse both basic slice parameters and extented slice
549 * parameters into this buffer structure and sent it.
550 *
551 * For short format, this data structure is not sent by application.
552 *
553 */
554 typedef struct _VASliceParameterBufferHEVCExtension
555 {
556 /** \brief baseline HEVC slice parameters data structure */
557 VASliceParameterBufferHEVC base;
558
559 /** \brief extented HEVC slice parameters data structure */
560 VASliceParameterBufferHEVCRext rext;
561 } VASliceParameterBufferHEVCExtension;
330562
331563 /**
332564 * \brief HEVC Inverse Quantization Matrix Buffer Structure
9191 *
9292 * This can currently only be used for export.
9393 *
94 * For export, call vaAcquireSurfaceHandle() with mem_type set to
94 * For export, call vaExportSurfaceHandle() with mem_type set to
9595 * VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2 and pass a pointer to an
9696 * instance of this structure to fill.
9797 * If VA_EXPORT_SURFACE_SEPARATE_LAYERS is specified on export, each
164164 uint32_t search_window : 8;
165165 /** \brief number of internal MV predictors for IME searches */
166166 uint32_t max_num_ime_search_center : 3;
167 uint32_t reserved2 : 5;
167 /** \brief fast intra prediction enabling bit. It is used as a trade-off between speed and quality.
168 * The flag will be ignored if it's unsupported in the driver*/
169 uint32_t fast_intra_mode : 1;
170 uint32_t reserved2 : 4;
168171
169172 /** \brief specifies number of splits that encoder could be run concurrently
170173 * 1: level 1, default value
5151 TOSTR(VAProfileVP9Profile1);
5252 TOSTR(VAProfileVP9Profile2);
5353 TOSTR(VAProfileVP9Profile3);
54 TOSTR(VAProfileHEVCMain12);
55 TOSTR(VAProfileHEVCMain422_10);
56 TOSTR(VAProfileHEVCMain422_12);
57 TOSTR(VAProfileHEVCMain444);
58 TOSTR(VAProfileHEVCMain444_10);
59 TOSTR(VAProfileHEVCMain444_12);
60 TOSTR(VAProfileHEVCSccMain);
61 TOSTR(VAProfileHEVCSccMain10);
62 TOSTR(VAProfileHEVCSccMain444);
5463 default: break;
5564 }
5665 return "<unknown profile>";
31783178 VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data;
31793179 va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterFrameRate\n");
31803180 va_TraceMsg(trace_ctx, "\tframerate = %d\n", p->framerate);
3181
3181 va_TraceMsg(trace_ctx, "\tframerate_flags.temporal_id = %d\n", p->framerate_flags.bits.temporal_id);
31823182 break;
31833183 }
31843184 case VAEncMiscParameterTypeRateControl:
31973197 va_TraceMsg(trace_ctx, "\trc_flags.disable_bit_stuffing = %d\n", p->rc_flags.bits.disable_bit_stuffing);
31983198 va_TraceMsg(trace_ctx, "\trc_flags.mb_rate_control = %d\n", p->rc_flags.bits.mb_rate_control);
31993199 va_TraceMsg(trace_ctx, "\trc_flags.temporal_id = %d\n", p->rc_flags.bits.temporal_id);
3200 va_TraceMsg(trace_ctx, "\trc_flags.cfs_I_frames = %d\n", p->rc_flags.bits.cfs_I_frames);
3201 va_TraceMsg(trace_ctx, "\trc_flags.enable_parallel_brc = %d\n", p->rc_flags.bits.enable_parallel_brc);
3202 va_TraceMsg(trace_ctx, "\trc_flags.enable_dynamic_scaling = %d\n", p->rc_flags.bits.enable_dynamic_scaling);
3203 va_TraceMsg(trace_ctx, "\trc_flags.frame_tolerance_mode = %d\n", p->rc_flags.bits.frame_tolerance_mode);
3204 va_TraceMsg(trace_ctx, "\tICQ_quality_factor = %d\n", p->ICQ_quality_factor);
3205 va_TraceMsg(trace_ctx, "\tmax_qp = %d\n", p->max_qp);
32003206 break;
32013207 }
32023208 case VAEncMiscParameterTypeMaxSliceSize:
3636 *
3737 * The minor version of VA-API (2, if %VA_VERSION is 1.2.3)
3838 */
39 #define VA_MINOR_VERSION 1
39 #define VA_MINOR_VERSION 2
4040
4141 /**
4242 * VA_MICRO_VERSION:
5050 *
5151 * The full version of VA-API, like 1.2.3
5252 */
53 #define VA_VERSION 1.1.0
53 #define VA_VERSION 1.2.0
5454
5555 /**
5656 * VA_VERSION_S:
5858 * The full version of VA-API, in string form (suited for string
5959 * concatenation)
6060 */
61 #define VA_VERSION_S "1.1.0"
61 #define VA_VERSION_S "1.2.0"
6262
6363 /**
6464 * VA_VERSION_HEX:
8989 if (dri_drawable == dri_state->drawable_hash[i]) {
9090 dri_state->destroyDrawable(ctx, dri_drawable);
9191 dri_state->drawable_hash[i] = NULL;
92 return;
9293 }
9394 i++;
9495 }