Skip to content

`../src/renderer.c:3069: pl_render_image_mix: Assertion `fidx > 0' failed` never ends

So, you've just gone silent on https://github.com/mpv-player/mpv/issues/9438 then few weeks later fixed it, then introduced it again, then fixed it again and now it's back, just same as ever: crash on seek-back during increased speed.

Thread 17 "mpv/vo" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffc58cb640 (LWP 6476)]
0x00007ffff4aa96ac in __pthread_kill_implementation () from /lib64/libc.so.6
(gdb) bt full
#0  0x00007ffff4aa96ac in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007ffff4a566f6 in raise () at /lib64/libc.so.6
#2  0x00007ffff4a3f814 in abort () at /lib64/libc.so.6
#3  0x00007ffff4a3f72b in _nl_load_domain.cold () at /lib64/libc.so.6
#4  0x00007ffff4a4eb26 in  () at /lib64/libc.so.6
#5  0x00007ffff5621e43 in pl_render_image_mix () at /lib64/libplacebo.so.206
#6  0x00005555556a01d3 in draw_frame (vo=0x555555926fa0, frame=0x7fffa10eced0) at ../video/out/vo_gpu_next.c:966
        p = 0x5555559f4d70
        gpu = 0x7fffa03c2520
        opts = <optimized out>
        swframe = 
            {fbo = 0x7fffa07870b0, flipped = false, color_repr = {sys = PL_COLOR_SYSTEM_RGB, levels = PL_COLOR_LEVELS_FULL, alpha = PL_ALPHA_UNKNOWN, bits = {sample_depth = 8, color_depth = 8, bit_shift = 0}, dovi = 0x0}, color_space = {primaries = PL_COLOR_PRIM_BT_709, transfer = PL_COLOR_TRC_UNKNOWN, hdr = {prim = {red = {x = 0, y = 0}, green = {x = 0, y = 0}, blue = {x = 0, y = 0}, white = {x = 0, y = 0}}, min_luma = 0, max_luma = 0, max_cll = 0, max_fall = 0}, light = PL_COLOR_LIGHT_UNKNOWN, sig_peak = 0, sig_avg = 0, sig_floor = 0, sig_scale = 0}}
        sw = <optimized out>
        vsync_offset = <optimized out>
        should_draw = <optimized out>
        valid = false
        target = 
          {num_planes = 1, planes = {{texture = 0x7fffa07870b0, address_mode = PL_TEX_ADDRESS_CLAMP, flipped = false, components = 3, component_mapping = {0, 1, 2, 3}, shift_x = 0, shift_y = 0}, {texture = 0x0, address_mode = PL_TEX_ADDRESS_CLAMP, flipped = false, components = 0, component_mapping = {0, 0, 0, 0}, shift_x = 0, shift_y = 0}, {texture = 0x0, address_mode = PL_TEX_ADDRESS_CLAMP, flipped = false, components = 0, component_mapping = {0, 0, 0, 0}, shift_x = 0, shift_y = 0}, {texture = 0x0, address_mode = PL_TEX_ADDRESS_CLAMP, flipped = false, components = 0, component_mapping = {0, 0, 0, 0}, shift_x = 0, shift_y = 0}}, acquire = 0x0, release = 0x0, repr = {sys = PL_COLOR_SYSTEM_RGB, levels = PL_COLOR_LEVELS_FULL, alpha = PL_ALPHA_UNKNOWN, bits = {sample_depth = 8, color_depth = 8, bit_shift = 0}, dovi = 0x0}, color = {primaries = PL_COLOR_PRIM_BT_709, transfer = PL_COLOR_TRC_UNKNOWN, hdr = {prim = {red = {x = 0, y = 0}, green = {x = 0, y = 0}, blue = {x = 0, y = 0}, white = {x = 0, y = 0}}, min_luma = 0, max_luma = 0, max_cll = 0, max_fall = 0}, light = PL_COLOR_LIGHT_UNKNOWN, sig_peak = 0, sig_avg = 0, sig_floor = 0, sig_scale = 0}, profile = {data = 0x7fffa03ad030, len = 952, signature = 11394883925847617719}, lut = 0x0, lut_type = PL_LUT_UNKNOWN, crop = {x0 = 0, y0 = 0, x1 = 1920, y1 = 1080}, rotation = 0, overlays = 0x5555559f4f08, num_overlays = 0, film_grain = {type = PL_FILM_GRAIN_NONE, seed = 0, params = {av1 = {num_points_y = 0, points_y = {"\000" <repeats 14 times>}, chroma_scaling_from_luma = false, num_points_uv = {0, 0}, points_uv = {{"\000", "\000", "\000", "\000", "\000", "\000", "\000", "\000", "\000", "\000"}, {"\000", "\000", "\000", "\000", "\000", "\000", "\000", "\000", "\000", "\000"}}, scaling_shift = 0, ar_coeff_lag = 0, ar_coeffs_y = '\000' <repeats 23 times>, ar_coeffs_uv = {'\000' <repeats 24 times>, '\000' <repeats 24 times>}, ar_coeff_shift = 0, grain_scale_shift = 0, uv_mult = "\000", uv_mult_luma = "\000", uv_offset = {0, 0}, overlap = false}, h274 = {model_id = 0, blending_mode_id = 0, log2_scale_factor = 0, component_model_present = {false, false, false}, num_intensity_intervals = {0, 0, 0}, num_model_values = "\000\000", intensity_interval_lower_bound = {0x0, 0x0, 0x0}, intensity_interval_upper_bound = {0x0, 0x0, 0x0}, comp_model_value = {0x0, 0x0, 0x0}}}}, user_data = 0x0}
        mix = {num_frames = 2, frames = 0x7fffa03ac4b0, signatures = 0x7fffa03af6c0, timestamps = 0x7fffa03aaad0, vsync_duration = 1.66666675}
        will_redraw = <optimized out>
