Commit Graph

428 Commits

Author SHA1 Message Date
Dmitry Lyzo
2fd9b73de6 Stop oneshot render on dispose
Cherry-picked from: 9eac714a26
2022-04-25 20:29:39 +03:00
Vasily
dda54812f3 Implement splitting by 3x3 grid
Cherry-picked from: efed8543c1
2022-04-25 20:29:39 +03:00
Dmitry Lyzo
b63167f141 Fix render after rewind
Cherry-picked from: 0e9e7929dd
2022-04-25 20:29:39 +03:00
Vasily
77dd505810 Adapt JS side to renderBlend potentially returning a list of images
Cherry-picked from: c08fd1d7ef
2022-04-25 20:29:39 +03:00
Teranode
1549a2c2dd lastRendered needs to be a variable
Cherry-picked from: c66e7b1841
2022-04-25 20:29:39 +03:00
Vasily
fa696138bb Restructure renderBlend so it can return multiple pieces; JS side not ready yet
Cherry-picked from: 0cc2bf8556

[Fix build]
Cherry-picked from: efabc64ff7

[Fix skipping images when rendering a part]
Cherry-picked from: 707a398fa8
2022-04-25 20:29:39 +03:00
Vasily
7f9e161556 Reduce spam in logs when worker is not yet initialized
Cherry-picked from: 595d0e20e5
2022-04-25 20:29:39 +03:00
Vasily
b2e920da55 Change binding part of BlendRenderResult
Cherry-picked from: 8bc0001843
2022-04-25 20:29:39 +03:00
Vasily
7d1608db71 Make resetRenderAheadCache public
Also add cleaning past events before requesting new if no event is currently shown

Cherry-picked from: 7eefe74ca2
2022-04-25 20:29:39 +03:00
Vasily
605d4cd6ef Do not reset prerender cache when resize is not actually a resize
Cherry-picked from: 0722559b28
2022-04-25 20:29:39 +03:00
Vasily
4cf2b47a0f Handle resize better - leave leftmost items be upon resizing
Cherry-picked from: 93f4d0f4a7
2022-04-25 20:29:39 +03:00
Vasily
2f9357dd09 Fix prerender cache not clearing upon track switch
Also prepare to handle resize more gracefully

Cherry-picked from: cc9575cd51
2022-04-25 20:29:39 +03:00
Vasily
cc91cc4ff5 Handle resizing more efficiently
[Handle resizing more efficiently - if video changed less than 20% keep using old size]
Cherry-picked from: 825c999159

[Add option to control how much size may vary until the prerender cache is cleared]
Cherry-picked from: 5256b63649
2022-04-25 20:29:38 +03:00
Vasily
17f303d87e Try fix holes in rendering
Cherry-picked from: a1666065e4
2022-04-25 20:29:38 +03:00
Vasily
2ed7b0016c Make octopus.setDropAnimations(true) mean something
Cherry-picked from: 971a997951
2022-04-25 20:29:38 +03:00
Vasily
b5c2154959 Add option to client-facing API to drop all animations, pass it down to C++ level
Cherry-picked from: a66e79768b
2022-04-25 20:29:38 +03:00
Vasily
e6732ddb30 Change SubtitleOctopus class API - added a few methods to be used in lite mode
Also marked some methods as const

Cherry-picked from: d3bc4724a0

[Fix build and warnings]
Cherry-picked from: 90d48486f1
2022-04-25 20:29:38 +03:00
Vasily
918652604d Reduce blinking of subs when in lite mode
Cherry-picked from: a8d670eb09
2022-04-25 20:29:38 +03:00
Vasily
7e7fe8ad06 Try to fix animations flickering
Cherry-picked from: e1604cb133
2022-04-25 20:29:38 +03:00
Vasily
8464e8ec91 Fix some issues caused by moving to C++ bindings
Cherry-picked from: 67947f395d
2022-04-25 20:29:38 +03:00
Vasily
190992f683 Use properly bound APIs
Cherry-picked from: 88d2df4255

[Use correct function to get event times]
Cherry-picked from: ecd47dd25f
2022-04-25 20:29:38 +03:00
Vasily
faa32d5d97 Expose findEventStopTimes and findNextEventStart properly
Cherry-picked from: cea2dc9dee
2022-04-25 20:29:38 +03:00
Vasily
38eae79b13 Event time findings are now proper members (but not exported yet)
Cherry-picked from: 7fc34cf587

[No longer need to export functions via makefile]
Cherry-picked from: bd8bcab764
2022-04-25 20:29:38 +03:00
Vasily
eacc5a040a Add detection of animated tags
part of [Less zealous logging]
Cherry-picked from: 6980debc47

part of [Rework buffer into C++ class]
Cherry-picked from: 6d3a5c731f
2022-04-25 20:29:38 +03:00
Vasily
8401f88e80 Reduce logging
part of [Less zealous logging]
Cherry-picked from: 6980debc47
2022-04-25 20:29:38 +03:00
Dmitry Lyzo
569b5be7c3 Merge branch 'new/refactor-buffer' into new-master
Rework buffer into C++ class
2022-04-25 20:29:37 +03:00
Vasily
5a064049ee * Start rendering only when video size is determined (e.g. video loaded or resized)
* Add bogus events covering timeline where there is no subtitles displayed
* Fix seeking support

