From 632a1ed558b115b0e741b1cfea2650ca366fc59a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B2=B3=E5=8B=87?= Date: Tue, 8 Feb 2022 20:18:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=EF=BC=9Ayuv-canvas=20v1.2.9=20webgl=20?= =?UTF-8?q?=E5=9D=90=E6=A0=87=E8=AE=A1=E7=AE=97=E9=94=99=E8=AF=AF=EF=BC=88?= =?UTF-8?q?y=20=E5=8F=96=E5=8F=8D=EF=BC=8C=E4=BB=A5=E5=8F=8Acanvas=20?= =?UTF-8?q?=E7=BB=BF=E5=B9=95=E7=8E=B0=E8=B1=A1=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/imageplayer/Screen.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/imageplayer/Screen.js b/src/imageplayer/Screen.js index bd9eb02..ef40d44 100644 --- a/src/imageplayer/Screen.js +++ b/src/imageplayer/Screen.js @@ -20,7 +20,7 @@ export default class Screen extends BaseClass { } setRender(canvas) { - this.render = yuvCanvas.attach(canvas || this.canvas) + this.render = yuvCanvas.attach(canvas || this.canvas, { webGL: false }) } clear() { @@ -28,12 +28,12 @@ export default class Screen extends BaseClass { } drawFrame(data) { let st = Date.now() - let { buf_y, buf_u, buf_v, width, height, stride_y, stride_u, stride_v} = data + let { buf_y, buf_u, buf_v, width, height, stride_y, stride_u, stride_v } = data let y, u, v, format, frameDisplay let width_y = width let height_y = height let width_u = width_y / 2 - let height_u = height_y /2 + let height_u = height_y / 2 y = { bytes: buf_y, stride: stride_y From 345ec8d5fc081893368852624c1e523cb068c76c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B2=B3=E5=8B=87?= Date: Tue, 8 Feb 2022 20:52:31 +0800 Subject: [PATCH 2/2] format code --- src/Player.js | 3 +++ src/imageplayer/Screen.js | 3 ++- src/utils/PlayerUtil.js | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Player.js b/src/Player.js index 1ea54f6..3199862 100644 --- a/src/Player.js +++ b/src/Player.js @@ -60,6 +60,7 @@ class Player extends BaseClass { autoPlay = true duration = 0 tsNumber = 0 + useWebGl = false /** * @property {string} sourceURL - The url of the video to play * @property {string} source - The url of the video to play @@ -85,6 +86,7 @@ class Player extends BaseClass { * @property {AlertError} alertError - The alert info when error happens * @property {Worker} httpWorker - set User's web worker * @property {Function} afterLoadPlaylist - To handle operations after playlist is loaded + * @property {Boolean} useWebGl - If use yuv-canvas webGl to drawFrame */ constructor (el, options = {}) { super() @@ -106,6 +108,7 @@ class Player extends BaseClass { this.startTime = options.startTime === undefined ? this.startTime : options.startTime this.originStartTime = this.startTime this.playbackRate = options.playbackRate === undefined ? this.playbackRate : options.playbackRate + this.useWebGl = options.useWebGl === undefined ? this.useWebGl : options.useWebGl } setAlertError () { this.options.alertError = this.alertError = AlertError.getInstance({ diff --git a/src/imageplayer/Screen.js b/src/imageplayer/Screen.js index ef40d44..55dcbaf 100644 --- a/src/imageplayer/Screen.js +++ b/src/imageplayer/Screen.js @@ -20,7 +20,8 @@ export default class Screen extends BaseClass { } setRender(canvas) { - this.render = yuvCanvas.attach(canvas || this.canvas, { webGL: false }) + const realCanvas = canvas || this.canvas + this.render = yuvCanvas.attach(realCanvas, { webGL: realCanvas.useWebGl }) } clear() { diff --git a/src/utils/PlayerUtil.js b/src/utils/PlayerUtil.js index 15efe05..1b7033c 100644 --- a/src/utils/PlayerUtil.js +++ b/src/utils/PlayerUtil.js @@ -49,6 +49,7 @@ export default class PlayerUtil { $ele.classList.add(cssName.screenCanvas) $ele.width = player.options.screenWidth || player.screenWidth $ele.height = player.options.screenHeight || player.screenHeight + $ele.useWebGl = player.options.useWebGl || player.useWebGl return $ele }