-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
37 lines (28 loc) · 1.38 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
- Do not use C++ streams (iostream,fstream). They are very slow.
- use cppfront
TODO:
- add experimental disclaimer with possibly not working codecs
and all that
- Add basic tests
- Add fuzzing
- Test with ASan/UBSan/all that stuff
- static Analysis. Cppcheck, pvs studio
- Compile with multiple compilers
- Randomly generated inputs
- Using many different encoders.
- Lossless. Check PSNR.
- This will test the encode/decode loop logic.
- Find suite of inputs I can test on. Maybe look into ffmpeg's
test suite.
- Automatically detect uncompressed input.
- Or at least very large videos and display a warning or something.
- Look into optimizing how allocations are done in various parts of the code.
- Maybe look for an allocator that can detect leaks and double frees and all that
kind of stuff.
- Clang AST transformation to, for example, make sure that if you call a function
like avcodec_receive_frame(), you have to check its return value?
- Test functions like concatenations that they ACTUALLY produce valid bitstreams.
Find some stuff for it and do like randomized decoder loop checking. Not just
check one single time in mpv and it "seems to have worked".
- make sure windows builds are compiled with clang.
- and use custom optimized memcpy/memchr,malloc (mimalloc perhaps, or NUMAlloc )