#6828: ffmpeg git master compile error with libva 2.0 -------------------------------------+------------------------------------- Reporter: bermond | Type: defect Status: new | Priority: normal Component: | Version: git- undetermined | master Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- I'm getting the following compile error in ffmpeg git master when using libva 2.0: {{{ CC libavutil/hwcontext_vaapi.o libavutil/hwcontext_vaapi.c: In function ‘vaapi_map_to_drm’: libavutil/hwcontext_vaapi.c:1083:5: error: unknown type name ‘VADRMPRIMESurfaceDescriptor’; did you mean ‘AVDRMFrameDescriptor’? VADRMPRIMESurfaceDescriptor va_desc; ^~~~~~~~~~~~~~~~~~~~~~~~~~~ AVDRMFrameDescriptor libavutil/hwcontext_vaapi.c:1089:11: error: implicit declaration of function ‘vaExportSurfaceHandle’ [-Werror=implicit-function-declaration] vas = vaExportSurfaceHandle(hwctx->display, surface_id, ^~~~~~~~~~~~~~~~~~~~~ libavutil/hwcontext_vaapi.c:1090:33: error: ‘VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2’ undeclared (first use in this function); did you mean ‘VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME’? VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME libavutil/hwcontext_vaapi.c:1090:33: note: each undeclared identifier is reported only once for each function it appears in libavutil/hwcontext_vaapi.c:1091:33: error: ‘VA_EXPORT_SURFACE_READ_ONLY’ undeclared (first use in this function) VA_EXPORT_SURFACE_READ_ONLY | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ libavutil/hwcontext_vaapi.c:1092:33: error: ‘VA_EXPORT_SURFACE_SEPARATE_LAYERS’ undeclared (first use in this function); did you mean ‘VA_EXPORT_SURFACE_READ_ONLY’? VA_EXPORT_SURFACE_SEPARATE_LAYERS, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VA_EXPORT_SURFACE_READ_ONLY libavutil/hwcontext_vaapi.c:1109:35: error: request for member ‘num_objects’ in something not a structure or union drm_desc->nb_objects = va_desc.num_objects; ^ libavutil/hwcontext_vaapi.c:1110:28: error: request for member ‘num_objects’ in something not a structure or union for (i = 0; i < va_desc.num_objects; i++) { ^ libavutil/hwcontext_vaapi.c:1111:44: error: request for member ‘objects’ in something not a structure or union drm_desc->objects[i].fd = va_desc.objects[i].fd; ^ libavutil/hwcontext_vaapi.c:1112:44: error: request for member ‘objects’ in something not a structure or union drm_desc->objects[i].size = va_desc.objects[i].size; ^ libavutil/hwcontext_vaapi.c:1114:20: error: request for member ‘objects’ in something not a structure or union va_desc.objects[i].drm_format_modifier; ^ libavutil/hwcontext_vaapi.c:1116:34: error: request for member ‘num_layers’ in something not a structure or union drm_desc->nb_layers = va_desc.num_layers; ^ libavutil/hwcontext_vaapi.c:1117:28: error: request for member ‘num_layers’ in something not a structure or union for (i = 0; i < va_desc.num_layers; i++) { ^ libavutil/hwcontext_vaapi.c:1118:48: error: request for member ‘layers’ in something not a structure or union drm_desc->layers[i].format = va_desc.layers[i].drm_format; ^ libavutil/hwcontext_vaapi.c:1119:48: error: request for member ‘layers’ in something not a structure or union drm_desc->layers[i].nb_planes = va_desc.layers[i].num_planes; ^ libavutil/hwcontext_vaapi.c:1120:32: error: request for member ‘layers’ in something not a structure or union for (j = 0; j < va_desc.layers[i].num_planes; j++) { ^ libavutil/hwcontext_vaapi.c:1122:24: error: request for member ‘layers’ in something not a structure or union va_desc.layers[i].object_index[j]; ^ libavutil/hwcontext_vaapi.c:1124:24: error: request for member ‘layers’ in something not a structure or union va_desc.layers[i].offset[j]; ^ libavutil/hwcontext_vaapi.c:1126:24: error: request for member ‘layers’ in something not a structure or union va_desc.layers[i].pitch[j]; ^ libavutil/hwcontext_vaapi.c:1142:28: error: request for member ‘num_objects’ in something not a structure or union for (i = 0; i < va_desc.num_objects; i++) ^ libavutil/hwcontext_vaapi.c:1143:22: error: request for member ‘objects’ in something not a structure or union close(va_desc.objects[i].fd); ^ cc1: some warnings being treated as errors make: *** [ffbuild/common.mak:60: libavutil/hwcontext_vaapi.o] Error 1 }}}
How to reproduce: {{{ $ git clone git://source.ffmpeg.org/ffmpeg.git $ cd ffmpeg $ ./configure --enable-libdrm --enable-libmfx $ make -j1 }}} ffmpeg git master compiles fine with libva 1.8.3. Strangely, ffmpeg 3.4 compiles fine with libva 2.0. '''System information:''' '''OS:''' Arch Linux x86_64 '''Compiler:''' gcc 7.2.0 '''glibc:''' 2.26 '''FFmpeg:''' git master '''libva:''' 2.0.0 '''libdrm:''' 2.4.88 '''libmfx:''' 1.23 '''Relevant system-wide environmet variables:''' '''CPPFLAGS='''"-D_FORTIFY_SOURCE=2" '''CFLAGS='''"-march=native -O2 -pipe -fstack-protector-strong -fno-plt" '''CXXFLAGS='''"-march=native -O2 -pipe -fstack-protector-strong -fno-plt" '''LDFLAGS='''"-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" -- Ticket URL: <https://trac.ffmpeg.org/ticket/6828> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac