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
0 | libva NEWS -- summary of user visible changes. 2018-02-12 | |
0 | libva NEWS -- summary of user visible changes. 2018-07-11 | |
1 | 1 | 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 | |
2 | 12 | |
3 | 13 | Version 2.1.0 - 12.Feb.2018 |
4 | 14 | * Bump VA-API version to 1.1.0 and libva to 2.1.0 |
0 | 0 | #! /bin/sh |
1 | 1 | # 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. | |
3 | 3 | # |
4 | # Report bugs to <https://github.com/01org/libva/issues/new>. | |
4 | # Report bugs to <https://github.com/intel/libva/issues/new>. | |
5 | 5 | # |
6 | 6 | # |
7 | 7 | # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. |
274 | 274 | $as_echo "$0: be upgraded to zsh 4.3.4 or later." |
275 | 275 | else |
276 | 276 | $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 | |
278 | 278 | $0: system, including any error possibly output before this |
279 | 279 | $0: message. Then install a modern shell, or manually run |
280 | 280 | $0: the script under such a shell if you do have one." |
589 | 589 | # Identity of this package. |
590 | 590 | PACKAGE_NAME='libva' |
591 | 591 | 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' | |
596 | 596 | |
597 | 597 | ac_unique_file="Makefile.am" |
598 | 598 | # Factoring default headers for most tests. |
1391 | 1391 | # Omit some internal or obsolete options to make the list less imposing. |
1392 | 1392 | # This message is too long to be a string in the A/UX 3.1 sh. |
1393 | 1393 | 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. | |
1395 | 1395 | |
1396 | 1396 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1397 | 1397 | |
1462 | 1462 | |
1463 | 1463 | if test -n "$ac_init_help"; then |
1464 | 1464 | 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:";; | |
1466 | 1466 | esac |
1467 | 1467 | cat <<\_ACEOF |
1468 | 1468 | |
1536 | 1536 | Use these variables to override the choices made by `configure' or to help |
1537 | 1537 | it to find libraries and programs with nonstandard names/locations. |
1538 | 1538 | |
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>. | |
1541 | 1541 | _ACEOF |
1542 | 1542 | ac_status=$? |
1543 | 1543 | fi |
1600 | 1600 | test -n "$ac_init_help" && exit $ac_status |
1601 | 1601 | if $ac_init_version; then |
1602 | 1602 | cat <<\_ACEOF |
1603 | libva configure 2.1.0 | |
1603 | libva configure 2.2.0 | |
1604 | 1604 | generated by GNU Autoconf 2.69 |
1605 | 1605 | |
1606 | 1606 | Copyright (C) 2012 Free Software Foundation, Inc. |
2067 | 2067 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 |
2068 | 2068 | $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} |
2069 | 2069 | ( $as_echo "## -------------------------------------------------------- ## |
2070 | ## Report this to https://github.com/01org/libva/issues/new ## | |
2070 | ## Report this to https://github.com/intel/libva/issues/new ## | |
2071 | 2071 | ## -------------------------------------------------------- ##" |
2072 | 2072 | ) | sed "s/^/$as_me: WARNING: /" >&2 |
2073 | 2073 | ;; |
2090 | 2090 | This file contains any messages produced by compilers while |
2091 | 2091 | running configure, to aid debugging if configure makes a mistake. |
2092 | 2092 | |
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 | |
2094 | 2094 | generated by GNU Autoconf 2.69. Invocation command line was |
2095 | 2095 | |
2096 | 2096 | $ $0 $@ |
2956 | 2956 | |
2957 | 2957 | # Define the identity of the package. |
2958 | 2958 | PACKAGE='libva' |
2959 | VERSION='2.1.0' | |
2959 | VERSION='2.2.0' | |
2960 | 2960 | |
2961 | 2961 | |
2962 | 2962 | cat >>confdefs.h <<_ACEOF |
3096 | 3096 | |
3097 | 3097 | |
3098 | 3098 | VA_API_MAJOR_VERSION=1 |
3099 | VA_API_MINOR_VERSION=1 | |
3099 | VA_API_MINOR_VERSION=2 | |
3100 | 3100 | VA_API_MICRO_VERSION=0 |
3101 | VA_API_VERSION=1.1.0 | |
3101 | VA_API_VERSION=1.2.0 | |
3102 | 3102 | |
3103 | 3103 | |
3104 | 3104 | |
3105 | 3105 | |
3106 | 3106 | |
3107 | 3107 | LIBVA_MAJOR_VERSION=2 |
3108 | LIBVA_MINOR_VERSION=1 | |
3108 | LIBVA_MINOR_VERSION=2 | |
3109 | 3109 | 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 | |
3117 | 3117 | LIBVA_LT_REV=0 |
3118 | LIBVA_LT_AGE=100 | |
3118 | LIBVA_LT_AGE=200 | |
3119 | 3119 | LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE" |
3120 | 3120 | LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION" |
3121 | 3121 | |
18471 | 18471 | # report actual input values of CONFIG_FILES etc. instead of their |
18472 | 18472 | # values after options handling. |
18473 | 18473 | 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 | |
18475 | 18475 | generated by GNU Autoconf 2.69. Invocation command line was |
18476 | 18476 | |
18477 | 18477 | CONFIG_FILES = $CONFIG_FILES |
18531 | 18531 | Configuration commands: |
18532 | 18532 | $config_commands |
18533 | 18533 | |
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>." | |
18536 | 18536 | |
18537 | 18537 | _ACEOF |
18538 | 18538 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
18539 | 18539 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
18540 | 18540 | ac_cs_version="\\ |
18541 | libva config.status 2.1.0 | |
18541 | libva config.status 2.2.0 | |
18542 | 18542 | configured by $0, generated by GNU Autoconf 2.69, |
18543 | 18543 | with options \\"\$ac_cs_config\\" |
18544 | 18544 |
26 | 26 | # - reset micro version to zero when minor version is incremented |
27 | 27 | # - reset minor version to zero when major version is incremented |
28 | 28 | m4_define([va_api_major_version], [1]) |
29 | m4_define([va_api_minor_version], [1]) | |
29 | m4_define([va_api_minor_version], [2]) | |
30 | 30 | m4_define([va_api_micro_version], [0]) |
31 | 31 | |
32 | 32 | m4_define([va_api_version], |
83 | 83 | AC_PREREQ(2.57) |
84 | 84 | AC_INIT([libva], |
85 | 85 | [libva_version], |
86 | [https://github.com/01org/libva/issues/new], | |
86 | [https://github.com/intel/libva/issues/new], | |
87 | 87 | [libva], |
88 | [https://github.com/01org/libva]) | |
88 | [https://github.com/intel/libva]) | |
89 | 89 | |
90 | 90 | AC_CONFIG_SRCDIR([Makefile.am]) |
91 | 91 | AC_CONFIG_MACRO_DIR([m4]) |
74 | 74 | -Wl,-version-script,${srcdir}/libva.syms \ |
75 | 75 | $(NULL) |
76 | 76 | |
77 | libva_cflags = \ | |
78 | -Wall \ | |
79 | -fstack-protector \ | |
80 | $(NULL) | |
81 | ||
77 | 82 | lib_LTLIBRARIES = libva.la |
78 | 83 | libvaincludedir = ${includedir}/va |
79 | 84 | libvainclude_HEADERS = $(libva_source_h) |
80 | 85 | noinst_HEADERS = $(libva_source_h_priv) |
81 | 86 | libva_la_SOURCES = $(libva_source_c) |
87 | libva_la_CFLAGS = $(libva_cflags) | |
82 | 88 | libva_la_LDFLAGS = $(libva_ldflags) |
83 | 89 | libva_la_DEPENDENCIES = libva.syms |
84 | 90 | libva_la_LIBADD = $(LIBVA_LIBS) -ldl |
87 | 93 | SUBDIRS += drm |
88 | 94 | lib_LTLIBRARIES += libva-drm.la |
89 | 95 | libva_drm_la_SOURCES = |
96 | libva_drm_la_CFLAGS = $(libva_cflags) | |
90 | 97 | libva_drm_la_LDFLAGS = $(LDADD) |
91 | 98 | libva_drm_la_DEPENDENCIES = libva.la drm/libva_drm.la |
92 | 99 | libva_drm_la_LIBADD = libva.la drm/libva_drm.la \ |
98 | 105 | lib_LTLIBRARIES += libva-x11.la |
99 | 106 | libva_source_h += va_x11.h |
100 | 107 | libva_x11_la_SOURCES = |
108 | libva_x11_la_CFLAGS = $(libva_cflags) | |
101 | 109 | libva_x11_la_LDFLAGS = $(LDADD) |
102 | 110 | libva_x11_la_DEPENDENCIES = libva.la x11/libva_x11.la |
103 | 111 | libva_x11_la_LIBADD = libva.la x11/libva_x11.la \ |
108 | 116 | SUBDIRS += glx |
109 | 117 | lib_LTLIBRARIES += libva-glx.la |
110 | 118 | libva_glx_la_SOURCES = |
119 | libva_glx_la_CFLAGS = $(libva_cflags) | |
111 | 120 | libva_glx_la_LDFLAGS = $(LDADD) |
112 | 121 | libva_glx_la_DEPENDENCIES = libva.la glx/libva_glx.la libva-x11.la |
113 | 122 | libva_glx_la_LIBADD = libva.la glx/libva_glx.la libva-x11.la \ |
118 | 127 | SUBDIRS += wayland |
119 | 128 | lib_LTLIBRARIES += libva-wayland.la |
120 | 129 | libva_wayland_la_SOURCES = |
130 | libva_wayland_la_CFLAGS = $(libva_cflags) | |
121 | 131 | libva_wayland_la_LDFLAGS = $(LDADD) |
122 | 132 | libva_wayland_la_DEPENDENCIES = libva.la wayland/libva_wayland.la |
123 | 133 | libva_wayland_la_LIBADD = libva.la wayland/libva_wayland.la \ |
170 | 170 | am__v_lt_0 = --silent |
171 | 171 | am__v_lt_1 = |
172 | 172 | 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 $@ | |
175 | 175 | @USE_DRM_TRUE@am_libva_drm_la_rpath = -rpath $(libdir) |
176 | 176 | am_libva_glx_la_OBJECTS = |
177 | 177 | libva_glx_la_OBJECTS = $(am_libva_glx_la_OBJECTS) |
178 | 178 | 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 $@ | |
181 | 181 | @USE_GLX_TRUE@am_libva_glx_la_rpath = -rpath $(libdir) |
182 | 182 | am_libva_wayland_la_OBJECTS = |
183 | 183 | libva_wayland_la_OBJECTS = $(am_libva_wayland_la_OBJECTS) |
184 | 184 | libva_wayland_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ |
185 | 185 | $(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 $@ | |
188 | 188 | @USE_WAYLAND_TRUE@am_libva_wayland_la_rpath = -rpath $(libdir) |
189 | 189 | am_libva_x11_la_OBJECTS = |
190 | 190 | libva_x11_la_OBJECTS = $(am_libva_x11_la_OBJECTS) |
191 | 191 | 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 $@ | |
194 | 194 | @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 | |
196 | 197 | am_libva_la_OBJECTS = $(am__objects_1) |
197 | 198 | libva_la_OBJECTS = $(am_libva_la_OBJECTS) |
198 | 199 | 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 $@ | |
201 | 202 | AM_V_P = $(am__v_P_@AM_V@) |
202 | 203 | am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) |
203 | 204 | am__v_P_0 = false |
497 | 498 | -Wl,-version-script,${srcdir}/libva.syms \ |
498 | 499 | $(NULL) |
499 | 500 | |
501 | libva_cflags = \ | |
502 | -Wall \ | |
503 | -fstack-protector \ | |
504 | $(NULL) | |
505 | ||
500 | 506 | lib_LTLIBRARIES = libva.la $(am__append_2) $(am__append_4) \ |
501 | 507 | $(am__append_7) $(am__append_9) |
502 | 508 | libvaincludedir = ${includedir}/va |
503 | 509 | libvainclude_HEADERS = $(libva_source_h) |
504 | 510 | noinst_HEADERS = $(libva_source_h_priv) |
505 | 511 | libva_la_SOURCES = $(libva_source_c) |
512 | libva_la_CFLAGS = $(libva_cflags) | |
506 | 513 | libva_la_LDFLAGS = $(libva_ldflags) |
507 | 514 | libva_la_DEPENDENCIES = libva.syms |
508 | 515 | libva_la_LIBADD = $(LIBVA_LIBS) -ldl |
509 | 516 | @USE_DRM_TRUE@libva_drm_la_SOURCES = |
517 | @USE_DRM_TRUE@libva_drm_la_CFLAGS = $(libva_cflags) | |
510 | 518 | @USE_DRM_TRUE@libva_drm_la_LDFLAGS = $(LDADD) |
511 | 519 | @USE_DRM_TRUE@libva_drm_la_DEPENDENCIES = libva.la drm/libva_drm.la |
512 | 520 | @USE_DRM_TRUE@libva_drm_la_LIBADD = libva.la drm/libva_drm.la \ |
513 | 521 | @USE_DRM_TRUE@ $(LIBVA_LIBS) $(DRM_LIBS) -ldl |
514 | 522 | |
515 | 523 | @USE_X11_TRUE@libva_x11_la_SOURCES = |
524 | @USE_X11_TRUE@libva_x11_la_CFLAGS = $(libva_cflags) | |
516 | 525 | @USE_X11_TRUE@libva_x11_la_LDFLAGS = $(LDADD) |
517 | 526 | @USE_X11_TRUE@libva_x11_la_DEPENDENCIES = libva.la x11/libva_x11.la |
518 | 527 | @USE_X11_TRUE@libva_x11_la_LIBADD = libva.la x11/libva_x11.la \ |
519 | 528 | @USE_X11_TRUE@ $(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) $(DRM_LIBS) -ldl |
520 | 529 | |
521 | 530 | @USE_GLX_TRUE@libva_glx_la_SOURCES = |
531 | @USE_GLX_TRUE@libva_glx_la_CFLAGS = $(libva_cflags) | |
522 | 532 | @USE_GLX_TRUE@libva_glx_la_LDFLAGS = $(LDADD) |
523 | 533 | @USE_GLX_TRUE@libva_glx_la_DEPENDENCIES = libva.la glx/libva_glx.la libva-x11.la |
524 | 534 | @USE_GLX_TRUE@libva_glx_la_LIBADD = libva.la glx/libva_glx.la libva-x11.la \ |
525 | 535 | @USE_GLX_TRUE@ $(GLX_LIBS) -ldl |
526 | 536 | |
527 | 537 | @USE_WAYLAND_TRUE@libva_wayland_la_SOURCES = |
538 | @USE_WAYLAND_TRUE@libva_wayland_la_CFLAGS = $(libva_cflags) | |
528 | 539 | @USE_WAYLAND_TRUE@libva_wayland_la_LDFLAGS = $(LDADD) |
529 | 540 | @USE_WAYLAND_TRUE@libva_wayland_la_DEPENDENCIES = libva.la wayland/libva_wayland.la |
530 | 541 | @USE_WAYLAND_TRUE@libva_wayland_la_LIBADD = libva.la wayland/libva_wayland.la \ |
632 | 643 | distclean-compile: |
633 | 644 | -rm -f *.tab.c |
634 | 645 | |
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@ | |
640 | 651 | |
641 | 652 | .c.o: |
642 | 653 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< |
658 | 669 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ |
659 | 670 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
660 | 671 | @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 | |
661 | 707 | |
662 | 708 | mostlyclean-libtool: |
663 | 709 | -rm -f *.lo |
401 | 401 | int minor; |
402 | 402 | } compatible_versions[] = { |
403 | 403 | { VA_MAJOR_VERSION, VA_MINOR_VERSION }, |
404 | { VA_MAJOR_VERSION, 1 }, | |
404 | 405 | { VA_MAJOR_VERSION, 0 }, |
405 | 406 | { -1, } |
406 | 407 | }; |
593 | 594 | return "HW busy now"; |
594 | 595 | case VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE: |
595 | 596 | 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"; | |
596 | 599 | case VA_STATUS_ERROR_UNKNOWN: |
597 | 600 | return "unknown libva error"; |
598 | 601 | } |
85 | 85 | extern "C" { |
86 | 86 | #endif |
87 | 87 | |
88 | #ifdef __GNUC__ | |
88 | #if defined(__GNUC__) && !defined(__COVERITY__) | |
89 | 89 | #define va_deprecated __attribute__((deprecated)) |
90 | 90 | #if __GNUC__ >= 6 |
91 | 91 | #define va_deprecated_enum va_deprecated |
209 | 209 | #define VA_STATUS_ERROR_HW_BUSY 0x00000022 |
210 | 210 | /** \brief An unsupported memory type was supplied. */ |
211 | 211 | #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 | |
212 | 214 | #define VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF |
213 | 215 | |
214 | 216 | /** De-interlacing flags for vaPutSurface() */ |
372 | 374 | VAProfileVP9Profile0 = 19, |
373 | 375 | VAProfileVP9Profile1 = 20, |
374 | 376 | 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 | |
376 | 387 | } VAProfile; |
377 | 388 | |
378 | 389 | /** |
751 | 762 | uint32_t value; /* OR'd flags (bits) for this attribute */ |
752 | 763 | } VAConfigAttrib; |
753 | 764 | |
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 | ||
773 | 784 | #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. | |
774 | 788 | |
775 | 789 | /** @name Attribute values for VAConfigAttribRateControl */ |
776 | 790 | /**@{*/ |
1318 | 1332 | #define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE 0x00000008 |
1319 | 1333 | /** \brief Surface used for display. */ |
1320 | 1334 | #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 | |
1321 | 1338 | |
1322 | 1339 | /**@}*/ |
1323 | 1340 | |
1804 | 1821 | /** \brief Rate control parameters */ |
1805 | 1822 | typedef struct _VAEncMiscParameterRateControl |
1806 | 1823 | { |
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. */ | |
1808 | 1825 | 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%). | |
1812 | 1830 | */ |
1813 | 1831 | 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. | |
1816 | 1836 | */ |
1817 | 1837 | 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 | */ | |
1819 | 1842 | 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 | */ | |
1820 | 1848 | 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 | */ | |
1821 | 1853 | uint32_t basic_unit_size; |
1822 | 1854 | union |
1823 | 1855 | { |
1824 | 1856 | struct |
1825 | 1857 | { |
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 | */ | |
1826 | 1863 | 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. | |
1832 | 1874 | */ |
1875 | uint32_t mb_rate_control : 4; | |
1876 | /** The temporal layer that these rate control parameters apply to. */ | |
1833 | 1877 | 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 | */ | |
1835 | 1884 | uint32_t enable_parallel_brc : 1; |
1836 | 1885 | uint32_t enable_dynamic_scaling : 1; |
1837 | /** \brief Frame Tolerance Mode | |
1886 | /** Frame tolerance mode. | |
1887 | * | |
1838 | 1888 | * Indicates the tolerance the application has to variations in the frame size. |
1839 | 1889 | * For example, wireless display scenarios may require very steady bit rate to |
1840 | 1890 | * reduce buffering time. It affects the rate control algorithm used, |
1848 | 1898 | * other -- invalid. |
1849 | 1899 | */ |
1850 | 1900 | uint32_t frame_tolerance_mode : 2; |
1901 | /** Reserved for future use, must be zero. */ | |
1851 | 1902 | uint32_t reserved : 12; |
1852 | 1903 | } bits; |
1853 | 1904 | uint32_t value; |
1854 | 1905 | } 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 | */ | |
1857 | 1916 | uint32_t max_qp; |
1917 | /** Reserved bytes for future use, must be zero. */ | |
1858 | 1918 | uint32_t va_reserved[VA_PADDING_MEDIUM - 2]; |
1859 | 1919 | } VAEncMiscParameterRateControl; |
1860 | 1920 | |
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 | */ | |
1861 | 1927 | typedef struct _VAEncMiscParameterFrameRate |
1862 | 1928 | { |
1863 | /* | |
1929 | /** Encode framerate. | |
1930 | * | |
1864 | 1931 | * The framerate is specified as a number of frames per second, as a |
1865 | 1932 | * fraction. The denominator of the fraction is given in the top half |
1866 | 1933 | * (the high two bytes) of the framerate field, and the numerator is |
1883 | 1950 | { |
1884 | 1951 | struct |
1885 | 1952 | { |
1886 | /* | |
1887 | * The temporal id the framerate parameters are specified for. | |
1888 | */ | |
1953 | /** The temporal layer that these framerate parameters apply to. */ | |
1889 | 1954 | uint32_t temporal_id : 8; |
1955 | /** Reserved for future use, must be zero. */ | |
1890 | 1956 | uint32_t reserved : 24; |
1891 | 1957 | } bits; |
1892 | 1958 | uint32_t value; |
1961 | 2027 | uint32_t va_reserved[VA_PADDING_LOW]; |
1962 | 2028 | } VAEncMiscParameterRIR; |
1963 | 2029 | |
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 | */ | |
1964 | 2038 | typedef struct _VAEncMiscParameterHRD |
1965 | 2039 | { |
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; | |
1968 | 2057 | |
1969 | 2058 | /** \brief Reserved bytes for future use, must be zero */ |
1970 | 2059 | uint32_t va_reserved[VA_PADDING_LOW]; |
3546 | 3635 | ((unsigned long)(unsigned char) (ch0) | ((unsigned long)(unsigned char) (ch1) << 8) | \ |
3547 | 3636 | ((unsigned long)(unsigned char) (ch2) << 16) | ((unsigned long)(unsigned char) (ch3) << 24 )) |
3548 | 3637 | |
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. | |
3551 | 3642 | */ |
3552 | 3643 | #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 | */ | |
3553 | 3647 | #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 | */ | |
3554 | 3653 | #define VA_FOURCC_AI44 0x34344149 |
3654 | ||
3655 | /** RGBA: packed 8-bit RGBA. | |
3656 | * | |
3657 | * Four bytes per pixel: red, green, blue, alpha. | |
3658 | */ | |
3555 | 3659 | #define VA_FOURCC_RGBA 0x41424752 |
3660 | /** RGBX: packed 8-bit RGB. | |
3661 | * | |
3662 | * Four bytes per pixel: red, green, blue, unspecified. | |
3663 | */ | |
3556 | 3664 | #define VA_FOURCC_RGBX 0x58424752 |
3665 | /** BGRA: packed 8-bit RGBA. | |
3666 | * | |
3667 | * Four bytes per pixel: blue, green, red, alpha. | |
3668 | */ | |
3557 | 3669 | #define VA_FOURCC_BGRA 0x41524742 |
3670 | /** BGRX: packed 8-bit RGB. | |
3671 | * | |
3672 | * Four bytes per pixel: blue, green, red, unspecified. | |
3673 | */ | |
3558 | 3674 | #define VA_FOURCC_BGRX 0x58524742 |
3675 | /** ARGB: packed 8-bit RGBA. | |
3676 | * | |
3677 | * Four bytes per pixel: alpha, red, green, blue. | |
3678 | */ | |
3559 | 3679 | #define VA_FOURCC_ARGB 0x42475241 |
3680 | /** XRGB: packed 8-bit RGB. | |
3681 | * | |
3682 | * Four bytes per pixel: unspecified, red, green, blue. | |
3683 | */ | |
3560 | 3684 | #define VA_FOURCC_XRGB 0x42475258 |
3685 | /** ABGR: packed 8-bit RGBA. | |
3686 | * | |
3687 | * Four bytes per pixel: alpha, blue, green, red. | |
3688 | */ | |
3561 | 3689 | #define VA_FOURCC_ABGR 0x52474241 |
3690 | /** XBGR: packed 8-bit RGB. | |
3691 | * | |
3692 | * Four bytes per pixel: unspecified, blue, green, red. | |
3693 | */ | |
3562 | 3694 | #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 | */ | |
3563 | 3700 | #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 | */ | |
3564 | 3705 | #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 | */ | |
3565 | 3710 | #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 | */ | |
3566 | 3715 | #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 | */ | |
3567 | 3720 | #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 | */ | |
3568 | 3725 | #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 | */ | |
3570 | 3854 | #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 | |
3598 | 3855 | |
3599 | 3856 | /* byte order */ |
3600 | 3857 | #define VA_LSB_FIRST 1 |
194 | 194 | } VAPictureParameterBufferHEVC; |
195 | 195 | |
196 | 196 | /** |
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 | /** | |
197 | 357 | * \brief HEVC Slice Parameter Buffer Structure For Long Format |
198 | 358 | * |
199 | 359 | * VASliceParameterBufferHEVC structure should be accompanied by a |
326 | 486 | uint32_t va_reserved[VA_PADDING_LOW]; |
327 | 487 | } VASliceParameterBufferHEVC; |
328 | 488 | |
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; | |
330 | 562 | |
331 | 563 | /** |
332 | 564 | * \brief HEVC Inverse Quantization Matrix Buffer Structure |
91 | 91 | * |
92 | 92 | * This can currently only be used for export. |
93 | 93 | * |
94 | * For export, call vaAcquireSurfaceHandle() with mem_type set to | |
94 | * For export, call vaExportSurfaceHandle() with mem_type set to | |
95 | 95 | * VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2 and pass a pointer to an |
96 | 96 | * instance of this structure to fill. |
97 | 97 | * If VA_EXPORT_SURFACE_SEPARATE_LAYERS is specified on export, each |
164 | 164 | uint32_t search_window : 8; |
165 | 165 | /** \brief number of internal MV predictors for IME searches */ |
166 | 166 | 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; | |
168 | 171 | |
169 | 172 | /** \brief specifies number of splits that encoder could be run concurrently |
170 | 173 | * 1: level 1, default value |
51 | 51 | TOSTR(VAProfileVP9Profile1); |
52 | 52 | TOSTR(VAProfileVP9Profile2); |
53 | 53 | 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); | |
54 | 63 | default: break; |
55 | 64 | } |
56 | 65 | return "<unknown profile>"; |
3178 | 3178 | VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data; |
3179 | 3179 | va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterFrameRate\n"); |
3180 | 3180 | 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); | |
3182 | 3182 | break; |
3183 | 3183 | } |
3184 | 3184 | case VAEncMiscParameterTypeRateControl: |
3197 | 3197 | va_TraceMsg(trace_ctx, "\trc_flags.disable_bit_stuffing = %d\n", p->rc_flags.bits.disable_bit_stuffing); |
3198 | 3198 | va_TraceMsg(trace_ctx, "\trc_flags.mb_rate_control = %d\n", p->rc_flags.bits.mb_rate_control); |
3199 | 3199 | 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); | |
3200 | 3206 | break; |
3201 | 3207 | } |
3202 | 3208 | case VAEncMiscParameterTypeMaxSliceSize: |
36 | 36 | * |
37 | 37 | * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) |
38 | 38 | */ |
39 | #define VA_MINOR_VERSION 1 | |
39 | #define VA_MINOR_VERSION 2 | |
40 | 40 | |
41 | 41 | /** |
42 | 42 | * VA_MICRO_VERSION: |
50 | 50 | * |
51 | 51 | * The full version of VA-API, like 1.2.3 |
52 | 52 | */ |
53 | #define VA_VERSION 1.1.0 | |
53 | #define VA_VERSION 1.2.0 | |
54 | 54 | |
55 | 55 | /** |
56 | 56 | * VA_VERSION_S: |
58 | 58 | * The full version of VA-API, in string form (suited for string |
59 | 59 | * concatenation) |
60 | 60 | */ |
61 | #define VA_VERSION_S "1.1.0" | |
61 | #define VA_VERSION_S "1.2.0" | |
62 | 62 | |
63 | 63 | /** |
64 | 64 | * VA_VERSION_HEX: |