mpv-player / mpv-player/mpv

malloc(): unsorted double linked list corrupted when using rife

Open
#12,668 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

os:linux
Dominant language
C
Stars
37k
Forks
3.5k
Avg merge
1d 10h
Merged PRs (30d)
22

Description

Important Information

Provide following Information:

  • mpv version
  • mpv 0.36.0 Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects
    built on UNKNOWN
    libplacebo version: v5.264.1
    FFmpeg version: n6.0
    FFmpeg library versions:
    libavutil 58.2.100
    libavcodec 60.3.100
    libavformat 60.3.100
    libswscale 7.1.100
    libavfilter 9.3.100
    libswresample 4.10.100
  • Platform and Version
    Arch linux 6.5.6-arch2-1
    GPU: RX 7900XTX(mesa 1:23.2.1)
  • Source of the mpv binary
    from the mpv-vapoursynth aur
  • Window Manager and version
    Hyprland(424c9a7e)
Reproduction steps

mpv some_video.webm --no-config --vf=vapoursynth="/home/kyle/.config/mpv/vs/rife.vpy"
where rife.vpy is https://0x0.st/HJcS.vpy
these dependencies have to be installed
https://vsdb.top/plugins/misc (vapoursynth-plugin-misc-git)
https://vsdb.top/plugins/mv (vapoursynth-plugin-mvtools)
https://vsdb.top/plugins/vmaf (vapoursynth-plugin-vmaf-git)
https://aur.archlinux.org/packages/vapoursynth-plugin-rife-ncnn-vulkan-git
(this can be installed by modifying the upstream url to this https://github.com/styler00dollar/VapourSynth-RIFE-ncnn-Vulkan)

and put https://github.com/hooke007/MPV_lazy/blob/main/k7sfunc.py
somewhere in PYTHONPATH

Then try to fast-forward, you will achieve the malloc(): unsorted double linked list corrupted error

Expected behavior

To not have such error when dragging forwards and backwards in time.

Actual behavior
 (+) Video --vid=1 (*) (vp9 1280x720 29.970fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[vapoursynth] Frame requested during init! This is unsupported.
[vapoursynth] Returning black dummy frame with 0 duration.
[0 AMD Radeon RX 7900 XT]  queueC=1[4]  queueG=0[1]  queueT=2[2]
[0 AMD Radeon RX 7900 XT]  bugsbn1=0  bugbilz=0  bugcopc=0  bugihfa=0
[0 AMD Radeon RX 7900 XT]  fp16-p/s/a=1/1/1  int8-p/s/a=1/1/1
[0 AMD Radeon RX 7900 XT]  subgroup=64  basic=1  vote=1  ballot=1  shuffle=1
[1 AMD Radeon RX 7900 XT]  queueC=1[4]  queueG=0[1]  queueT=2[2]
[1 AMD Radeon RX 7900 XT]  bugsbn1=0  bugbilz=0  bugcopc=0  bugihfa=0
[1 AMD Radeon RX 7900 XT]  fp16-p/s/a=1/1/1  int8-p/s/a=1/1/1
[1 AMD Radeon RX 7900 XT]  subgroup=64  basic=1  vote=1  ballot=1  shuffle=1
AO: [pipewire] 48000Hz stereo 2ch floatp
VO: [gpu] 1280x720 yuv420p
corrupted double-linked list A-V:  0.001
[1]    1637702 IOT instruction (core dumped)

ORR

 (+) Video --vid=1 (*) (vp9 1280x720 29.970fps)
 (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[vapoursynth] Frame requested during init! This is unsupported.
[vapoursynth] Returning black dummy frame with 0 duration.
[0 AMD Radeon RX 7900 XT]  queueC=1[4]  queueG=0[1]  queueT=2[2]
[0 AMD Radeon RX 7900 XT]  bugsbn1=0  bugbilz=0  bugcopc=0  bugihfa=0
[0 AMD Radeon RX 7900 XT]  fp16-p/s/a=1/1/1  int8-p/s/a=1/1/1
[0 AMD Radeon RX 7900 XT]  subgroup=64  basic=1  vote=1  ballot=1  shuffle=1
[1 AMD Radeon RX 7900 XT]  queueC=1[4]  queueG=0[1]  queueT=2[2]
[1 AMD Radeon RX 7900 XT]  bugsbn1=0  bugbilz=0  bugcopc=0  bugihfa=0
[1 AMD Radeon RX 7900 XT]  fp16-p/s/a=1/1/1  int8-p/s/a=1/1/1
[1 AMD Radeon RX 7900 XT]  subgroup=64  basic=1  vote=1  ballot=1  shuffle=1
AO: [pipewire] 48000Hz stereo 2ch floatp
VO: [gpu] 1280x720 yuv420p
malloc(): unsorted double linked list corrupted
[1]    1724832 IOT instruction (core dumped)
Log file

https://0x0.st/HJcu.txt

Sample files

I believe this can be reproduced quite easily by any file.

Additional Information

This could also be the fault of VapourSynth-RIFE-ncnn-Vulkan, since when doing other frame interpretation technology, such as MVT-STD, works fine.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reproduction command using mpv 0.36.0, the linked rife.vpy script, and the provided log file. Reproduce the crash while seeking, then isolate whether it occurs in mpv's VapourSynth integration or in VapourSynth-RIFE-ncnn-Vulkan; done means identifying a project-owned cause and a reliable fix or a confirmed external cause.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.