diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/buffer/video.c | 4 | ||||
| -rw-r--r-- | src/codec/ffmpeg/common.h | 2 | ||||
| -rw-r--r-- | src/codec/ffmpeg/decoder.c | 4 | ||||
| -rw-r--r-- | src/fruits/cmsrv/meson.build | 5 | ||||
| -rw-r--r-- | src/fruits/meson.build | 9 | ||||
| -rw-r--r-- | src/render/meson.build | 2 | ||||
| -rw-r--r-- | src/render/queue_libplacebo.c | 4 | ||||
| -rw-r--r-- | src/render/renderer_libplacebo.c | 2 |
8 files changed, 17 insertions, 15 deletions
diff --git a/src/buffer/video.c b/src/buffer/video.c index 1c37403..0e9795f 100644 --- a/src/buffer/video.c +++ b/src/buffer/video.c @@ -23,10 +23,10 @@ #else #define BUFFER_MARK_LOW 4 #define BUFFER_MARK_BUFFERED 7 // Must be >1. -#define BUFFER_MARK_HIGH 9 +#define BUFFER_MARK_HIGH 8 // Keep MARK_RESET high because currently the decoder can produce an // unpredictable amount of frames at any point. -#define BUFFER_MARK_RESET (BUFFER_MARK_HIGH * 4) +#define BUFFER_MARK_RESET (BUFFER_MARK_HIGH * 3) #endif bool camu_video_buffer_init(struct camu_video_buffer *buf, struct camu_clock *clock) diff --git a/src/codec/ffmpeg/common.h b/src/codec/ffmpeg/common.h index 26f807d..c40a38d 100644 --- a/src/codec/ffmpeg/common.h +++ b/src/codec/ffmpeg/common.h @@ -4,6 +4,8 @@ #include <libavutil/frame.h> #include <libavcodec/avcodec.h> +#define camu_ff_longest_name(desc) ((desc)->long_name ? (desc)->long_name : (desc)->name) + s64 camu_ff_frame_duration(AVFrame *frame); // userdata, level, fmt, args diff --git a/src/codec/ffmpeg/decoder.c b/src/codec/ffmpeg/decoder.c index 3da0027..d24677a 100644 --- a/src/codec/ffmpeg/decoder.c +++ b/src/codec/ffmpeg/decoder.c @@ -28,7 +28,7 @@ static const char *hwdevices[] = { static void log_codec_name(const AVCodec *codec, const char *hwdevice_name) { - const char *name = codec->long_name ? codec->long_name : codec->name; + const char *name = camu_ff_longest_name(codec); if (hwdevice_name) { log_info("Codec: %s (via %s hwaccel).", name, hwdevice_name); } else { @@ -141,6 +141,8 @@ static s32 init_hwdevice_context(struct camu_ff_decoder *av, AVCodecContext *con #ifdef CAMU_HUGE_VIDEO_BUFFER // Note that context->extra_hw_frames has the ability to cause corruption. context->extra_hw_frames = 48; +#else + context->extra_hw_frames = 4; #endif return ret; diff --git a/src/fruits/cmsrv/meson.build b/src/fruits/cmsrv/meson.build index bfeabe0..15b46b6 100644 --- a/src/fruits/cmsrv/meson.build +++ b/src/fruits/cmsrv/meson.build @@ -8,8 +8,9 @@ if use_tuis cmsrv_args += ['-DCMSRV_USE_UI'] endif +cmsrv_link_args = [] if is_windows and not is_msvc - cmsrv_args += ['-static', '-static-libgcc', '-static-libstdc++', '-mwindows', '-municode'] + cmsrv_link_args += ['-mconsole', '-municode', '-static', '-static-libgcc', '-static-libstdc++'] endif -executable('cmsrv', cmsrv_src, dependencies: cmsrv_deps, c_args: cmsrv_args, link_args: cmsrv_args, install: true) +executable('cmsrv', cmsrv_src, dependencies: cmsrv_deps, c_args: cmsrv_args, link_args: cmsrv_link_args, install: true) diff --git a/src/fruits/meson.build b/src/fruits/meson.build index c82d71d..f53a653 100644 --- a/src/fruits/meson.build +++ b/src/fruits/meson.build @@ -1,7 +1,4 @@ -use_tuis = true -if is_windows - use_tuis = false -endif +use_tuis = not is_windows if use_tuis and (get_option('server').enabled() or get_option('client').enabled()) notcurses = dependency('notcurses', required: false, allow_fallback: false) @@ -29,11 +26,11 @@ if use_tuis and (get_option('server').enabled() or get_option('client').enabled( endif endif -if get_option('server').enabled() and not is_windows +if get_option('server').enabled() subdir('cmsrv') endif -if get_option('client').enabled() and not is_windows +if get_option('client').enabled() subdir('cmc') endif diff --git a/src/render/meson.build b/src/render/meson.build index 9aee7af..d342312 100644 --- a/src/render/meson.build +++ b/src/render/meson.build @@ -56,7 +56,7 @@ elif get_option('renderer') == 'libplacebo' shaderc_opts.add_cmake_defines({ 'ENABLE_EXCEPTIONS_ON_MSVC': false }) shaderc_proj = cmake.subproject('shaderc', options: shaderc_opts) shaderc = shaderc_proj.dependency('shaderc') - meson.override_dependency('shaderc', declare_dependency(dependencies: shaderc, version: '2026.1')) + meson.override_dependency('shaderc', declare_dependency(dependencies: shaderc, version: '2026.2')) render_deps += [ shaderc_proj.dependency('shaderc_util'), shaderc_proj.dependency('glslang'), diff --git a/src/render/queue_libplacebo.c b/src/render/queue_libplacebo.c index 57d60f6..f666560 100644 --- a/src/render/queue_libplacebo.c +++ b/src/render/queue_libplacebo.c @@ -39,7 +39,7 @@ static bool queue_lp_configure_subtitles(struct camu_frame_queue *queue, u32 wid } const AVCodec *codec = avcodec_find_decoder(codecpar->codec_id); if (!codec) { - log_error("Failed to find subtitle decoder."); + log_error("Failed to find subtitle transcoder."); return false; } if (!(lq->subs.converter = camu_ff_alloc_codec_context(codec, codecpar))) { @@ -51,7 +51,7 @@ static bool queue_lp_configure_subtitles(struct camu_frame_queue *queue, u32 wid return false; } const AVCodecDescriptor *ass_desc = avcodec_descriptor_get(AV_CODEC_ID_ASS); - log_info("Subtitle conversion: %s -> %s.", desc->long_name, ass_desc->long_name); + log_info("Subtitle conversion: %s -> %s.", camu_ff_longest_name(desc), camu_ff_longest_name(ass_desc)); // https://github.com/mpv-player/mpv/blob/266cb79f38fd1a5fd448b453dee5971795a145ca/sub/sd_ass.c#L634 #define MP_ASS_FONT_PLAYRESX 384.0 track->PlayResX = track->PlayResY * (f64)width / MAX(height, (u32)1); diff --git a/src/render/renderer_libplacebo.c b/src/render/renderer_libplacebo.c index 2bcbd64..6ddb972 100644 --- a/src/render/renderer_libplacebo.c +++ b/src/render/renderer_libplacebo.c @@ -429,7 +429,7 @@ static bool renderer_lp_render(struct camu_renderer *renderer, struct camu_scree lr->params.num_hooks = 1; lr->params.hooks[0]->parameters[0].data->f = (f32)mouse_x; lr->params.hooks[0]->parameters[1].data->f = (f32)mouse_y; - lr->params.hooks[0]->parameters[3].data->f = (scr->vr_emulation == CAMU_VR_360) ? 2.0 : 1.0 - (f32)scr->vr_left_eye; + lr->params.hooks[0]->parameters[3].data->f = (scr->vr_emulation == CAMU_VR_360) ? 2.f : (scr->vr_left_eye ? 0.f : 1.f); } enum { |