#7  0x000055555569b059 in render_frame (vo=0x555555926fa0) at ../video/out/vo.c:965
        prev_drop_count = 0
        can_queue = <optimized out>
        vsync = {last_queue_display_time = 101056021, vsync_duration = 0, skipped_vsyncs = -1}
        use_vsync = <optimized out>
        frame = 0x7fffa10eced0
        in = 0x5555558f9020
        more_frames = false
        now = <optimized out>
        pts = <optimized out>
        duration = <optimized out>
        end_time = <optimized out>
        target = 0
        working = <optimized out>
        wait_until = <optimized out>
        send_reset = <optimized out>
        now = <optimized out>
        redraw = <optimized out>
        send_pause = <optimized out>
        in = <optimized out>
        vo_paused = false
        r = 0
#8  vo_thread (ptr=<optimized out>) at ../video/out/vo.c:1103
        working = <optimized out>
        wait_until = <optimized out>
        send_reset = <optimized out>
        now = <optimized out>
        redraw = <optimized out>
        send_pause = <optimized out>
        in = <optimized out>
        vo_paused = false
        r = 0
#9  0x00007ffff4aa7767 in start_thread () at /lib64/libc.so.6
#10 0x00007ffff4b31c10 in clone3 () at /lib64/libc.so.6
(gdb) f 6
(gdb) print *vo
$3 = {driver = 0x555555838580 <video_out_gpu_next>, log = 0x5555559439f0, priv = 0x5555559f4d70, global = 0x5555558b4770, x11 = 0x7fffa014aba0, w32 = 0x0, cocoa = 0x0, wl = 0x0, android = 0x0, 
  hwdec_devs = 0x7fffa074b570, input_ctx = 0x5555558dc350, osd = 0x5555558e57d0, encode_lavc_ctx = 0x0, in = 0x5555558f9020, extra = {input_ctx = 0x5555558dc350, osd = 0x5555558e57d0, encode_lavc_ctx = 0x0, 
    wakeup_cb = 0x555555636bf0 <mp_wakeup_core_cb>, wakeup_ctx = 0x5555558b4130}, probing = true, config_ok = 1, params = 0x7fffa0493880, opts_cache = 0x555555943ba0, opts = 0x555555943c70, 
  gl_opts_cache = 0x555555944d50, eq_opts_cache = 0x555555945520, want_redraw = false, dwidth = 1920, dheight = 1080, monitor_par = 1}
(gdb) print *frame
$4 = {pts = 0, duration = -1, vsync_interval = 0.013674, vsync_offset = -0.0054696000000003606, ideal_frame_duration = 0.0082044000000000023, num_vsyncs = 1, redraw = false, repeat = false, still = false, 
  display_synced = true, can_drop = true, current = 0x7fffa02d51f0, num_frames = 2, frames = {0x7fffa02d51f0, 0x7fffa112b670, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, frame_id = 1361}