export function scaleTemplate(value, scale) { if (typeof value === 'number') return Math.round(value * scale); if (typeof value === 'string' && value.match(/^\d+(px)?$/)) return Math.round(parseInt(value, 10) * scale); return value; } // compute overlay x,y from overlay width/height, extra positioning and video size export function computeXY(overlayW, overlayH, extra = {}, vw = 0, vh = 0) { const padX = typeof extra.paddingX === 'number' ? extra.paddingX : 5; const padY = typeof extra.paddingY === 'number' ? extra.paddingY : 5; const posX = extra.positionX || 'center'; const posY = extra.positionY || 'center'; let x = 0, y = 0; if (posX === 'left' || posX === 'top') x = Math.round((padX / 100) * vw); else if (posX === 'right' || posX === 'bottom') x = Math.round(vw - overlayW - (padX / 100) * vw); else x = Math.round((vw - overlayW) / 2); if (posY === 'top') y = Math.round((padY / 100) * vh); else if (posY === 'bottom') y = Math.round(vh - overlayH - (padY / 100) * vh); else y = Math.round((vh - overlayH) / 2); return { x, y }; }