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

svt-vp9 / svt-hevc encoder #2152

Open
totaam opened this issue Feb 18, 2019 · 9 comments
Open

svt-vp9 / svt-hevc encoder #2152

totaam opened this issue Feb 18, 2019 · 9 comments
Labels
Milestone

Comments

@totaam
Copy link
Collaborator

totaam commented Feb 18, 2019

Issue migrated from trac ticket # 2152

component: encodings | priority: major

2019-02-18 02:37:30: antoine created the issue


The SVT-VP9 Encoder development is a work-in-progress targeting performance levels applicable to both VOD and Live encoding/transcoding video applications.

It's a lot faster than the libvpx reference implementation (#2132).
See SVT-VP9 Is Intel's Latest Open-Source Video Encoder Yielding High Performance VP9
Encoding tracker ticket: #1793

@totaam
Copy link
Collaborator Author

totaam commented Mar 21, 2019

@totaam
Copy link
Collaborator Author

totaam commented Apr 7, 2019

2019-04-07 07:22:52: antoine uploaded file svt-vp9.patch (32.5 KiB)

stub encoder

@totaam
Copy link
Collaborator Author

totaam commented Apr 8, 2019

2019-04-08 11:09:37: antoine uploaded file svt-vp9-v2.patch (36.6 KiB)

updated patch

@totaam
Copy link
Collaborator Author

totaam commented Apr 8, 2019

The patch above actually does compress something now, but there is too much buffering happening inside the svt-vp9 library: SVT-VP9 issue 26: low latency usage.

@totaam
Copy link
Collaborator Author

totaam commented Apr 9, 2019

With the latest patch (see below), I can at least try to use it:

LD_LIBRARY_PATH=/usr/local/lib/ gdb --args /usr/bin/python3 /usr/bin/xpra \
    start --no-daemon :20 --start=glxgears --video-encoders=svt_vp9

Since svt uses threads and signals, we need to tell gdb to ignore SIG32:

handle SIG32 pass nostop noprint

Then, we can attach a client:

xpra attach --no-mmap --encodings="rgb,vp9"

The server crashes pretty quickly:

python3: /SVT-VP9/Source/Lib/VPX/vp9_loopfilter.c:871: vp9_adjust_mask: Assertion `!(lfm->above_y[TX_16X16] & lfm->above_y[TX_8X8])' failed.
Thread 117 "python3" received signal SIGABRT, Aborted.
(gdb) bt
#0  0x00007ffff78c557f in raise () at /lib64/libc.so.6
#1  0x00007ffff78af895 in abort () at /lib64/libc.so.6
#2  0x00007ffff78af769 in _nl_load_domain.cold.0 () at /lib64/libc.so.6
#3  0x00007ffff78bda26 in .annobin_assert.c_end () at /lib64/libc.so.6
#4  0x00007fffe83b97a5 in enc_dec_kernel () at /usr/local/lib/libSvtVp9Enc.so.1
#5  0x00007ffff7bea58e in start_thread () at /lib64/libpthread.so.0
#6  0x00007ffff798a683 in clone () at /lib64/libc.so.6

We can't turn off threading, and I have no idea what causes this corruption..

@totaam
Copy link
Collaborator Author

totaam commented Apr 9, 2019

2019-04-09 12:13:07: antoine uploaded file svt-vp9-v3.patch (36.6 KiB)

patch with image leak

@totaam
Copy link
Collaborator Author

totaam commented Apr 9, 2019

Got a different backtrace after forcing the image wrapper to freeze the pixel data before calling the encoder (just adding image.freeze() in compress_image()):

Thread 99 "python3" received signal SIGSEGV, Segmentation fault.
bt
#0  0x00007fffe83f903b in tokenize_b.lto_priv () at /usr/local/lib/libSvtVp9Enc.so.1
#1  0x00007fffe843168f in entropy_coding_kernel () at /usr/local/lib/libSvtVp9Enc.so.1
#2  0x00007ffff7bea58e in start_thread () at /lib64/libpthread.so.0
#3  0x00007ffff798a683 in clone () at /lib64/libc.so.6

@totaam
Copy link
Collaborator Author

totaam commented May 30, 2019

As per the answer here: low latency usage, this isn't ready yet.

@totaam
Copy link
Collaborator Author

totaam commented Oct 4, 2020

Still not ready.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant