@yume-chan/scrcpy 0.0.17 → 0.0.19

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.
Files changed (323) hide show
  1. package/CHANGELOG.json +39 -3
  2. package/CHANGELOG.md +22 -4
  3. package/LICENSE +1 -1
  4. package/README.md +149 -82
  5. package/bin/scrcpy-server +0 -0
  6. package/bin/version.d.ts +1 -1
  7. package/bin/version.js +1 -1
  8. package/esm/adb/client.d.ts +40 -39
  9. package/esm/adb/client.d.ts.map +1 -1
  10. package/esm/adb/client.js +223 -217
  11. package/esm/adb/client.js.map +1 -1
  12. package/esm/adb/connection.d.ts +48 -37
  13. package/esm/adb/connection.d.ts.map +1 -1
  14. package/esm/adb/connection.js +121 -101
  15. package/esm/adb/connection.js.map +1 -1
  16. package/esm/adb/index.d.ts +3 -3
  17. package/esm/adb/index.js +3 -3
  18. package/esm/adb/options/1_16.d.ts +7 -7
  19. package/esm/adb/options/1_16.d.ts.map +1 -1
  20. package/esm/adb/options/1_16.js +19 -19
  21. package/esm/adb/options/1_16.js.map +1 -1
  22. package/esm/adb/options/1_22.d.ts +7 -7
  23. package/esm/adb/options/1_22.d.ts.map +1 -1
  24. package/esm/adb/options/1_22.js +16 -16
  25. package/esm/adb/options/1_22.js.map +1 -1
  26. package/esm/adb/options/1_26.d.ts +9 -0
  27. package/esm/adb/options/1_26.d.ts.map +1 -0
  28. package/esm/adb/options/1_26.js +11 -0
  29. package/esm/adb/options/1_26.js.map +1 -0
  30. package/esm/adb/options/2_0.d.ts +8 -0
  31. package/esm/adb/options/2_0.d.ts.map +1 -0
  32. package/esm/adb/options/2_0.js +13 -0
  33. package/esm/adb/options/2_0.js.map +1 -0
  34. package/esm/adb/options/index.d.ts +3 -3
  35. package/esm/adb/options/index.js +3 -3
  36. package/esm/adb/options/types.d.ts +23 -22
  37. package/esm/adb/options/types.d.ts.map +1 -1
  38. package/esm/adb/options/types.js +36 -29
  39. package/esm/adb/options/types.js.map +1 -1
  40. package/esm/codec/av1.d.ts +33 -0
  41. package/esm/codec/av1.d.ts.map +1 -0
  42. package/esm/codec/av1.js +35 -0
  43. package/esm/codec/av1.js.map +1 -0
  44. package/esm/codec/h264.d.ts +98 -0
  45. package/esm/codec/h264.d.ts.map +1 -0
  46. package/esm/codec/h264.js +477 -0
  47. package/esm/codec/h264.js.map +1 -0
  48. package/esm/codec/h265.d.ts +36 -0
  49. package/esm/codec/h265.d.ts.map +1 -0
  50. package/esm/codec/h265.js +38 -0
  51. package/esm/codec/h265.js.map +1 -0
  52. package/esm/codec/index.d.ts +4 -0
  53. package/esm/codec/index.d.ts.map +1 -0
  54. package/esm/codec/index.js +4 -0
  55. package/esm/codec/index.js.map +1 -0
  56. package/esm/codec.d.ts +33 -33
  57. package/esm/codec.js +36 -36
  58. package/esm/control/back-or-screen-on.d.ts +3 -0
  59. package/esm/control/back-or-screen-on.d.ts.map +1 -0
  60. package/esm/control/back-or-screen-on.js +2 -0
  61. package/esm/control/back-or-screen-on.js.map +1 -0
  62. package/esm/control/basic.d.ts +5 -0
  63. package/esm/control/basic.d.ts.map +1 -0
  64. package/esm/control/basic.js +3 -0
  65. package/esm/control/basic.js.map +1 -0
  66. package/esm/control/hover-helper.d.ts +18 -0
  67. package/esm/control/hover-helper.d.ts.map +1 -0
  68. package/esm/control/hover-helper.js +44 -0
  69. package/esm/control/hover-helper.js.map +1 -0
  70. package/esm/control/index.d.ts +11 -7
  71. package/esm/control/index.d.ts.map +1 -1
  72. package/esm/control/index.js +11 -7
  73. package/esm/control/index.js.map +1 -1
  74. package/esm/control/inject-keycode.d.ts +194 -52
  75. package/esm/control/inject-keycode.d.ts.map +1 -1
  76. package/esm/control/inject-keycode.js +199 -53
  77. package/esm/control/inject-keycode.js.map +1 -1
  78. package/esm/control/inject-scroll.d.ts +3 -0
  79. package/esm/control/inject-scroll.d.ts.map +1 -0
  80. package/esm/control/inject-scroll.js +2 -0
  81. package/esm/control/inject-scroll.js.map +1 -0
  82. package/esm/control/inject-text.d.ts +8 -8
  83. package/esm/control/inject-text.d.ts.map +1 -1
  84. package/esm/control/inject-text.js +6 -6
  85. package/esm/control/inject-text.js.map +1 -1
  86. package/esm/control/inject-touch.d.ts +37 -29
  87. package/esm/control/inject-touch.d.ts.map +1 -1
  88. package/esm/control/inject-touch.js +62 -29
  89. package/esm/control/inject-touch.js.map +1 -1
  90. package/esm/control/rotate-device.d.ts +6 -6
  91. package/esm/control/rotate-device.d.ts.map +1 -1
  92. package/esm/control/rotate-device.js +3 -4
  93. package/esm/control/rotate-device.js.map +1 -1
  94. package/esm/control/serializer.d.ts +35 -22
  95. package/esm/control/serializer.d.ts.map +1 -1
  96. package/esm/control/serializer.js +82 -72
  97. package/esm/control/serializer.js.map +1 -1
  98. package/esm/control/set-clipboard.d.ts +3 -0
  99. package/esm/control/set-clipboard.d.ts.map +1 -0
  100. package/esm/control/set-clipboard.js +2 -0
  101. package/esm/control/set-clipboard.js.map +1 -0
  102. package/esm/control/set-screen-power-mode.d.ts +11 -11
  103. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  104. package/esm/control/set-screen-power-mode.js +11 -11
  105. package/esm/control/set-screen-power-mode.js.map +1 -1
  106. package/esm/control/simple.d.ts +5 -0
  107. package/esm/control/simple.d.ts.map +1 -0
  108. package/esm/control/simple.js +3 -0
  109. package/esm/control/simple.js.map +1 -0
  110. package/esm/control/type.d.ts +14 -14
  111. package/esm/control/type.js +18 -18
  112. package/esm/decoder.d.ts +2 -0
  113. package/esm/decoder.d.ts.map +1 -0
  114. package/esm/decoder.js +2 -0
  115. package/esm/decoder.js.map +1 -0
  116. package/esm/device-message/ack-clipboard.d.ts +9 -0
  117. package/esm/device-message/ack-clipboard.d.ts.map +1 -0
  118. package/esm/device-message/ack-clipboard.js +6 -0
  119. package/esm/device-message/ack-clipboard.js.map +1 -0
  120. package/esm/device-message/clipboard.d.ts +9 -9
  121. package/esm/device-message/clipboard.d.ts.map +1 -1
  122. package/esm/device-message/clipboard.js +6 -6
  123. package/esm/device-message/clipboard.js.map +1 -1
  124. package/esm/device-message/index.d.ts +4 -3
  125. package/esm/device-message/index.d.ts.map +1 -1
  126. package/esm/device-message/index.js +4 -3
  127. package/esm/device-message/index.js.map +1 -1
  128. package/esm/device-message/stream.d.ts +7 -6
  129. package/esm/device-message/stream.d.ts.map +1 -1
  130. package/esm/device-message/stream.js +19 -15
  131. package/esm/device-message/stream.js.map +1 -1
  132. package/esm/device-message/type.d.ts +4 -4
  133. package/esm/device-message/type.js +6 -6
  134. package/esm/index.d.ts +5 -5
  135. package/esm/index.js +5 -5
  136. package/esm/options/1.17.d.ts +3 -0
  137. package/esm/options/1.17.d.ts.map +1 -0
  138. package/esm/options/1.17.js +2 -0
  139. package/esm/options/1.17.js.map +1 -0
  140. package/esm/options/1_16/codec-options.d.ts +20 -18
  141. package/esm/options/1_16/codec-options.d.ts.map +1 -1
  142. package/esm/options/1_16/codec-options.js +25 -26
  143. package/esm/options/1_16/codec-options.js.map +1 -1
  144. package/esm/options/1_16/float-to-uint16.d.ts +5 -0
  145. package/esm/options/1_16/float-to-uint16.d.ts.map +1 -0
  146. package/esm/options/1_16/float-to-uint16.js +27 -0
  147. package/esm/options/1_16/float-to-uint16.js.map +1 -0
  148. package/esm/options/1_16/h264-configuration.d.ts +49 -0
  149. package/esm/options/1_16/h264-configuration.d.ts.map +1 -0
  150. package/esm/options/1_16/h264-configuration.js +414 -0
  151. package/esm/options/1_16/h264-configuration.js.map +1 -0
  152. package/esm/options/1_16/index.d.ts +4 -3
  153. package/esm/options/1_16/index.d.ts.map +1 -1
  154. package/esm/options/1_16/index.js +4 -3
  155. package/esm/options/1_16/index.js.map +1 -1
  156. package/esm/options/1_16/init.d.ts +66 -0
  157. package/esm/options/1_16/init.d.ts.map +1 -0
  158. package/esm/options/1_16/init.js +16 -0
  159. package/esm/options/1_16/init.js.map +1 -0
  160. package/esm/options/1_16/message.d.ts +32 -0
  161. package/esm/options/1_16/message.d.ts.map +1 -0
  162. package/esm/options/1_16/message.js +37 -0
  163. package/esm/options/1_16/message.js.map +1 -0
  164. package/esm/options/1_16/options.d.ts +102 -96
  165. package/esm/options/1_16/options.d.ts.map +1 -1
  166. package/esm/options/1_16/options.js +189 -187
  167. package/esm/options/1_16/options.js.map +1 -1
  168. package/esm/options/1_16/scroll.d.ts +28 -0
  169. package/esm/options/1_16/scroll.d.ts.map +1 -0
  170. package/esm/options/1_16/scroll.js +56 -0
  171. package/esm/options/1_16/scroll.js.map +1 -0
  172. package/esm/options/1_16/sps.d.ts +1 -1
  173. package/esm/options/1_16/sps.d.ts.map +1 -1
  174. package/esm/options/1_16/sps.js +25 -17
  175. package/esm/options/1_16/sps.js.map +1 -1
  176. package/esm/options/1_17.d.ts +32 -0
  177. package/esm/options/1_17.d.ts.map +1 -0
  178. package/esm/options/1_17.js +36 -0
  179. package/esm/options/1_17.js.map +1 -0
  180. package/esm/options/1_18.d.ts +21 -19
  181. package/esm/options/1_18.d.ts.map +1 -1
  182. package/esm/options/1_18.js +45 -45
  183. package/esm/options/1_18.js.map +1 -1
  184. package/esm/options/1_21.d.ts +22 -9
  185. package/esm/options/1_21.d.ts.map +1 -1
  186. package/esm/options/1_21.js +36 -25
  187. package/esm/options/1_21.js.map +1 -1
  188. package/esm/options/1_22/index.d.ts +3 -0
  189. package/esm/options/1_22/index.d.ts.map +1 -0
  190. package/esm/options/1_22/index.js +3 -0
  191. package/esm/options/1_22/index.js.map +1 -0
  192. package/esm/options/1_22/init.d.ts +17 -0
  193. package/esm/options/1_22/init.d.ts.map +1 -0
  194. package/esm/options/1_22/init.js +2 -0
  195. package/esm/options/1_22/init.js.map +1 -0
  196. package/esm/options/{1_22.d.ts → 1_22/options.d.ts} +30 -40
  197. package/esm/options/1_22/options.d.ts.map +1 -0
  198. package/esm/options/{1_22.js → 1_22/options.js} +26 -30
  199. package/esm/options/1_22/options.js.map +1 -0
  200. package/esm/options/1_22/scroll.d.ts +17 -0
  201. package/esm/options/1_22/scroll.d.ts.map +1 -0
  202. package/esm/options/1_22/scroll.js +15 -0
  203. package/esm/options/1_22/scroll.js.map +1 -0
  204. package/esm/options/1_23.d.ts +12 -11
  205. package/esm/options/1_23.d.ts.map +1 -1
  206. package/esm/options/1_23.js +34 -33
  207. package/esm/options/1_23.js.map +1 -1
  208. package/esm/options/1_24.d.ts +9 -8
  209. package/esm/options/1_24.d.ts.map +1 -1
  210. package/esm/options/1_24.js +12 -12
  211. package/esm/options/1_24.js.map +1 -1
  212. package/esm/options/1_25/index.d.ts +3 -0
  213. package/esm/options/1_25/index.d.ts.map +1 -0
  214. package/esm/options/1_25/index.js +3 -0
  215. package/esm/options/1_25/index.js.map +1 -0
  216. package/esm/options/1_25/options.d.ts +7 -0
  217. package/esm/options/1_25/options.d.ts.map +1 -0
  218. package/esm/options/1_25/options.js +8 -0
  219. package/esm/options/1_25/options.js.map +1 -0
  220. package/esm/options/1_25/scroll.d.ts +20 -0
  221. package/esm/options/1_25/scroll.d.ts.map +1 -0
  222. package/esm/options/1_25/scroll.js +33 -0
  223. package/esm/options/1_25/scroll.js.map +1 -0
  224. package/esm/options/1_26.d.ts +57 -0
  225. package/esm/options/1_26.d.ts.map +1 -0
  226. package/esm/options/1_26.js +67 -0
  227. package/esm/options/1_26.js.map +1 -0
  228. package/esm/options/2.d.ts +57 -0
  229. package/esm/options/2.d.ts.map +1 -0
  230. package/esm/options/2.js +67 -0
  231. package/esm/options/2.js.map +1 -0
  232. package/esm/options/2_0.d.ts +87 -0
  233. package/esm/options/2_0.d.ts.map +1 -0
  234. package/esm/options/2_0.js +175 -0
  235. package/esm/options/2_0.js.map +1 -0
  236. package/esm/options/codec.d.ts +52 -0
  237. package/esm/options/codec.d.ts.map +1 -0
  238. package/esm/options/codec.js +26 -0
  239. package/esm/options/codec.js.map +1 -0
  240. package/esm/options/index.d.ts +8 -7
  241. package/esm/options/index.d.ts.map +1 -1
  242. package/esm/options/index.js +8 -7
  243. package/esm/options/index.js.map +1 -1
  244. package/esm/options/latest.d.ts +12 -0
  245. package/esm/options/latest.d.ts.map +1 -0
  246. package/esm/options/latest.js +8 -0
  247. package/esm/options/latest.js.map +1 -0
  248. package/esm/options/types.d.ts +46 -44
  249. package/esm/options/types.d.ts.map +1 -1
  250. package/esm/options/types.js +17 -15
  251. package/esm/options/types.js.map +1 -1
  252. package/package.json +20 -12
  253. package/scripts/fetch-server.cjs +19 -9
  254. package/src/adb/client.ts +184 -147
  255. package/src/adb/connection.ts +95 -31
  256. package/src/adb/index.ts +3 -3
  257. package/src/adb/options/1_16.ts +15 -6
  258. package/src/adb/options/1_22.ts +12 -6
  259. package/src/adb/options/index.ts +3 -3
  260. package/src/adb/options/types.ts +34 -14
  261. package/src/control/back-or-screen-on.ts +4 -0
  262. package/src/control/hover-helper.ts +54 -0
  263. package/src/control/index.ts +11 -7
  264. package/src/control/inject-keycode.ts +203 -45
  265. package/src/control/inject-scroll.ts +4 -0
  266. package/src/control/inject-text.ts +7 -8
  267. package/src/control/inject-touch.ts +58 -14
  268. package/src/control/rotate-device.ts +7 -6
  269. package/src/control/serializer.ts +111 -43
  270. package/src/control/set-clipboard.ts +4 -0
  271. package/src/control/set-screen-power-mode.ts +7 -8
  272. package/src/device-message/ack-clipboard.ts +10 -0
  273. package/src/device-message/clipboard.ts +8 -8
  274. package/src/device-message/index.ts +4 -3
  275. package/src/device-message/stream.ts +17 -7
  276. package/src/index.ts +5 -5
  277. package/src/options/1_16/codec-options.ts +16 -11
  278. package/src/options/1_16/h264-configuration.ts +485 -0
  279. package/src/options/1_16/index.ts +4 -3
  280. package/src/options/1_16/options.ts +180 -130
  281. package/src/options/1_16/scroll.ts +74 -0
  282. package/src/options/1_18.ts +22 -12
  283. package/src/options/1_21.ts +30 -13
  284. package/src/options/1_22/index.ts +2 -0
  285. package/src/options/{1_22.ts → 1_22/options.ts} +9 -17
  286. package/src/options/1_22/scroll.ts +26 -0
  287. package/src/options/1_23.ts +30 -20
  288. package/src/options/1_24.ts +5 -3
  289. package/src/options/1_25/index.ts +2 -0
  290. package/src/options/1_25/options.ts +13 -0
  291. package/src/options/1_25/scroll.ts +49 -0
  292. package/src/options/index.ts +8 -7
  293. package/src/options/types.ts +36 -19
  294. package/tsconfig.build.json +1 -1
  295. package/tsconfig.build.tsbuildinfo +1 -1
  296. package/esm/decoder/index.d.ts +0 -28
  297. package/esm/decoder/index.d.ts.map +0 -1
  298. package/esm/decoder/index.js +0 -2
  299. package/esm/decoder/index.js.map +0 -1
  300. package/esm/decoder/tinyh264/index.d.ts +0 -20
  301. package/esm/decoder/tinyh264/index.d.ts.map +0 -1
  302. package/esm/decoder/tinyh264/index.js +0 -86
  303. package/esm/decoder/tinyh264/index.js.map +0 -1
  304. package/esm/decoder/tinyh264/worker.d.ts +0 -2
  305. package/esm/decoder/tinyh264/worker.d.ts.map +0 -1
  306. package/esm/decoder/tinyh264/worker.js +0 -3
  307. package/esm/decoder/tinyh264/worker.js.map +0 -1
  308. package/esm/decoder/tinyh264/wrapper.d.ts +0 -21
  309. package/esm/decoder/tinyh264/wrapper.d.ts.map +0 -1
  310. package/esm/decoder/tinyh264/wrapper.js +0 -74
  311. package/esm/decoder/tinyh264/wrapper.js.map +0 -1
  312. package/esm/decoder/types.d.ts +0 -2
  313. package/esm/decoder/types.d.ts.map +0 -1
  314. package/esm/decoder/types.js +0 -2
  315. package/esm/decoder/types.js.map +0 -1
  316. package/esm/decoder/web-codecs/index.d.ts +0 -22
  317. package/esm/decoder/web-codecs/index.d.ts.map +0 -1
  318. package/esm/decoder/web-codecs/index.js +0 -81
  319. package/esm/decoder/web-codecs/index.js.map +0 -1
  320. package/esm/options/1_22.d.ts.map +0 -1
  321. package/esm/options/1_22.js.map +0 -1
  322. package/src/options/1_16/sps.ts +0 -300
  323. package/tsconfig.test.tsbuildinfo +0 -1
