Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rpi: Update for modern systems #6806

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion video/out/gpu/hwdec.c
Expand Up @@ -72,7 +72,7 @@ const struct ra_hwdec_driver *const ra_hwdec_drivers[] = {
#if HAVE_VDPAU_GL_X11
&ra_hwdec_vdpau,
#endif
#if HAVE_RPI
#if HAVE_RPI_MMAL
&ra_hwdec_rpi_overlay,
#endif
#if HAVE_DRMPRIME && HAVE_DRM
Expand Down
4 changes: 2 additions & 2 deletions video/out/opengl/context_rpi.c
Expand Up @@ -139,7 +139,7 @@ static bool recreate_dispmanx(struct ra_ctx *ctx)
VC_RECT_T dst = {.x = p->x, .y = p->y, .width = p->w, .height = p->h};
VC_RECT_T src = {.width = p->w << 16, .height = p->h << 16};
VC_DISPMANX_ALPHA_T alpha = {
.flags = DISPMANX_FLAGS_ALPHA_FROM_SOURCE,
.flags = DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS,
.opacity = 0xFF,
};
p->window = vc_dispmanx_element_add(p->update, p->display, layer, &dst, 0,
Expand Down Expand Up @@ -234,7 +234,7 @@ static bool rpi_init(struct ra_ctx *ctx)
if (!mpegl_create_context(ctx, p->egl_display, &p->egl_context, &p->egl_config))
goto fail;

if (recreate_dispmanx(ctx) < 0)
if (!recreate_dispmanx(ctx))
goto fail;

mpegl_load_functions(&p->gl, ctx->log);
Expand Down
6 changes: 3 additions & 3 deletions video/out/vo.c
Expand Up @@ -68,9 +68,6 @@ const struct vo_driver *const video_out_drivers[] =
&video_out_libmpv,
#if HAVE_ANDROID
&video_out_mediacodec_embed,
#endif
#if HAVE_RPI
&video_out_rpi,
#endif
&video_out_gpu,
#if HAVE_VDPAU
Expand Down Expand Up @@ -100,6 +97,9 @@ const struct vo_driver *const video_out_drivers[] =
#endif
#if HAVE_DRM
&video_out_drm,
#endif
#if HAVE_RPI_MMAL
&video_out_rpi,
#endif
&video_out_lavc,
NULL
Expand Down
23 changes: 6 additions & 17 deletions wscript
Expand Up @@ -769,25 +769,9 @@ video_output_features = [
'deps': 'win32-desktop && shaderc && spirv-cross',
'func': check_cc(header_name=['d3d11_1.h', 'dxgi1_2.h']),
}, {
# We need MMAL/bcm_host/dispmanx APIs. Also, most RPI distros require
# every project to hardcode the paths to the include directories. Also,
# these headers are so broken that they spam tons of warnings by merely
# including them (compensate with -isystem and -fgnu89-inline).
'name': '--rpi',
'desc': 'Raspberry Pi support',
'func': compose_checks(
check_cc(cflags=["-isystem/opt/vc/include",
"-isystem/opt/vc/include/interface/vcos/pthreads",
"-isystem/opt/vc/include/interface/vmcs_host/linux",
"-fgnu89-inline"],
linkflags="-L/opt/vc/lib",
header_name="bcm_host.h",
lib=['mmal_core', 'mmal_util', 'mmal_vc_client', 'bcm_host']),
# We still need all OpenGL symbols, because the vo_gpu code is
# generic and supports anything from GLES2/OpenGL 2.1 to OpenGL 4 core.
check_cc(lib="EGL", linkflags="-lGLESv2"),
check_cc(lib="GLESv2"),
),
'func': check_pkg_config('brcmegl'),
} , {
'name': '--ios-gl',
'desc': 'iOS OpenGL ES hardware decoding interop support',
Expand Down Expand Up @@ -876,6 +860,11 @@ hwaccel_features = [
'desc': 'CUDA hwaccel',
'deps': '(gl || vulkan) && ffnvcodec',
'func': check_true,
}, {
'name': '--rpi-mmal',
'desc': 'Raspberry Pi MMAL hwaccel',
'deps': 'rpi',
'func': check_pkg_config('mmal'),
}
]

Expand Down
4 changes: 2 additions & 2 deletions wscript_build.py
Expand Up @@ -476,7 +476,7 @@ def swift(task):
( "video/out/opengl/hwdec_dxva2gldx.c", "gl-dxinterop-d3d9" ),
( "video/out/opengl/hwdec_ios.m", "ios-gl" ),
( "video/out/opengl/hwdec_osx.c", "videotoolbox-gl" ),
( "video/out/opengl/hwdec_rpi.c", "rpi" ),
( "video/out/opengl/hwdec_rpi.c", "rpi-mmal" ),
( "video/out/opengl/hwdec_vdpau.c", "vdpau-gl-x11" ),
( "video/out/opengl/libmpv_gl.c", "gl" ),
( "video/out/opengl/ra_gl.c", "gl" ),
Expand All @@ -491,7 +491,7 @@ def swift(task):
( "video/out/vo_libmpv.c" ),
( "video/out/vo_mediacodec_embed.c", "android" ),
( "video/out/vo_null.c" ),
( "video/out/vo_rpi.c", "rpi" ),
( "video/out/vo_rpi.c", "rpi-mmal" ),
( "video/out/vo_sdl.c", "sdl2" ),
( "video/out/vo_tct.c" ),
( "video/out/vo_vaapi.c", "vaapi-x11 && gpl" ),
Expand Down