update vvenc & vvdec executables

This commit is contained in:
MartinEesmaa 2022-12-03 15:30:04 +11:00
parent f7c353138a
commit 1609148f76
15 changed files with 62 additions and 44 deletions

BIN
Android/AndroidVVC.7z Normal file

Binary file not shown.

13
Android/AndroidVVC.sha256 Normal file
View File

@ -0,0 +1,13 @@
91b1f6715e655940eec81330a36eb394853e9b5bf2a662347675386b61ff9a36 AndroidVVC.7z
dcd3055694caa53aedc84bb8d6150dbabea0ad15fdc895584754c8b4b5b426ea arm64/vvdecapp
ea1ebba2d78f8509367114538b43b353bffb5786564db7336d62ad8d95990da1 arm64/vvencapp
c1e14aa1d1b0bdbb1630de95be301dab28359252d2e2031d5aadc919fadea178 arm64/vvencFFapp
c9b790b55ec51dd99dad12cb86f80b196251575b10a37d739ec3558255f9cff5 arm64/vvencinterfacetest
1c9016ae7fe0025cbdb32044d4c2dc24c117901185ac41174f5d966e881eae4a arm64/vvenclibtest
5eb726acba5e9df070415cd12cf6f03d92d695b69985a418adc48d131e6e9c7a armeabi/vvdecapp
a2a0dcc92df66fc0178713cf859ea89273a8c241d0d1da3db48d51dda34378e4 x86/vvdecapp
a83232d4d8bf3178e3c8f941566d27e2c193b9c005d24082a0dedc24dbbc936c x86_64/vvdecapp
8a2ff2afc414adb155e865eb8f56a8aee986cee618ee5f00f5d745ca60ea929c x86_64/vvencapp
aaae1ccd6f7091b133d1609964da7d393631a0b0c25aab1a05e2aac08c63b0b8 x86_64/vvencFFapp
ff4308ff6b8f6a81922bd81d5f3ca3df05b9c43e4561eeefb003643217a6fa04 x86_64/vvencinterfacetest
e45fd9b518afa76a9389b80ee6f07228f41c3a6aaa850499ce8f3945ec1e2c9c x86_64/vvenclibtest

Binary file not shown.

View File

@ -1,4 +0,0 @@
b7711820c2ff87d3f937a34442b8e238ca4e9d4e5ef4465902034a28e3163071 arm64/vvdecapp
61870450a0a8ccc661ac778bcc4f3ca131deeadc0ab4e2a552e1e8b74bd4d06c armeabi/vvdecapp
186a6f8eb31d259932604d67ef84127b70460632c51907aa9f83e50965435e21 x86/vvdecapp
f86ebbfa8b5f2f584fe78119266e4f1f0220d46f044ad2621cf53d94e095c29b x86_64/vvdecapp

View File

@ -12,16 +12,26 @@ arm64 - API 21 (64-bit phones only)
armeabi - API 19 (32-bit phones)
x86 & x86_64 - API 21 (tablets only)
x86 - API 21 (32-bit tablets only)
x86_64 - API 21 (64-bit tablets only)
TIP: You can install my built applications:
```
chmod +x vvdecapp uvg266
cp vvdecapp uvg266 $PREFIX/bin
chmod +x vvdecapp uvg266 vvencapp
cp vvencapp vvdecapp uvg266 $PREFIX/bin
```
### uvg266 encoder
### vvencapp encoder (Fraunhofer HHI)
Screenshot (tested my phone):
![vvencapptermux](vvencapptermux.png)
Please note, that supports 64-bit programs only.
### uvg266 encoder (Scalable video encoder)
Screenshot:

BIN
Android/vvencapptermux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

View File

