summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/render')
-rw-r--r--src/render/meson.build101
-rw-r--r--src/render/queue_libplacebo.c3
-rw-r--r--src/render/renderer_libplacebo.c15
3 files changed, 60 insertions, 59 deletions
diff --git a/src/render/meson.build b/src/render/meson.build
index af68036..b567a03 100644
--- a/src/render/meson.build
+++ b/src/render/meson.build
@@ -126,62 +126,59 @@ elif get_option('renderer') == 'libplacebo'
endif
if get_option('subtitles').enabled()
- libass = dependency('libass', required: false, allow_fallback: false)
- if not libass.found()
- libass_opts = ['test=disabled']
- if not is_windows
- libass_opts += ['fontconfig=enabled']
- # libass(e46aede):meson.build:126
- fontconfig = dependency('fontconfig',
- version: '>=2.10.92',
- default_options: [
- 'doc=disabled',
- 'nls=disabled',
- 'tests=disabled',
- 'tools=disabled',
- 'cache-build=disabled'
- ])
- else
- libass_opts += ['directwrite=enabled']
- endif
- # libass(e46aede):meson.build:84
- # fontconfig(72b9a48):meson.build:28
- freetype = dependency('freetype2',
- version: '>=9.17.3',
- default_options: [
- 'warning_level=0',
- 'tests=disabled',
- 'harfbuzz=disabled',
- 'png=disabled'
- ])
- # libass(e46aede):meson.build:90
- fribidi = dependency('fribidi',
- version: '>=0.19.1',
- default_options: [
- 'warning_level=0',
- 'c_args=-Wno-stringop-overflow', # This doesn't work.
- 'docs=false',
- 'tests=false',
- 'bin=false'
- ])
- # freetype2(42608f7):meson.build:346
- harfbuz = dependency('harfbuzz',
- version: '>=2.0.0',
+ libass_opts = ['test=disabled']
+ if not is_windows
+ libass_opts += ['fontconfig=enabled']
+ # libass(e46aede):meson.build:126
+ fontconfig = dependency('fontconfig',
+ version: '>=2.10.92',
default_options: [
- 'glib=disabled',
- 'gobject=disabled',
- 'cairo=disabled',
- 'chafa=disabled',
- 'freetype=disabled',
- # This does not override yield, and yielding breaks the build if tests=enabled.
- # https://github.com/mesonbuild/meson/issues/5214
+ 'doc=disabled',
+ 'nls=disabled',
'tests=disabled',
- 'introspection=disabled',
- 'docs=disabled',
- 'utilities=disabled'
+ 'tools=disabled',
+ 'cache-build=disabled'
])
- libass = dependency('libass', default_options: libass_opts)
+ else
+ libass_opts += ['directwrite=enabled']
endif
+ # libass(e46aede):meson.build:84
+ # fontconfig(72b9a48):meson.build:28
+ freetype = dependency('freetype2',
+ version: '>=9.17.3',
+ default_options: [
+ 'warning_level=0',
+ 'tests=disabled',
+ 'harfbuzz=disabled',
+ 'png=disabled'
+ ])
+ # libass(e46aede):meson.build:90
+ fribidi = dependency('fribidi',
+ version: '>=0.19.1',
+ default_options: [
+ 'warning_level=0',
+ 'c_args=-Wno-stringop-overflow', # This doesn't work.
+ 'docs=false',
+ 'tests=false',
+ 'bin=false'
+ ])
+ # freetype2(42608f7):meson.build:346
+ harfbuz = dependency('harfbuzz',
+ version: '>=2.0.0',
+ default_options: [
+ 'glib=disabled',
+ 'gobject=disabled',
+ 'cairo=disabled',
+ 'chafa=disabled',
+ 'freetype=disabled',
+ # This does not override yield, and yielding breaks the build if tests=enabled.
+ # https://github.com/mesonbuild/meson/issues/5214
+ 'tests=disabled',
+ 'introspection=disabled',
+ 'docs=disabled',
+ 'utilities=disabled'
+ ])
+ libass = dependency('libass', default_options: libass_opts)
render_deps += [libass]
render_args += ['-DCAMU_HAVE_SUBTITLES']
endif
diff --git a/src/render/queue_libplacebo.c b/src/render/queue_libplacebo.c
index d1f7d88..90e7239 100644
--- a/src/render/queue_libplacebo.c
+++ b/src/render/queue_libplacebo.c
@@ -259,6 +259,7 @@ static bool map_av_frame(pl_gpu gpu, pl_tex *tex, const struct pl_source_frame *
s64 pts = av_rescale_q(frame->best_effort_timestamp, stream->time_base, (AVRational){ 1, 1000 });
nn_mutex_lock(&lq->subtitle_lock);
s32 change; // 1 = different position, 2 = different content.
+ // ass_frame = NULL and lq->ass_track->n_events = 0 can also mean parsing completely failed.
ASS_Image *ass_frame = ass_render_frame(lq->ass_renderer, lq->ass_track, pts, &change);
if (ass_frame) {
struct camu_overlay_lp *overlay = NULL;
@@ -272,8 +273,6 @@ static bool map_av_frame(pl_gpu gpu, pl_tex *tex, const struct pl_source_frame *
out_frame->overlays = overlay->overlays;
out_frame->num_overlays = overlay->num;
((struct pl_source_frame *)src)->frame_data = overlay;
- } else if (change > 0) {
- log_error("Failed to parse or render subtitle.");
}
nn_mutex_unlock(&lq->subtitle_lock);
}
diff --git a/src/render/renderer_libplacebo.c b/src/render/renderer_libplacebo.c
index 562c486..6ddca70 100644
--- a/src/render/renderer_libplacebo.c
+++ b/src/render/renderer_libplacebo.c
@@ -28,6 +28,8 @@
static f32 clear_color[4] = { 0.f, 0.f, 0.f, 1.f };
+static struct pl_render_params default_params;
+
static inline void pl_swapchain_resize_compat(pl_swapchain swapchain, u32 *width, u32 *height)
{
s32 req_width = (s32)*width;
@@ -64,9 +66,9 @@ static void renderer_lp_set(struct camu_renderer *renderer, u8 option, u8 value)
case CAMU_RENDERER_SCALING:
switch (value) {
case CAMU_SCALING_DEFAULT:
- lr->params.upscaler = pl_render_default_params.upscaler;
- lr->params.downscaler = pl_render_default_params.downscaler;
- lr->params.skip_anti_aliasing = pl_render_default_params.skip_anti_aliasing;
+ lr->params.upscaler = default_params.upscaler;
+ lr->params.downscaler = default_params.downscaler;
+ lr->params.skip_anti_aliasing = default_params.skip_anti_aliasing;
break;
case CAMU_SCALING_NEAREST:
lr->params.upscaler = &pl_filter_nearest;
@@ -268,9 +270,12 @@ static bool renderer_lp_create_renderer(struct camu_renderer *renderer, u32 *wid
pl_swapchain_resize_compat(lr->swapchain, width, height);
lr->have_frame = false;
+ //default_params = pl_render_high_quality_params;
+ default_params = pl_render_default_params;
+ //default_params = pl_render_fast_params;
+
al_memset(&lr->params, 0, sizeof(struct pl_render_params));
- //lr->params = pl_render_fast_params;
- lr->params = pl_render_default_params;
+ lr->params = default_params;
lr->params.deband_params = NULL;
//lr->params.frame_mixer = NULL;