Cherry-picked from: 21c84cc803
2022-04-25 20:29:37 +03:00
Vasily
33f982fed5 Rework buffer into C++ class
Cherry-picked from: 6d3a5c731f

Add 'ReusableBuffer::capacity' from [Restructure renderBlend so it can return multiple pieces; JS side not ready yet]
Cherry-picked from: 0cc2bf8556
2022-04-25 20:29:37 +03:00
Vasily
e82c550beb Trying to handle seek better
Cherry-picked from: 90910bdef6
2022-04-25 20:29:37 +03:00
Vasily
1e4f31310f Add lots of debug logging, limit render fps of events
Cherry-picked from: 4e4250204d
2022-04-25 20:29:37 +03:00
Vasily
060903ba8b Reset render cache when target size changes
Cherry-picked from: 5430cc9823
2022-04-25 20:29:37 +03:00
Vasily
315f2950b2 Change return type of renderBlend()
Cherry-picked from: 65fbfecfce
2022-04-25 20:29:37 +03:00
Vasily
601567c0e2 Begin implementing render on demand
Cherry-picked from: 848a686d8c

[Fix oneshot render]
Cherry-picked from: 9dd6eb2411
2022-04-25 20:29:37 +03:00
Oneric
a89dcd446d Bump libass to newest master
Relevant improvements:
 - Fix a violation of FreeType API which caused issues
   in newer FreeType version (currently only on MS Windows)
 - Fix a rare and minor memory leak
 - Higher quality outline blending
 - Significantly faster hash-function (wyhash)
 - Some RTL- and BiDi-compatibility fixes
 - Compatibility fix for empty clips
 - Support for non-Unicode fonts, which depends on iconv
   (with emscripten’s built-in iconv probably only SHIFT-JIS)
2022-03-28 00:08:38 +02:00
Oneric
1829aaaf4a Bump FriBidi 2022-03-28 00:07:12 +02:00
Oneric
83afbf195b Bump expat
New releases contain documented security fixes
2022-03-28 00:02:30 +02:00
Thiago França da Silva
449669aec8 editorconfig: fix syntax error 2022-03-22 13:57:47 -03:00
Oneric
ba9b770659 ci/gha: limit push events to master and ci branch
To avoid superfluous runs from PRs using branches in the main repo.
2022-03-21 22:04:58 +01:00
Vasily
c7cb74bbb7 Allow to compile CPP-file alone
Serves no purposes but to quickly check
for compiler warnings and errors.

[part of] Rework buffer into C++ class
Cherry-picked from: 6d3a5c731f
2022-03-21 21:46:55 +01:00
Thiago França da Silva
4f768a5747 ci/gha: add workflow to cancel previous runs 2022-03-21 20:45:28 +01:00
Thiago França da Silva
fd1dc8fb3a add .editorconfig 2022-03-21 20:45:28 +01:00
Thiago França da Silva
c9c0f86a5c update package.json with new links 2022-03-13 18:45:16 -03:00
Thiago França da Silva
dd9927ec89 fix brotli repo url in .gitmodules 2022-03-13 18:45:16 -03:00
Thiago França da Silva
0b75fa2dbc
Merge pull request #122 from TFSThiagoBR98/fix-77
Fix Events and Styles String Mutation, closes #77
2022-03-13 18:15:14 -03:00
Thiago França da Silva
3102398eea Add webidl_binder patches for future reference 2022-03-12 22:15:46 -03:00
Thiago França da Silva
af1dc9ac94 WebIDL: Implement Owner Extended Attribute, fix #77
Currently the ensureCache create a temporary pointer that will
transfer the value to the WASM/C part and recycle it with to use in the
next value, but since the libass struct pointers are owned by the
library, the pointers can't be recycled or freed or can lead into
an undefined behavior.

This configure the binder to tranfer the pointer ownership instead of
recycle it.

To avoid creating complex code, I decided to fix it in the webidl
binder.
2022-03-12 21:57:11 -03:00
Thiago França da Silva
d1072f35d5 Refactor getStyles and getEvents
Add new function fetchFromWorker with callback to allow fetch the response from worker
Add callbacks to getStyles and getEvents functions
2022-03-11 11:36:50 -03:00
Oneric
882fa5aa9c c++: prefix log messages with jso
This makes it easier to pick them out in the browser console
and is less confusing then prefixing with libass as some did before.
2022-02-22 00:27:19 +01:00
Dmitry Lyzo
dfada30df1 c++: distinguish errors from other logs
Errors and normal logs are normaly logged differently in js and also
displayed differently in browser consoles. For this to work for our
logs from WASM, we must output errors to stderr and otherwise stdout.
2022-02-22 00:27:19 +01:00
Dmitry Lyzo
e6eee9ea74 c++: add missing newline in printf message 2022-02-22 00:27:19 +01:00