@@ -1,97 +1,103 @@
1
- import { TransformStream } from '@yume-chan/stream-extra';
2
- import Struct from '@yume-chan/struct';
3
- import { ScrcpyControlMessageType } from '../../control/index.js';
4
- import type { ScrcpyBackOrScreenOnControlMessage1_18 } from '../1_18.js';
5
- import type { ScrcpyInjectScrollControlMessage1_22 } from '../1_22.js';
6
- import { type ScrcpyOptions, type ScrcpyVideoStreamPacket } from '../types.js';
7
- import { CodecOptions } from './codec-options.js';
8
- export declare enum ScrcpyLogLevel {
9
- Verbose = "verbose",
10
- Debug = "debug",
11
- Info = "info",
12
- Warn = "warn",
13
- Error = "error"
14
- }
15
- export declare enum ScrcpyVideoOrientation {
16
- Initial = -2,
17
- Unlocked = -1,
18
- Portrait = 0,
19
- Landscape = 1,
20
- PortraitFlipped = 2,
21
- LandscapeFlipped = 3
22
- }
23
- export interface ScrcpyOptionsInit1_16 {
24
- logLevel: ScrcpyLogLevel;
25
- /**
26
- * The maximum value of both width and height.
27
- */
28
- maxSize: number;
29
- bitRate: number;
30
- /**
31
- * 0 for unlimited.
32
- *
33
- * @default 0
34
- */
35
- maxFps: number;
36
- /**
37
- * The orientation of the video stream.
38
- *
39
- * It will not keep the device screen in specific orientation,
40
- * only the captured video will in this orientation.
41
- */
42
- lockVideoOrientation: ScrcpyVideoOrientation;
43
- tunnelForward: boolean;
44
- crop: string;
45
- /**
46
- * Send PTS so that the client may record properly
47
- *
48
- * Note: When `sendFrameMeta: false` is specified,
49
- * `onChangeEncoding` event won't fire and `onVideoData` event doesn't
50
- * merge sps/pps frame and first video frame. Which means you can't use
51
- * the shipped decoders to render the video
52
- * (You can still record the stream into a file).
53
- *
54
- * @default true
55
- */
56
- sendFrameMeta: boolean;
57
- /**
58
- * @default true
59
- */
60
- control: boolean;
61
- displayId: number;
62
- showTouches: boolean;
63
- stayAwake: boolean;
64
- codecOptions: CodecOptions;
65
- encoderName: string;
66
- }
67
- export declare const VideoPacket: Struct<{
68
- pts: bigint;
69
- size: number;
70
- data: Uint8Array;
71
- }, "size", {}, undefined>;
72
- export declare const NO_PTS: bigint;
73
- export declare const ScrcpyBackOrScreenOnControlMessage1_16: Struct<{
74
- type: ScrcpyControlMessageType.BackOrScreenOn;
75
- }, never, {}, undefined>;
76
- export declare const ScrcpyInjectScrollControlMessage1_16: Struct<{
77
- type: ScrcpyControlMessageType.InjectScroll;
78
- pointerX: number;
79
- pointerY: number;
80
- screenWidth: number;
81
- screenHeight: number;
82
- scrollX: number;
83
- scrollY: number;
84
- }, never, {}, undefined>;
85
- export declare class ScrcpyOptions1_16<T extends ScrcpyOptionsInit1_16 = ScrcpyOptionsInit1_16> implements ScrcpyOptions<T> {
86
- value: Partial<T>;
87
- constructor(value: Partial<ScrcpyOptionsInit1_16>);
88
- protected getArgumentOrder(): (keyof T)[];
89
- getDefaultValue(): T;
90
- formatServerArguments(): string[];
91
- getOutputEncoderNameRegex(): RegExp;
92
- createVideoStreamTransformer(): TransformStream<Uint8Array, ScrcpyVideoStreamPacket>;
93
- getControlMessageTypes(): ScrcpyControlMessageType[];
94
- serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage1_18): Uint8Array | undefined;
95
- serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
96
- }
1
+ import { TransformStream } from "@yume-chan/stream-extra";
2
+ import Struct from "@yume-chan/struct";
3
+ import type { ScrcpyBackOrScreenOnControlMessage, ScrcpySetClipboardControlMessage } from "../../control/index.js";
4
+ import { ScrcpyControlMessageType } from "../../control/index.js";
5
+ import type { ScrcpyOptions, ScrcpyVideoStreamPacket } from "../types.js";
6
+ import { CodecOptions } from "./codec-options.js";
7
+ import type { ScrcpyScrollController } from "./scroll.js";
8
+ export declare enum ScrcpyLogLevel {
9
+ Verbose = "verbose",
10
+ Debug = "debug",
11
+ Info = "info",
12
+ Warn = "warn",
13
+ Error = "error"
14
+ }
15
+ export declare enum ScrcpyVideoOrientation {
16
+ Initial = -2,
17
+ Unlocked = -1,
18
+ Portrait = 0,
19
+ Landscape = 1,
20
+ PortraitFlipped = 2,
21
+ LandscapeFlipped = 3
22
+ }
23
+ export interface ScrcpyOptionsInit1_16 {
24
+ logLevel: ScrcpyLogLevel;
25
+ /**
26
+ * The maximum value of both width and height.
27
+ */
28
+ maxSize: number;
29
+ bitRate: number;
30
+ /**
31
+ * 0 for unlimited.
32
+ *
33
+ * @default 0
34
+ */
35
+ maxFps: number;
36
+ /**
37
+ * The orientation of the video stream.
38
+ *
39
+ * It will not keep the device screen in specific orientation,
40
+ * only the captured video will in this orientation.
41
+ */
42
+ lockVideoOrientation: ScrcpyVideoOrientation;
43
+ /**
44
+ * Use ADB forward tunnel instead of reverse tunnel.
45
+ *
46
+ * This option is mainly used for working around the bug that on Android <9,
47
+ * ADB daemon can't create reverse tunnels if connected wirelessly (ADB over WiFi).
48
+ *
49
+ * When using `AdbScrcpyClient`, it can detect this situation and enable this option automatically.
50
+ */
51
+ tunnelForward: boolean;
52
+ crop: string;
53
+ /**
54
+ * Send PTS so that the client may record properly
55
+ *
56
+ * Note: When `sendFrameMeta: false` is specified,
57
+ * `onChangeEncoding` event won't fire and `onVideoData` event doesn't
58
+ * merge sps/pps frame and first video frame. Which means you can't use
59
+ * the shipped decoders to render the video
60
+ * (You can still record the stream into a file).
61
+ *
62
+ * @default true
63
+ */
64
+ sendFrameMeta: boolean;
65
+ /**
66
+ * @default true
67
+ */
68
+ control: boolean;
69
+ displayId: number;
70
+ showTouches: boolean;
71
+ stayAwake: boolean;
72
+ codecOptions: CodecOptions;
73
+ encoderName: string;
74
+ }
75
+ export declare const VideoPacket: Struct<{
76
+ pts: bigint;
77
+ size: number;
78
+ data: Uint8Array;
79
+ }, "size", Record<never, never>, undefined>;
80
+ export declare const NO_PTS: bigint;
81
+ export declare const ScrcpyBackOrScreenOnControlMessage1_16: Struct<{
82
+ type: ScrcpyControlMessageType.BackOrScreenOn;
83
+ }, never, Record<never, never>, undefined>;
84
+ export declare const ScrcpySetClipboardControlMessage1_15: Struct<{
85
+ type: ScrcpyControlMessageType.SetClipboard;
86
+ length: number;
87
+ content: string;
88
+ }, "length", Record<never, never>, undefined>;
89
+ export type ScrcpySetClipboardControlMessage1_15 = (typeof ScrcpySetClipboardControlMessage1_15)["TInit"];
90
+ export declare class ScrcpyOptions1_16<T extends ScrcpyOptionsInit1_16 = ScrcpyOptionsInit1_16> implements ScrcpyOptions<T> {
91
+ value: Partial<T>;
92
+ constructor(value: Partial<ScrcpyOptionsInit1_16>);
93
+ protected getArgumentOrder(): (keyof T)[];
94
+ getDefaultValue(): T;
95
+ formatServerArguments(): string[];
96
+ getOutputEncoderNameRegex(): RegExp;
97
+ createVideoStreamTransformer(): TransformStream<Uint8Array, ScrcpyVideoStreamPacket>;
98
+ getControlMessageTypes(): ScrcpyControlMessageType[];
99
+ serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnControlMessage): Uint8Array | undefined;
100
+ serializeSetClipboardControlMessage(message: ScrcpySetClipboardControlMessage): Uint8Array;
101
+ getScrollController(): ScrcpyScrollController;
102
+ }
97
103
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAyB,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,oBAAY,cAAc;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,oBAAY,sBAAsB;IAC9B,OAAO,KAAK;IACZ,QAAQ,KAAK;IACb,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,eAAe,IAAI;IACnB,gBAAgB,IAAI;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,oBAAoB,EAAE,sBAAsB,CAAC;IAE7C,aAAa,EAAE,OAAO,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;OAUG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,OAAO,CAAC;IAErB,SAAS,EAAE,OAAO,CAAC;IAEnB,YAAY,EAAE,YAAY,CAAC;IAE3B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW;;;;yBAI4B,CAAC;AAErD,eAAO,MAAM,MAAM,QAA0B,CAAC;AAE9C,eAAO,MAAM,sCAAsC;;wBAEqB,CAAC;AAEzE,eAAO,MAAM,oCAAoC;;;;;;;;wBAQxB,CAAC;AAE1B,qBAAa,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CAClF,YAAW,aAAa,CAAC,CAAC,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAEN,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAcxD,SAAS,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAmBlC,eAAe,IAAI,CAAC;IAmBpB,qBAAqB,IAAI,MAAM,EAAE;IASjC,yBAAyB,IAAI,MAAM;IAInC,4BAA4B,IAAI,eAAe,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAsFpF,sBAAsB,IAAI,wBAAwB,EAAE;IAgBpD,qCAAqC,CACxC,OAAO,EAAE,sCAAsC;IAS5C,mCAAmC,CACtC,OAAO,EAAE,oCAAoC,GAC9C,UAAU;CAGhB"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,KAAK,EACR,kCAAkC,EAClC,gCAAgC,EACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEH,wBAAwB,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,oBAAY,cAAc;IACtB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,oBAAY,sBAAsB;IAC9B,OAAO,KAAK;IACZ,QAAQ,KAAK;IACb,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,eAAe,IAAI;IACnB,gBAAgB,IAAI;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,oBAAoB,EAAE,sBAAsB,CAAC;IAE7C;;;;;;;OAOG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;OAUG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,OAAO,CAAC;IAErB,SAAS,EAAE,OAAO,CAAC;IAEnB,YAAY,EAAE,YAAY,CAAC;IAE3B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW;;;;2CAGwB,CAAC;AAEjD,eAAO,MAAM,MAAM,QAA0B,CAAC;AAE9C,eAAO,MAAM,sCAAsC;;0CAGlD,CAAC;AAEF,eAAO,MAAM,oCAAoC;;;;6CAGA,CAAC;AAElD,MAAM,MAAM,oCAAoC,GAC5C,CAAC,OAAO,oCAAoC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3D,qBAAa,iBAAiB,CAC1B,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,CACzD,YAAW,aAAa,CAAC,CAAC,CAAC;IAElB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAEN,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAkBxD,SAAS,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAmBlC,eAAe,IAAI,CAAC;IAmBpB,qBAAqB,IAAI,MAAM,EAAE;IAOjC,yBAAyB,IAAI,MAAM;IAInC,4BAA4B,IAAI,eAAe,CAClD,UAAU,EACV,uBAAuB,CAC1B;IAuGM,sBAAsB,IAAI,wBAAwB,EAAE;IAgBpD,qCAAqC,CACxC,OAAO,EAAE,kCAAkC;IASxC,mCAAmC,CACtC,OAAO,EAAE,gCAAgC,GAC1C,UAAU;IAIN,mBAAmB,IAAI,sBAAsB;CAGvD"}
@@ -1,188 +1,190 @@
1
- import { StructDeserializeStream, TransformStream } from '@yume-chan/stream-extra';
2
- import Struct from '@yume-chan/struct';
3
- import { AndroidKeyEventAction, ScrcpyControlMessageType } from '../../control/index.js';
4
- import { toScrcpyOptionValue } from '../types.js';
5
- import { CodecOptions } from './codec-options.js';
6
- import { parse_sequence_parameter_set } from './sps.js';
7
- export var ScrcpyLogLevel;
8
- (function (ScrcpyLogLevel) {
9
- ScrcpyLogLevel["Verbose"] = "verbose";
10
- ScrcpyLogLevel["Debug"] = "debug";
11
- ScrcpyLogLevel["Info"] = "info";
12
- ScrcpyLogLevel["Warn"] = "warn";
13
- ScrcpyLogLevel["Error"] = "error";
14
- })(ScrcpyLogLevel = ScrcpyLogLevel || (ScrcpyLogLevel = {}));
15
- export var ScrcpyVideoOrientation;
16
- (function (ScrcpyVideoOrientation) {
17
- ScrcpyVideoOrientation[ScrcpyVideoOrientation["Initial"] = -2] = "Initial";
18
- ScrcpyVideoOrientation[ScrcpyVideoOrientation["Unlocked"] = -1] = "Unlocked";
19
- ScrcpyVideoOrientation[ScrcpyVideoOrientation["Portrait"] = 0] = "Portrait";
20
- ScrcpyVideoOrientation[ScrcpyVideoOrientation["Landscape"] = 1] = "Landscape";
21
- ScrcpyVideoOrientation[ScrcpyVideoOrientation["PortraitFlipped"] = 2] = "PortraitFlipped";
22
- ScrcpyVideoOrientation[ScrcpyVideoOrientation["LandscapeFlipped"] = 3] = "LandscapeFlipped";
23
- })(ScrcpyVideoOrientation = ScrcpyVideoOrientation || (ScrcpyVideoOrientation = {}));
24
- export const VideoPacket = new Struct()
25
- .uint64('pts')
26
- .uint32('size')
27
- .uint8Array('data', { lengthField: 'size' });
28
- export const NO_PTS = BigInt(1) << BigInt(63);
29
- export const ScrcpyBackOrScreenOnControlMessage1_16 = new Struct()
30
- .uint8('type', ScrcpyControlMessageType.BackOrScreenOn);
31
- export const ScrcpyInjectScrollControlMessage1_16 = new Struct()
32
- .uint8('type', ScrcpyControlMessageType.InjectScroll)
33
- .uint32('pointerX')
34
- .uint32('pointerY')
35
- .uint16('screenWidth')
36
- .uint16('screenHeight')
37
- .int32('scrollX')
38
- .int32('scrollY');
39
- export class ScrcpyOptions1_16 {
40
- value;
41
- constructor(value) {
42
- if (new.target === ScrcpyOptions1_16 &&
43
- value.logLevel === ScrcpyLogLevel.Verbose) {
44
- value.logLevel = ScrcpyLogLevel.Debug;
45
- }
46
- if (new.target === ScrcpyOptions1_16 &&
47
- value.lockVideoOrientation === ScrcpyVideoOrientation.Initial) {
48
- value.lockVideoOrientation = ScrcpyVideoOrientation.Unlocked;
49
- }
50
- this.value = value;
51
- }
52
- getArgumentOrder() {
53
- return [
54
- 'logLevel',
55
- 'maxSize',
56
- 'bitRate',
57
- 'maxFps',
58
- 'lockVideoOrientation',
59
- 'tunnelForward',
60
- 'crop',
61
- 'sendFrameMeta',
62
- 'control',
63
- 'displayId',
64
- 'showTouches',
65
- 'stayAwake',
66
- 'codecOptions',
67
- 'encoderName',
68
- ];
69
- }
70
- getDefaultValue() {
71
- return {
72
- logLevel: ScrcpyLogLevel.Debug,
73
- maxSize: 0,
74
- bitRate: 8000000,
75
- maxFps: 0,
76
- lockVideoOrientation: ScrcpyVideoOrientation.Unlocked,
77
- tunnelForward: false,
78
- crop: '-',
79
- sendFrameMeta: true,
80
- control: true,
81
- displayId: 0,
82
- showTouches: false,
83
- stayAwake: false,
84
- codecOptions: new CodecOptions({}),
85
- encoderName: '-',
86
- };
87
- }
88
- formatServerArguments() {
89
- const defaults = this.getDefaultValue();
90
- return this.getArgumentOrder()
91
- .map(key => toScrcpyOptionValue(this.value[key] || defaults[key], '-'));
92
- }
93
- getOutputEncoderNameRegex() {
94
- return /\s+scrcpy --encoder-name '(.*?)'/;
95
- }
96
- createVideoStreamTransformer() {
97
- // Optimized path for video frames only
98
- if (this.value.sendFrameMeta === false) {
99
- return new TransformStream({
100
- transform(chunk, controller) {
101
- controller.enqueue({
102
- type: 'frame',
103
- data: chunk,
104
- });
105
- },
106
- });
107
- }
108
- let header;
109
- let deserializeStream = new StructDeserializeStream(VideoPacket);
110
- return {
111
- writable: deserializeStream.writable,
112
- readable: deserializeStream.readable.pipeThrough(new TransformStream({
113
- transform(packet, controller) {
114
- if (packet.pts === NO_PTS) {
115
- const sequenceParameterSet = parse_sequence_parameter_set(packet.data.slice().buffer);
116
- const { profile_idc: profileIndex, constraint_set: constraintSet, level_idc: levelIndex, pic_width_in_mbs_minus1, pic_height_in_map_units_minus1, frame_mbs_only_flag, frame_crop_left_offset, frame_crop_right_offset, frame_crop_top_offset, frame_crop_bottom_offset, } = sequenceParameterSet;
117
- const encodedWidth = (pic_width_in_mbs_minus1 + 1) * 16;
118
- const encodedHeight = (pic_height_in_map_units_minus1 + 1) * (2 - frame_mbs_only_flag) * 16;
119
- const cropLeft = frame_crop_left_offset * 2;
120
- const cropRight = frame_crop_right_offset * 2;
121
- const cropTop = frame_crop_top_offset * 2;
122
- const cropBottom = frame_crop_bottom_offset * 2;
123
- const croppedWidth = encodedWidth - cropLeft - cropRight;
124
- const croppedHeight = encodedHeight - cropTop - cropBottom;
125
- header = packet.data;
126
- controller.enqueue({
127
- type: 'configuration',
128
- data: {
129
- profileIndex,
130
- constraintSet,
131
- levelIndex,
132
- encodedWidth,
133
- encodedHeight,
134
- cropLeft,
135
- cropRight,
136
- cropTop,
137
- cropBottom,
138
- croppedWidth,
139
- croppedHeight,
140
- }
141
- });
142
- return;
143
- }
144
- let frameData;
145
- if (header) {
146
- frameData = new Uint8Array(header.byteLength + packet.data.byteLength);
147
- frameData.set(header);
148
- frameData.set(packet.data, header.byteLength);
149
- header = undefined;
150
- }
151
- else {
152
- frameData = packet.data;
153
- }
154
- controller.enqueue({
155
- type: 'frame',
156
- pts: packet.pts,
157
- data: frameData,
158
- });
159
- }
160
- }))
161
- };
162
- }
163
- getControlMessageTypes() {
164
- return [
165
- /* 0 */ ScrcpyControlMessageType.InjectKeyCode,
166
- /* 1 */ ScrcpyControlMessageType.InjectText,
167
- /* 2 */ ScrcpyControlMessageType.InjectTouch,
168
- /* 3 */ ScrcpyControlMessageType.InjectScroll,
169
- /* 4 */ ScrcpyControlMessageType.BackOrScreenOn,
170
- /* 5 */ ScrcpyControlMessageType.ExpandNotificationPanel,
171
- /* 6 */ ScrcpyControlMessageType.CollapseNotificationPanel,
172
- /* 7 */ ScrcpyControlMessageType.GetClipboard,
173
- /* 8 */ ScrcpyControlMessageType.SetClipboard,
174
- /* 9 */ ScrcpyControlMessageType.SetScreenPowerMode,
175
- /* 10 */ ScrcpyControlMessageType.RotateDevice,
176
- ];
177
- }
178
- serializeBackOrScreenOnControlMessage(message) {
179
- if (message.action === AndroidKeyEventAction.Down) {
180
- return ScrcpyBackOrScreenOnControlMessage1_16.serialize(message);
181
- }
182
- return undefined;
183
- }
184
- serializeInjectScrollControlMessage(message) {
185
- return ScrcpyInjectScrollControlMessage1_16.serialize(message);
186
- }
187
- }
1
+ import { StructDeserializeStream, TransformStream, } from "@yume-chan/stream-extra";
2
+ import Struct from "@yume-chan/struct";
3
+ import { AndroidKeyEventAction, ScrcpyControlMessageType, } from "../../control/index.js";
4
+ import { toScrcpyOptionValue } from "../types.js";
5
+ import { CodecOptions } from "./codec-options.js";
6
+ import { parseH264Configuration, parseSequenceParameterSet, removeH264Emulation, } from "./h264-configuration.js";
7
+ import { ScrcpyScrollController1_16 } from "./scroll.js";
8
+ export var ScrcpyLogLevel;
9
+ (function (ScrcpyLogLevel) {
10
+ ScrcpyLogLevel["Verbose"] = "verbose";
11
+ ScrcpyLogLevel["Debug"] = "debug";
12
+ ScrcpyLogLevel["Info"] = "info";
13
+ ScrcpyLogLevel["Warn"] = "warn";
14
+ ScrcpyLogLevel["Error"] = "error";
15
+ })(ScrcpyLogLevel = ScrcpyLogLevel || (ScrcpyLogLevel = {}));
16
+ export var ScrcpyVideoOrientation;
17
+ (function (ScrcpyVideoOrientation) {
18
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Initial"] = -2] = "Initial";
19
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Unlocked"] = -1] = "Unlocked";
20
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Portrait"] = 0] = "Portrait";
21
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["Landscape"] = 1] = "Landscape";
22
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["PortraitFlipped"] = 2] = "PortraitFlipped";
23
+ ScrcpyVideoOrientation[ScrcpyVideoOrientation["LandscapeFlipped"] = 3] = "LandscapeFlipped";
24
+ })(ScrcpyVideoOrientation = ScrcpyVideoOrientation || (ScrcpyVideoOrientation = {}));
25
+ export const VideoPacket = new Struct()
26
+ .uint64("pts")
27
+ .uint32("size")
28
+ .uint8Array("data", { lengthField: "size" });
29
+ export const NO_PTS = BigInt(1) << BigInt(63);
30
+ export const ScrcpyBackOrScreenOnControlMessage1_16 = new Struct().uint8("type", ScrcpyControlMessageType.BackOrScreenOn);
31
+ export const ScrcpySetClipboardControlMessage1_15 = new Struct()
32
+ .uint8("type", ScrcpyControlMessageType.SetClipboard)
33
+ .uint32("length")
34
+ .string("content", { lengthField: "length" });
35
+ export class ScrcpyOptions1_16 {
36
+ value;
37
+ constructor(value) {
38
+ if (new.target === ScrcpyOptions1_16 &&
39
+ value.logLevel === ScrcpyLogLevel.Verbose) {
40
+ value.logLevel = ScrcpyLogLevel.Debug;
41
+ }
42
+ if (new.target === ScrcpyOptions1_16 &&
43
+ value.lockVideoOrientation === ScrcpyVideoOrientation.Initial) {
44
+ value.lockVideoOrientation = ScrcpyVideoOrientation.Unlocked;
45
+ }
46
+ this.value = value;
47
+ }
48
+ getArgumentOrder() {
49
+ return [
50
+ "logLevel",
51
+ "maxSize",
52
+ "bitRate",
53
+ "maxFps",
54
+ "lockVideoOrientation",
55
+ "tunnelForward",
56
+ "crop",
57
+ "sendFrameMeta",
58
+ "control",
59
+ "displayId",
60
+ "showTouches",
61
+ "stayAwake",
62
+ "codecOptions",
63
+ "encoderName",
64
+ ];
65
+ }
66
+ getDefaultValue() {
67
+ return {
68
+ logLevel: ScrcpyLogLevel.Debug,
69
+ maxSize: 0,
70
+ bitRate: 8000000,
71
+ maxFps: 0,
72
+ lockVideoOrientation: ScrcpyVideoOrientation.Unlocked,
73
+ tunnelForward: false,
74
+ crop: "-",
75
+ sendFrameMeta: true,
76
+ control: true,
77
+ displayId: 0,
78
+ showTouches: false,
79
+ stayAwake: false,
80
+ codecOptions: new CodecOptions({}),
81
+ encoderName: "-",
82
+ };
83
+ }
84
+ formatServerArguments() {
85
+ const defaults = this.getDefaultValue();
86
+ return this.getArgumentOrder().map((key) => toScrcpyOptionValue(this.value[key] || defaults[key], "-"));
87
+ }
88
+ getOutputEncoderNameRegex() {
89
+ return /\s+scrcpy --encoder-name '(.*?)'/;
90
+ }
91
+ createVideoStreamTransformer() {
92
+ // Optimized path for video frames only
93
+ if (this.value.sendFrameMeta === false) {
94
+ return new TransformStream({
95
+ transform(chunk, controller) {
96
+ controller.enqueue({
97
+ type: "frame",
98
+ data: chunk,
99
+ });
100
+ },
101
+ });
102
+ }
103
+ let header;
104
+ const deserializeStream = new StructDeserializeStream(VideoPacket);
105
+ return {
106
+ writable: deserializeStream.writable,
107
+ readable: deserializeStream.readable.pipeThrough(new TransformStream({
108
+ transform(packet, controller) {
109
+ if (packet.pts === NO_PTS) {
110
+ const { sequenceParameterSet, pictureParameterSet, } = parseH264Configuration(packet.data);
111
+ const { profile_idc: profileIndex, constraint_set: constraintSet, level_idc: levelIndex, pic_width_in_mbs_minus1, pic_height_in_map_units_minus1, frame_mbs_only_flag, frame_crop_left_offset, frame_crop_right_offset, frame_crop_top_offset, frame_crop_bottom_offset, } = parseSequenceParameterSet(removeH264Emulation(sequenceParameterSet));
112
+ const encodedWidth = (pic_width_in_mbs_minus1 + 1) * 16;
113
+ const encodedHeight = (pic_height_in_map_units_minus1 + 1) *
114
+ (2 - frame_mbs_only_flag) *
115
+ 16;
116
+ const cropLeft = frame_crop_left_offset * 2;
117
+ const cropRight = frame_crop_right_offset * 2;
118
+ const cropTop = frame_crop_top_offset * 2;
119
+ const cropBottom = frame_crop_bottom_offset * 2;
120
+ const croppedWidth = encodedWidth - cropLeft - cropRight;
121
+ const croppedHeight = encodedHeight - cropTop - cropBottom;
122
+ header = packet.data;
123
+ controller.enqueue({
124
+ type: "configuration",
125
+ pictureParameterSet,
126
+ sequenceParameterSet,
127
+ data: {
128
+ profileIndex,
129
+ constraintSet,
130
+ levelIndex,
131
+ encodedWidth,
132
+ encodedHeight,
133
+ cropLeft,
134
+ cropRight,
135
+ cropTop,
136
+ cropBottom,
137
+ croppedWidth,
138
+ croppedHeight,
139
+ },
140
+ });
141
+ return;
142
+ }
143
+ let frameData;
144
+ if (header) {
145
+ frameData = new Uint8Array(header.byteLength + packet.data.byteLength);
146
+ frameData.set(header);
147
+ frameData.set(packet.data, header.byteLength);
148
+ header = undefined;
149
+ }
150
+ else {
151
+ frameData = packet.data;
152
+ }
153
+ controller.enqueue({
154
+ type: "frame",
155
+ pts: packet.pts,
156
+ data: frameData,
157
+ });
158
+ },
159
+ })),
160
+ };
161
+ }
162
+ getControlMessageTypes() {
163
+ return [
164
+ /* 0 */ ScrcpyControlMessageType.InjectKeyCode,
165
+ /* 1 */ ScrcpyControlMessageType.InjectText,
166
+ /* 2 */ ScrcpyControlMessageType.InjectTouch,
167
+ /* 3 */ ScrcpyControlMessageType.InjectScroll,
168
+ /* 4 */ ScrcpyControlMessageType.BackOrScreenOn,
169
+ /* 5 */ ScrcpyControlMessageType.ExpandNotificationPanel,
170
+ /* 6 */ ScrcpyControlMessageType.CollapseNotificationPanel,
171
+ /* 7 */ ScrcpyControlMessageType.GetClipboard,
172
+ /* 8 */ ScrcpyControlMessageType.SetClipboard,
173
+ /* 9 */ ScrcpyControlMessageType.SetScreenPowerMode,
174
+ /* 10 */ ScrcpyControlMessageType.RotateDevice,
175
+ ];
176
+ }
177
+ serializeBackOrScreenOnControlMessage(message) {
178
+ if (message.action === AndroidKeyEventAction.Down) {
179
+ return ScrcpyBackOrScreenOnControlMessage1_16.serialize(message);
180
+ }
181
+ return undefined;
182
+ }
183
+ serializeSetClipboardControlMessage(message) {
184
+ return ScrcpySetClipboardControlMessage1_15.serialize(message);
185
+ }
186
+ getScrollController() {
187
+ return new ScrcpyScrollController1_16();
188
+ }
189
+ }
188
190
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/1_16/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/1_16/options.ts"],"names":[],"mappings":"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"}