@ -1,6 +1,6 @@
fbc431b44c20930511de9499ff22db5c7a319a03f98cca24c6451d33b4f79dfb LinuxVVC.7z
2abccc75551d3d30263aa3f768e9c8e57fb8f557ce5c9ad67cc5c335bdc5aa8e vvdecapp
ac817b87f498a92f8f12108259e233b563fac90bf0593d9554dec4b228ebea37 vvencapp
9e8ba291a9be6aaa235ea042e69ccef1112cc0da6d6042504c0d1570c17bdf17 vvencFFapp
c794439f831d5419372ec6001613541f9fa0bc16cf3834820ffeb7292543e141 vvencinterfacetest
dce2b99e60b24e1b08e7475ce74469b0646be98e6e0595f903178001bee8bb82 vvenclibtest
9876895e3a711efefb85df68b8ee48ef815f1a1c0b940f65d2c98d1f8ae2a4ba LinuxVVC.7z
6bcf00ea11275d96ff81b68cb94d9f53ed7393f17531108521d597a78593e25d vvdecapp
af48aaff989f79006a39c0fa1bdf99e1bce1a6ec4ef91501d12771777b755898 vvencapp
d95708aa1ade4dc3da626af42be2993d49a552ee02e4b5520fb72899f9203404 vvencFFapp
4552628cf42f9414fc3aa696ce12b1adb4cc7cb0714178c179104e12228153af vvencinterfacetest
b5feaf2adf08e771566fc24f0a7f2e316f99b17038bb358618450c125e8237a2 vvenclibtest

2
MPV.md
View File

@ -85,7 +85,7 @@ java --version
After installing the packages on Linux, clone mpv-android-vvc repository:
```
cd ~
cd
git clone https://github.com/MartinEesmaa/mpv-android-vvc
cd mpv-android-vvc/buildscripts
```

View File

@ -318,9 +318,9 @@ NOTE: It is acceptable only for encoding to .h266, .266 and .vvc file container.
Note to 10-bit YUV users: If you encode YUV 10 bit to VVC file, add `-c yuv420_10` before you type the ending word of -o EXTREME.266.
Note to 8-bit Y4M users: It is only from input video (8-bit) to Y4M (8 bit)
Note to 8-bit Y4M users: It's only from input video (8-bit) to Y4M (8 bit)
After VVEnc, you can play on my custom VVCEasy build of [FFmpeg](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md), [VLC](https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN) or [MPV](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
After encoding VVC, you can play using my custom VVCEasy build of [FFmpeg](https://github.com/MartinEesmaa/VVCEasy/blob/master/FFMPEGVVC.md), [VLC](https://github.com/MartinEesmaa/VVCEasy/tree/master/INSTALLVLCPLUGIN) or [MPV](https://github.com/MartinEesmaa/VVCEasy/blob/master/MPV.md).
Drag your video file of .h266, .266 or .vvc to play.
If you are still not happy about VVC (known as Versatile Video Coding), that you think is too hard to encode and decode, use AOMEDIA ONE (AV1) that is recommended for most users to easily play VLC Media Player and others. VVC should need played on VLC Media Player in future.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1 +1 @@
"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+"\n");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}CreateVVdeC(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){Module["__embind_initialize_bindings"]();pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};
"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8")+"//# sourceURL="+f)},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+"\n");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;for(const handler of e.data.handlers){Module[handler]=function(){postMessage({cmd:"callHandler",handler:handler,args:[...arguments]})}}Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}CreateVVdeC(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){Module["__embind_initialize_bindings"]();pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};

Binary file not shown.

View File

@ -1,6 +1,6 @@
f4ff0720a2b0ad808fa736022df429b3f04233160d83f983e82238e9f674fe7a vvdecapp.exe
4b77579a49282e3ab691b808f26b4e12f96d4479db1a8036f4eb5ac16223e381 vvencapp.exe
554a52b623f5c026e9f8614c984e629cc2047230e88eb0d6a1ec058d004ff9e8 vvencFFapp.exe
eff47340586f7ccf230356123ee5bc72b7d88fe1463b346c12e27768c955f633 vvencinterfacetest.exe
552cf04755cc16e08d45534cb8cb1a333c188a0aee3e09d5f8ebe5de101c368a vvenclibtest.exe
147a88b2b56908ba42d66e3ffe77b2c8f85d01532ce55381e07040a55814562d WindowsVVC.7z
568934a68e3b80e80fe06b13572d584ca7d1f1da70c116893d71ecb6363c32a5 vvdecapp.exe
4dc777eed96846c9ff91b1beb8c72960553011dd4567ad30c3c59d57dcae7ea2 vvencapp.exe
a0dfc5a2428a751c72541b3ded70e6c1e50aa8211201f77406b56090248a3215 vvencFFapp.exe
6907077a2cf1a7acfabca9e7a549259bd0e1871461f80925b76bfa82b14b9bb3 vvencinterfacetest.exe
092fd3fe6b5752591e6f82047372024eaa5ff6a7b29d54b96c82db95046e818f vvenclibtest.exe
7f374e93eca583fe445f705dfe8bb070a143467fefb492639e08d73e12d20301 WindowsVVC.7z