summaryrefslogtreecommitdiffstats
path: root/player/javascript
diff options
context:
space:
mode:
authorAvi Halachmi (:avih) <avihpit@yahoo.com>2019-12-23 17:10:02 +0200
committerAvi Halachmi (:avih) <avihpit@yahoo.com>2019-12-23 17:52:34 +0200
commit9f2fda7d8530b5ce1e32dbaa7578c5d45cbf7a3d (patch)
tree6c673962eb99ceb062c0d4df381604022616139c /player/javascript
parent5a74bf5f95b2e94abd2d6aed1a2f82236281f51b (diff)
downloadmpv-9f2fda7d8530b5ce1e32dbaa7578c5d45cbf7a3d.tar.bz2
mpv-9f2fda7d8530b5ce1e32dbaa7578c5d45cbf7a3d.tar.xz
js: support mp.create_osd_overlay (match 07287262)
The legacy mp.set_osd_ass(...) is still supported (but also still undocumented) as a wrapper for the new mp.create_osd_overlay(...).
Diffstat (limited to 'player/javascript')
-rw-r--r--player/javascript/defaults.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/player/javascript/defaults.js b/player/javascript/defaults.js
index 2ae3fe74d0..18edab35b7 100644
--- a/player/javascript/defaults.js
+++ b/player/javascript/defaults.js
@@ -192,6 +192,59 @@ mp.utils.shared_script_property_set = shared_script_property_set;
mp.utils.shared_script_property_get = shared_script_property_get;
mp.utils.shared_script_property_observe = shared_script_property_observe;
+// osd-ass
+var next_assid = 1;
+mp.create_osd_overlay = function create_osd_overlay(format) {
+ return {
+ format: format || "ass-events",
+ id: next_assid++,
+ data: "",
+ res_x: 0,
+ res_y: 720,
+ z: 0,
+
+ update: function ass_update() {
+ mp.command_native({
+ name: "osd-overlay",
+ format: this.format,
+ id: this.id,
+ data: this.data,
+ res_x: Math.round(this.res_x),
+ res_y: Math.round(this.res_y),
+ z: this.z,
+ });
+ return mp.last_error() ? undefined : true;
+ },
+
+ remove: function ass_remove() {
+ mp.command_native({
+ name: "osd-overlay",
+ id: this.id,
+ format: "none",
+ data: "",
+ });
+ return mp.last_error() ? undefined : true;
+ },
+ };
+}
+
+// osd-ass legacy API
+mp.set_osd_ass = function set_osd_ass(res_x, res_y, data) {
+ if (!mp._legacy_overlay)
+ mp._legacy_overlay = mp.create_osd_overlay("ass-events");
+ mp._legacy_overlay.res_x = res_x;
+ mp._legacy_overlay.res_y = res_y;
+ mp._legacy_overlay.data = data;
+ return mp._legacy_overlay.update();
+}
+
+mp.get_osd_size = function get_osd_size() {
+ var w = mp.get_property_number("osd-width", 0),
+ h = mp.get_property_number("osd-height", 0),
+ par = mp.get_property_number("osd-par", 0);
+ return {width: w, height: h, aspect: w / (h || 1) / (par || 1)};
+}
+
/**********************************************************************
* key bindings
*********************************************************************/