livedesk 0.1.20 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -53,14 +53,14 @@ const REMOTE_FRAME_MODE_PROFILES = Object.freeze({
53
53
  }),
54
54
  'mode2-lz4': Object.freeze({
55
55
  mode: 'mode2-lz4',
56
- label: 'Mode 2 - Raw/Tiles LZ4',
56
+ label: 'Mode 2 - Raw BGRA LZ4',
57
57
  transport: 'ws-binary',
58
- encoding: 'image-delta',
59
- codec: 'bgra-tiles',
58
+ encoding: 'image-raw',
59
+ codec: 'bgra32',
60
60
  compression: 'lz4',
61
- profile: 'mode2-lz4-tiles-v1',
61
+ profile: 'mode2-lz4-bgra-v1',
62
62
  modeVersion: 2,
63
- implemented: false
63
+ implemented: true
64
64
  }),
65
65
  'mode3-h264-hw': Object.freeze({
66
66
  mode: 'mode3-h264-hw',
@@ -71,7 +71,7 @@ const REMOTE_FRAME_MODE_PROFILES = Object.freeze({
71
71
  compression: 'video/h264',
72
72
  profile: 'mode3-h264-hardware-v1',
73
73
  modeVersion: 3,
74
- implemented: false
74
+ implemented: true
75
75
  })
76
76
  });
77
77
  const REMOTE_FRAME_MODE_ALIASES = new Map([
@@ -2601,6 +2601,16 @@ export function createRemoteHub(options = {}) {
2601
2601
  encoding: transfer.encoding,
2602
2602
  codec: transfer.codec,
2603
2603
  compression: transfer.compression || mimeType,
2604
+ pixelFormat: safeString(message.pixelFormat, 40),
2605
+ bytesPerPixel: Number.isFinite(Number(message.bytesPerPixel)) ? Number(message.bytesPerPixel) : 0,
2606
+ uncompressedByteLength: Number.isFinite(Number(message.uncompressedByteLength)) ? Number(message.uncompressedByteLength) : 0,
2607
+ h264Format: safeString(message.h264Format, 40),
2608
+ isKeyFrame: message.isKeyFrame === true || safeString(message.chunkType, 20).toLowerCase() === 'key',
2609
+ chunkType: safeString(message.chunkType, 20),
2610
+ timestampUs: Number.isFinite(Number(message.timestampUs)) ? Number(message.timestampUs) : 0,
2611
+ durationUs: Number.isFinite(Number(message.durationUs)) ? Number(message.durationUs) : 0,
2612
+ hardwareEncoder: safeString(message.hardwareEncoder, 80),
2613
+ platformProfile: safeString(message.platformProfile, 80),
2604
2614
  transferProtocol: transfer.transferProtocol,
2605
2615
  transferProtocolVersion: transfer.transferProtocolVersion,
2606
2616
  handshake: transfer.handshake,
@@ -2736,6 +2746,16 @@ export function createRemoteHub(options = {}) {
2736
2746
  encoding: transfer.encoding,
2737
2747
  codec: transfer.codec,
2738
2748
  compression: transfer.compression || mimeType,
2749
+ pixelFormat: safeString(message.pixelFormat, 40),
2750
+ bytesPerPixel: Number.isFinite(Number(message.bytesPerPixel)) ? Number(message.bytesPerPixel) : 0,
2751
+ uncompressedByteLength: Number.isFinite(Number(message.uncompressedByteLength)) ? Number(message.uncompressedByteLength) : 0,
2752
+ h264Format: safeString(message.h264Format, 40),
2753
+ isKeyFrame: message.isKeyFrame === true || safeString(message.chunkType, 20).toLowerCase() === 'key',
2754
+ chunkType: safeString(message.chunkType, 20),
2755
+ timestampUs: Number.isFinite(Number(message.timestampUs)) ? Number(message.timestampUs) : 0,
2756
+ durationUs: Number.isFinite(Number(message.durationUs)) ? Number(message.durationUs) : 0,
2757
+ hardwareEncoder: safeString(message.hardwareEncoder, 80),
2758
+ platformProfile: safeString(message.platformProfile, 80),
2739
2759
  transferProtocol: transfer.transferProtocol,
2740
2760
  transferProtocolVersion: transfer.transferProtocolVersion,
2741
2761
  handshake: transfer.handshake,
package/hub/src/server.js CHANGED
@@ -134,7 +134,7 @@ function normalizeTransferFiles(value) {
134
134
  }
135
135
 
136
136
  function normalizeLiveOptions(payload = {}) {
137
- const mode = String(payload.frameMode || payload.mode || 'mode1-jpeg').trim() || 'mode1-jpeg';
137
+ const mode = String(payload.frameMode || payload.mode || 'mode3-h264-hw').trim() || 'mode3-h264-hw';
138
138
  return {
139
139
  fps: clampNumber(payload.fps, 1, 24, 2),
140
140
  maxWidth: clampNumber(payload.maxWidth, 320, 2560, 640),
@@ -230,6 +230,16 @@ function buildRemoteFrameBinaryPacket(frameEvent) {
230
230
  encoding: frame.encoding || '',
231
231
  codec: frame.codec || '',
232
232
  compression: frame.compression || frame.mimeType || frame.format || '',
233
+ pixelFormat: frame.pixelFormat || '',
234
+ bytesPerPixel: Number(frame.bytesPerPixel || 0) || 0,
235
+ uncompressedByteLength: Number(frame.uncompressedByteLength || 0) || 0,
236
+ h264Format: frame.h264Format || '',
237
+ isKeyFrame: frame.isKeyFrame === true,
238
+ chunkType: frame.chunkType || '',
239
+ timestampUs: Number(frame.timestampUs || 0) || 0,
240
+ durationUs: Number(frame.durationUs || 0) || 0,
241
+ hardwareEncoder: frame.hardwareEncoder || '',
242
+ platformProfile: frame.platformProfile || '',
233
243
  fps: Number(frame.fps || 0) || 0,
234
244
  capturedAt: frame.capturedAt || '',
235
245
  receivedAt: frame.receivedAt || '',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livedesk",
3
- "version": "0.1.20",
3
+ "version": "0.1.22",
4
4
  "description": "LiveDesk Hub and client launcher",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,7 +30,7 @@
30
30
  "node": ">=20"
31
31
  },
32
32
  "dependencies": {
33
- "@livedesk/client": "0.1.26",
33
+ "@livedesk/client": "0.1.28",
34
34
  "cors": "^2.8.5",
35
35
  "express": "^4.21.2",
36
36
  "ws": "^8.18.3"