Skip to content

can't compile softhdcuvid any more #75

@geraldraaf

Description

@geraldraaf

i can't compile softhdcuvid anymore, it's because -fpermissive is removed (commit Adapt Makefile CFLAGS)

i am on gentoo with a gcc 14.3.1 version

when i compile i get the following error. Only VAAPI enabled, because i run vdr in my Desktop environment.

~/git/vdr-plugin-softhdcuvid # make
cc -march=alderlake -mabm -mno-cldemote -mno-kl -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=24576 -O2 -pipe -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include  -I/usr/include/freetype2          -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhdvaapi"' -D_GNU_SOURCE -DDEBUG 		 -DHAVE_GL			 -DAV_INFO -DAV_INFO_TIME=3000	 -DUSE_MPEG_COMPLETE	 -DH264_EOS_TRICKSPEED		 -DUSE_VDR_SPU			 -DUSE_OPENGLOSD -DUSE_GLX -DVAAPI -DPLACEBO_GL -DPLACEBO -DPLACEBO -DUSE_SCREENSAVER  -DGIT_REV='"c866670"'  -g -W -Wextra   -c -o video.o video.c
video.c: In function 'generateVAAPIImage':
video.c:2375:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 2375 |     vaSyncSurface(decoder->VaDisplay, (unsigned int)frame->data[3]);
      |                                       ^
