Opened 13 years ago
Closed 13 years ago
Last modified 13 years ago
#11631 closed Bug Report - General (fixed)
libva API changes for 1.2.0
| Reported by: | Owned by: | ||
|---|---|---|---|
| Priority: | minor | Milestone: | 0.27 |
| Component: | MythTV - Video/OSD Rendering | Version: | 0.26-fixes |
| Severity: | medium | Keywords: | |
| Cc: | Ticket locked: | no |
Description
There are some API changes to libva 1.2.0 http://cgit.freedesktop.org/libva/tree/NEWS
Version 1.2.0 - 25.Jun.2013
* API: new H.264 encoding API for Main and High profiles
* API: add support for MPEG-2 encoding
* API: add video processing interfaces
* API: add vaQuerySurfaceAttributes() to query surface attributes supported by the underlying drivers.
* API: new version of vaCreateSurfaces()
* API: add new surface attributes to enable VA surface creation from external buffer
* API: add new RT formats and fourcc codes
* Refine VA trace utility
* Refine H.264 encoding test cases {avcenc, h264enc}
* A new test case for MPEG-2 encoding
* A lot of bug fixes
The change to vaCreateSurfaces() prevents compilation of 0.26-fixes with libva-1.2.1:
g++ -c -m64 -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -DNDEBUG -fomit-frame-pointer -fPIC -pthread -g -Wall -Wpointer-arith -Wno-non-virtual-dtor -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -O3 -fvisibility-inlines-hidden -Wmissing-declarations -Wno-switch -Wredundant-decls -funit-at-a-time -I/usr/include/freetype2 -fvisibility=hidden -D_REENTRANT -fPIC -DMMX -D_GNU_SOURCE -DUSING_LIBCRYPTO -DUSING_LIBASS -DFFTW3_SUPPORT -DUSING_X11 -DUSING_XV -DUSING_VDPAU -DUSING_OPENGL -DUSING_OPENGL_VIDEO -DUSING_VAAPI -DUSING_GLVAAPI -DUSING_AIRPLAY -DUSING_MHEG -DUSING_FRONTEND -DUSING_FFMPEG_THREADS -DUSING_ALSA -DUSING_OSS -DUSING_V4L2 -DUSING_LINUX_FIREWIRE -DUSING_FIREWIRE -DUSING_IPTV -DUSING_HDHOMERUN -DUSING_CETON -DUSING_IVTV -DUSING_HDPVR -DUSING_DVB -DUSING_BACKEND -DMTV_API -DQT_SQL_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr -I/usr/include/libxml2 -I../../external/zeromq/include -I../../external/nzmqt/include/nzmqt -I../../external/qjson/include -I.. -I../.. -I../../external/FFmpeg -I. -I../libmyth -I../libmyth/audio -I../libmythbase -I../libmythhdhomerun -Idvbdev -Impeg -Iiptv -Ichannelscan -Ivisualisations -I../libmythlivemedia/BasicUsageEnvironment/include -I../libmythlivemedia/BasicUsageEnvironment -I../libmythlivemedia/groupsock/include -I../libmythlivemedia/groupsock -I../libmythlivemedia/liveMedia/include -I../libmythlivemedia/liveMedia -I../libmythlivemedia/UsageEnvironment/include -I../libmythlivemedia/UsageEnvironment -I../libmythbase -I../libmythui -I../libmythupnp -I../libmythservicecontracts -I/usr/include -I../libmythdvdnav -I../libmythbluray -I/usr/X11R6/include -I. -o videoout_nullvaapi.o videoout_nullvaapi.cpp
vaapicontext.cpp: In member function ‘bool VAAPIContext::InitBuffers()’:
vaapicontext.cpp:570:44: error: invalid conversion from ‘int’ to ‘VASurfaceID* {aka unsigned int*}’ [-fpermissive]
m_surfaces);
^
vaapicontext.cpp:570:44: error: invalid conversion from ‘VASurfaceID* {aka unsigned int*}’ to ‘unsigned int’ [-fpermissive]
vaapicontext.cpp:570:44: error: too few arguments to function ‘VAStatus vaCreateSurfaces(VADisplay, unsigned int, unsigned int, unsigned int, VASurfaceID*, unsigned int, VASurfaceAttrib*, unsigned int)’
In file included from /usr/include/va/va_x11.h:27:0,
from vaapicontext.h:7,
from vaapicontext.cpp:6:
/usr/include/va/va.h:792:1: note: declared here
vaCreateSurfaces(
^
make[2]: *** [vaapicontext.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/home/fp/builds/mythtv-fixes-git/src/mythtv/mythtv/libs/libmythtv'
make[1]: *** [sub-libmythtv-make_default] Error 2
make[1]: Leaving directory `/home/fp/builds/mythtv-fixes-git/src/mythtv/mythtv/libs'
make: *** [libs] Error 2
Change History (7)
comment:1 by , 13 years ago
follow-up: 3 comment:2 by , 13 years ago
Actually, that previous patch is wrong (it breaks with the older vaapi). Please use the following (changes the version check from 0,33,0 to 0,34,0).
diff --git a/mythtv/libs/libmythtv/vaapicontext.h b/mythtv/libs/libmythtv/vaapicontext.h
index d076d11..f85cd9e 100644
--- a/mythtv/libs/libmythtv/vaapicontext.h
+++ b/mythtv/libs/libmythtv/vaapicontext.h
@@ -4,6 +4,10 @@
extern "C" {
#include "libavcodec/vaapi.h"
}
+#include "va/va_version.h"
+#if VA_CHECK_VERSION(0,34,0)
+#include "va/va_compat.h"
+#endif
#include "va/va_x11.h"
#include "va/va_glx.h"
#include "videocolourspace.h"
As before, please report back success/failure.
comment:3 by , 13 years ago
Replying to Gary Buhrmaster <gary.buhrmaster@…>:
Actually, that previous patch is wrong (it breaks with the older vaapi). Please use the following (changes the version check from 0,33,0 to 0,34,0).
diff --git a/mythtv/libs/libmythtv/vaapicontext.h b/mythtv/libs/libmythtv/vaapicontext.h index d076d11..f85cd9e 100644 --- a/mythtv/libs/libmythtv/vaapicontext.h +++ b/mythtv/libs/libmythtv/vaapicontext.h @@ -4,6 +4,10 @@ extern "C" { #include "libavcodec/vaapi.h" } +#include "va/va_version.h" +#if VA_CHECK_VERSION(0,34,0) +#include "va/va_compat.h" +#endif #include "va/va_x11.h" #include "va/va_glx.h" #include "videocolourspace.h"As before, please report back success/failure.
Yes, that compiled and tested good. I don't know if the devs want to look into the new functionality and open a ticket to add it, or they are fine with using the old interface.
Thanks, Frank P.
comment:4 by , 13 years ago
Thanks for testing.
For the devs, the patch (against master) is available at:
Github ref: https://github.com/garybuhrmaster/mythtv/commit/2add868d2f18b8b47d9747e043f052e88869bfc3
Github git-am ref: https://github.com/garybuhrmaster/mythtv/commit/2add868d2f18b8b47d9747e043f052e88869bfc3.patch
comment:5 by , 13 years ago
| Owner: | set to |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
comment:6 by , 13 years ago
| Milestone: | unknown → 0.27 |
|---|

Try the following patch to see if it allows MythTV to compile:
diff --git a/mythtv/libs/libmythtv/vaapicontext.h b/mythtv/libs/libmythtv/vaapicontext.h index d076d11..76fd318 100644 --- a/mythtv/libs/libmythtv/vaapicontext.h +++ b/mythtv/libs/libmythtv/vaapicontext.h @@ -4,6 +4,10 @@ extern "C" { #include "libavcodec/vaapi.h" } +#include "va/va_version.h" +#if VA_CHECK_VERSION(0,33,0) +#include "va/va_compat.h" +#endif #include "va/va_x11.h" #include "va/va_glx.h" #include "videocolourspace.h"I have no method to test to see if vaapi works, so please report back.
Note that FFmpeg has some dependencies on the API, so FFmpeg upstream may need to do so work too.