video.c:2377:51: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 2377 |         vaExportSurfaceHandle(decoder->VaDisplay, (unsigned int)frame->data[3], VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2,
      |                                                   ^
video.c:2408:17: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 2408 |             fmt = pl_find_named_fmt(p->gpu, n == 0 ? "r8" : "rg8"); // 8 Bit YUV
      |                 ^
video.c:2410:17: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 2410 |             fmt = pl_find_fourcc(p->gpu,
      |                 ^
video.c: In function 'CuvidRenderFrame':
video.c:3623:47: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
 3623 |             vaSyncSurface(decoder->VaDisplay, (unsigned int)frame->data[3]);
      |                                               ^
video.c: In function 'CuvidMixVideo':
video.c:4195:25: error: assignment to 'const struct pl_hook * const*' from incompatible pointer type 'const struct pl_hook * (*)[5]' [-Wincompatible-pointer-types]
 4195 |     render_params.hooks = &p->hook;
      |                         ^
video.c: In function 'make_osd_overlay':
video.c:4277:9: error: assignment to 'const struct pl_fmt *' from incompatible pointer type 'pl_fmt' {aka 'const struct pl_fmt_t *'} [-Wincompatible-pointer-types]
 4277 |     fmt = pl_find_named_fmt(p->gpu, "rgba8"); // 8 Bit RGB
      |         ^
video.c:4316:60: error: initialization of 'const struct pl_fmt_t *' from incompatible pointer type 'const struct pl_fmt *' [-Wincompatible-pointer-types]
 4316 |                 .w = width, .h = height, .d = 0, .format = fmt, .sampleable = true, .host_writable = true,
      |                                                            ^~~
video.c:4316:60: note: (near initialization for '(anonymous).format')
video.c: In function 'InitPlacebo':
video.c:5692:66: error: initialization of 'void *' from 'xcb_window_t' {aka 'unsigned int'} makes pointer from integer without a cast [-Wint-conversion]
 5692 |                                                          .priv = VideoWindow,
      |                                                                  ^~~~~~~~~~~
video.c:5692:66: note: (near initialization for '(anonymous).priv')
make: *** [<builtin>: video.o] Error 1


DRM and VAAPI enabled.

~/git/vdr-plugin-softhdcuvid # make
x86_64-pc-linux-gnu-g++ -march=alderlake -mabm -mno-cldemote -mno-kl -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=24576 -O2 -pipe  -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include  -I/usr/include/freetype2   -I/usr/include/libdrm        -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhddrm"' -D_GNU_SOURCE -DDEBUG 		 -DHAVE_GL			 -DAV_INFO -DAV_INFO_TIME=3000	 -DUSE_MPEG_COMPLETE		 -DH264_EOS_TRICKSPEED		 -DUSE_VDR_SPU			 -DUSE_OPENGLOSD -DUSE_GLX -DVAAPI -DPLACEBO_GL -DPLACEBO -DPLACEBO -DUSE_DRM -DVAAPI -DUSE_SCREENSAVER  -DGIT_REV='"c866670"'  -g -W -Wextra -Werror=overloaded-virtual -Wno-unused-parameter   -c -o softhdcuvid.o softhdcuvid.cpp
cc -march=alderlake -mabm -mno-cldemote -mno-kl -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=24576 -O2 -pipe -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include  -I/usr/include/freetype2   -I/usr/include/libdrm        -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhddrm"' -D_GNU_SOURCE -DDEBUG 		 -DHAVE_GL			 -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_MPEG_COMPLETE		 -DH264_EOS_TRICKSPEED		 -DUSE_VDR_SPU			 -DUSE_OPENGLOSD -DUSE_GLX -DVAAPI -DPLACEBO_GL -DPLACEBO -DPLACEBO -DUSE_DRM -DVAAPI -DUSE_SCREENSAVER  -DGIT_REV='"c866670"'  -g -W -Wextra   -c -o softhddev.o softhddev.c
cc -march=alderlake -mabm -mno-cldemote -mno-kl -mno-sgx -mno-widekl -mshstk --param=l1-cache-line-size=64 --param=l1-cache-size=32 --param=l2-cache-size=24576 -O2 -pipe -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include  -I/usr/include/freetype2   -I/usr/include/libdrm        -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhddrm"' -D_GNU_SOURCE -DDEBUG 		 -DHAVE_GL			 -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_MPEG_COMPLETE		 -DH264_EOS_TRICKSPEED		 -DUSE_VDR_SPU			 -DUSE_OPENGLOSD -DUSE_GLX -DVAAPI -DPLACEBO_GL -DPLACEBO -DPLACEBO -DUSE_DRM -DVAAPI -DUSE_SCREENSAVER  -DGIT_REV='"c866670"'  -g -W -Wextra   -c -o video.o video.c
In file included from video.c:602:
drm.c: In function 'set_video_mode':
drm.c:178:83: warning: comparison of integer expressions of different signedness: 'uint32_t' {aka 'unsigned int'} and 'int' [-Wsign-compare]
 178 |         if (width == mode->hdisplay && height == mode->vdisplay && mode->vrefresh == DRMRefresh &&
     |                                                                                   ^~
drm.c:187:13: error: implicit declaration of function 'InitBo' [-Wimplicit-function-declaration]
 187 |             InitBo(render->bpp);
     |             ^~~~~~
drm.c: In function 'FindDevice':
drm.c:317:40: warning: comparison of integer expressions of different signedness: 'uint32_t' {aka 'unsigned int'} and 'int' [-Wsign-compare]
 317 |                         mode->vrefresh == DRMRefresh && !(mode->flags & DRM_MODE_FLAG_INTERLACE)) {
     |                                        ^~
drm.c: At top level:
drm.c:477:6: warning: conflicting types for 'InitBo'; have 'void(int)'
 477 | void InitBo(int bpp) {
     |      ^~~~~~
drm.c:187:13: note: previous implicit declaration of 'InitBo' with type 'void(int)'
 187 |             InitBo(render->bpp);
     |             ^~~~~~
drm.c: In function 'InitBo':
drm.c:485:67: error: passing argument 3 of 'epoxy_eglCreateWindowSurface' makes integer from pointer without a cast [-Wint-conversion]
 485 |     eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, gbm.surface, NULL);
     |                                                                ~~~^~~~~~~~
     |                                                                   |
     |                                                                   struct gbm_surface *
drm.c:485:67: note: expected 'EGLNativeWindowType' {aka 'long unsigned int'} but argument is of type 'struct gbm_surface *'
In file included from video.c:603:
hdr.c: In function 'set_hdr_metadata':
hdr.c:479:12: error: assignment to 'struct AVMasteringDisplayMetadata *' from incompatible pointer type 'uint8_t *' {aka 'unsigned char *'} [-Wincompatible-pointer-types]
 479 |         md = sd1->data;
     |            ^
hdr.c:482:12: error: assignment to 'struct AVContentLightMetadata *' from incompatible pointer type 'uint8_t *' {aka 'unsigned char *'} [-Wincompatible-pointer-types]
 482 |         ld = sd2->data;
     |            ^
hdr.c:530:16: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 530 |             cs = weston_colorspace_lookup("BT.709");
     |                ^
hdr.c:533:16: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 533 |             cs = weston_colorspace_lookup("BT.2020");
     |                ^
hdr.c:536:16: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 536 |             cs = weston_colorspace_lookup("BT.470 B/G"); // BT.601
     |                ^
hdr.c:539:16: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
 539 |             cs = weston_colorspace_lookup("BT.709");
     |                ^
video.c: In function 'generateVAAPIImage':
video.c:2375:39: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
2375 |     vaSyncSurface(decoder->VaDisplay, (unsigned int)frame->data[3]);
     |                                       ^
video.c:2377:51: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
2377 |         vaExportSurfaceHandle(decoder->VaDisplay, (unsigned int)frame->data[3], VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2,
     |                                                   ^
video.c:2408:17: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
2408 |             fmt = pl_find_named_fmt(p->gpu, n == 0 ? "r8" : "rg8"); // 8 Bit YUV
     |                 ^
video.c:2410:17: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
2410 |             fmt = pl_find_fourcc(p->gpu,
     |                 ^
video.c: In function 'CuvidRenderFrame':
video.c:3623:47: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
3623 |             vaSyncSurface(decoder->VaDisplay, (unsigned int)frame->data[3]);
     |                                               ^
video.c: In function 'CuvidMixVideo':
video.c:4195:25: error: assignment to 'const struct pl_hook * const*' from incompatible pointer type 'const struct pl_hook * (*)[5]' [-Wincompatible-pointer-types]
4195 |     render_params.hooks = &p->hook;
     |                         ^
video.c: In function 'make_osd_overlay':
video.c:4277:9: error: assignment to 'const struct pl_fmt *' from incompatible pointer type 'pl_fmt' {aka 'const struct pl_fmt_t *'} [-Wincompatible-pointer-types]
4277 |     fmt = pl_find_named_fmt(p->gpu, "rgba8"); // 8 Bit RGB
     |         ^
video.c:4316:60: error: initialization of 'const struct pl_fmt_t *' from incompatible pointer type 'const struct pl_fmt *' [-Wincompatible-pointer-types]
4316 |                 .w = width, .h = height, .d = 0, .format = fmt, .sampleable = true, .host_writable = true,
     |                                                            ^~~
video.c:4316:60: note: (near initialization for '(anonymous).format')
video.c: In function 'InitPlacebo':
video.c:5692:66: error: initialization of 'void *' from 'xcb_window_t' {aka 'unsigned int'} makes pointer from integer without a cast [-Wint-conversion]
5692 |                                                          .priv = VideoWindow,
     |                                                                  ^~~~~~~~~~~
video.c:5692:66: note: (near initialization for '(anonymous).priv')
make: *** [<builtin>: video.o] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions