@yume-chan/scrcpy 0.0.16 → 0.0.17

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 (209) hide show
  1. package/CHANGELOG.json +15 -0
  2. package/CHANGELOG.md +9 -1
  3. package/README.md +275 -38
  4. package/esm/adb/client.d.ts +40 -0
  5. package/esm/adb/client.d.ts.map +1 -0
  6. package/esm/adb/client.js +218 -0
  7. package/esm/adb/client.js.map +1 -0
  8. package/esm/adb/connection.d.ts +38 -0
  9. package/esm/adb/connection.d.ts.map +1 -0
  10. package/esm/{connection.js → adb/connection.js} +20 -24
  11. package/esm/adb/connection.js.map +1 -0
  12. package/esm/adb/index.d.ts +4 -0
  13. package/esm/adb/index.d.ts.map +1 -0
  14. package/esm/adb/index.js +4 -0
  15. package/esm/adb/index.js.map +1 -0
  16. package/esm/adb/options/1_16.d.ts +8 -0
  17. package/esm/adb/options/1_16.d.ts.map +1 -0
  18. package/esm/adb/options/1_16.js +20 -0
  19. package/esm/adb/options/1_16.js.map +1 -0
  20. package/esm/adb/options/1_22.d.ts +8 -0
  21. package/esm/adb/options/1_22.d.ts.map +1 -0
  22. package/esm/adb/options/1_22.js +17 -0
  23. package/esm/adb/options/1_22.js.map +1 -0
  24. package/esm/adb/options/index.d.ts +4 -0
  25. package/esm/adb/options/index.d.ts.map +1 -0
  26. package/esm/adb/options/index.js +4 -0
  27. package/esm/adb/options/index.js.map +1 -0
  28. package/esm/adb/options/types.d.ts +23 -0
  29. package/esm/adb/options/types.d.ts.map +1 -0
  30. package/esm/adb/options/types.js +30 -0
  31. package/esm/adb/options/types.js.map +1 -0
  32. package/esm/codec.js +2 -2
  33. package/esm/codec.js.map +1 -1
  34. package/esm/control/index.d.ts +8 -0
  35. package/esm/control/index.d.ts.map +1 -0
  36. package/esm/control/index.js +8 -0
  37. package/esm/control/index.js.map +1 -0
  38. package/esm/control/inject-keycode.d.ts +53 -0
  39. package/esm/control/inject-keycode.d.ts.map +1 -0
  40. package/esm/control/inject-keycode.js +54 -0
  41. package/esm/control/inject-keycode.js.map +1 -0
  42. package/esm/control/inject-text.d.ts +9 -0
  43. package/esm/control/inject-text.d.ts.map +1 -0
  44. package/esm/control/inject-text.js +7 -0
  45. package/esm/control/inject-text.js.map +1 -0
  46. package/esm/control/inject-touch.d.ts +30 -0
  47. package/esm/control/inject-touch.d.ts.map +1 -0
  48. package/esm/control/inject-touch.js +30 -0
  49. package/esm/control/inject-touch.js.map +1 -0
  50. package/esm/control/rotate-device.d.ts +7 -0
  51. package/esm/control/rotate-device.d.ts.map +1 -0
  52. package/esm/control/rotate-device.js +5 -0
  53. package/esm/control/rotate-device.js.map +1 -0
  54. package/esm/control/serializer.d.ts +23 -0
  55. package/esm/control/serializer.d.ts.map +1 -0
  56. package/esm/control/serializer.js +73 -0
  57. package/esm/control/serializer.js.map +1 -0
  58. package/esm/control/set-screen-power-mode.d.ts +12 -0
  59. package/esm/control/set-screen-power-mode.d.ts.map +1 -0
  60. package/esm/control/set-screen-power-mode.js +12 -0
  61. package/esm/control/set-screen-power-mode.js.map +1 -0
  62. package/esm/control/type.d.ts +15 -0
  63. package/esm/control/type.d.ts.map +1 -0
  64. package/esm/control/type.js +19 -0
  65. package/esm/control/type.js.map +1 -0
  66. package/esm/decoder/index.d.ts +27 -3
  67. package/esm/decoder/index.d.ts.map +1 -1
  68. package/esm/decoder/index.js +1 -3
  69. package/esm/decoder/index.js.map +1 -1
  70. package/esm/decoder/tinyh264/index.d.ts +5 -5
  71. package/esm/decoder/tinyh264/index.d.ts.map +1 -1
  72. package/esm/decoder/tinyh264/index.js +4 -4
  73. package/esm/decoder/tinyh264/index.js.map +1 -1
  74. package/esm/decoder/tinyh264/worker.js.map +1 -1
  75. package/esm/decoder/tinyh264/wrapper.d.ts.map +1 -1
  76. package/esm/decoder/tinyh264/wrapper.js +14 -8
  77. package/esm/decoder/tinyh264/wrapper.js.map +1 -1
  78. package/esm/decoder/types.d.ts +1 -27
  79. package/esm/decoder/types.d.ts.map +1 -1
  80. package/esm/decoder/web-codecs/index.d.ts +4 -4
  81. package/esm/decoder/web-codecs/index.d.ts.map +1 -1
  82. package/esm/decoder/web-codecs/index.js +1 -1
  83. package/esm/decoder/web-codecs/index.js.map +1 -1
  84. package/esm/device-message/clipboard.d.ts +10 -0
  85. package/esm/device-message/clipboard.d.ts.map +1 -0
  86. package/esm/device-message/clipboard.js +7 -0
  87. package/esm/device-message/clipboard.js.map +1 -0
  88. package/esm/device-message/index.d.ts +4 -0
  89. package/esm/device-message/index.d.ts.map +1 -0
  90. package/esm/device-message/index.js +4 -0
  91. package/esm/device-message/index.js.map +1 -0
  92. package/esm/device-message/stream.d.ts +7 -0
  93. package/esm/device-message/stream.d.ts.map +1 -0
  94. package/esm/device-message/stream.js +16 -0
  95. package/esm/device-message/stream.js.map +1 -0
  96. package/esm/device-message/type.d.ts +5 -0
  97. package/esm/device-message/type.d.ts.map +1 -0
  98. package/esm/device-message/type.js +7 -0
  99. package/esm/device-message/type.js.map +1 -0
  100. package/esm/index.d.ts +3 -6
  101. package/esm/index.d.ts.map +1 -1
  102. package/esm/index.js +3 -6
  103. package/esm/index.js.map +1 -1
  104. package/esm/options/1_16/codec-options.d.ts +19 -0
  105. package/esm/options/1_16/codec-options.d.ts.map +1 -0
  106. package/esm/options/1_16/codec-options.js +27 -0
  107. package/esm/options/1_16/codec-options.js.map +1 -0
  108. package/esm/options/1_16/index.d.ts +3 -110
  109. package/esm/options/1_16/index.d.ts.map +1 -1
  110. package/esm/options/1_16/index.js +3 -226
  111. package/esm/options/1_16/index.js.map +1 -1
  112. package/esm/options/1_16/options.d.ts +97 -0
  113. package/esm/options/1_16/options.d.ts.map +1 -0
  114. package/esm/options/1_16/options.js +188 -0
  115. package/esm/options/1_16/options.js.map +1 -0
  116. package/esm/options/1_18.d.ts +8 -8
  117. package/esm/options/1_18.d.ts.map +1 -1
  118. package/esm/options/1_18.js +6 -6
  119. package/esm/options/1_18.js.map +1 -1
  120. package/esm/options/1_21.d.ts +1 -1
  121. package/esm/options/1_21.d.ts.map +1 -1
  122. package/esm/options/1_21.js +1 -1
  123. package/esm/options/1_21.js.map +1 -1
  124. package/esm/options/1_22.d.ts +5 -8
  125. package/esm/options/1_22.d.ts.map +1 -1
  126. package/esm/options/1_22.js +4 -17
  127. package/esm/options/1_22.js.map +1 -1
  128. package/esm/options/1_23.d.ts +4 -4
  129. package/esm/options/1_23.d.ts.map +1 -1
  130. package/esm/options/1_23.js +1 -1
  131. package/esm/options/1_23.js.map +1 -1
  132. package/esm/options/1_24.d.ts +1 -1
  133. package/esm/options/1_24.d.ts.map +1 -1
  134. package/esm/options/1_24.js.map +1 -1
  135. package/esm/options/index.d.ts +1 -1
  136. package/esm/options/index.d.ts.map +1 -1
  137. package/esm/options/index.js +1 -1
  138. package/esm/options/index.js.map +1 -1
  139. package/esm/options/types.d.ts +45 -0
  140. package/esm/options/types.d.ts.map +1 -0
  141. package/esm/options/{common.js → types.js} +1 -1
  142. package/esm/options/types.js.map +1 -0
  143. package/package.json +24 -24
  144. package/src/adb/client.ts +292 -0
  145. package/src/{connection.ts → adb/connection.ts} +35 -38
  146. package/src/adb/index.ts +3 -0
  147. package/src/adb/options/1_16.ts +23 -0
  148. package/src/adb/options/1_22.ts +20 -0
  149. package/src/adb/options/index.ts +3 -0
  150. package/src/adb/options/types.ts +55 -0
  151. package/src/control/index.ts +7 -0
  152. package/src/control/inject-keycode.ts +59 -0
  153. package/src/control/inject-text.ts +12 -0
  154. package/src/control/inject-touch.ts +34 -0
  155. package/src/control/rotate-device.ts +10 -0
  156. package/src/control/serializer.ts +86 -0
  157. package/src/control/set-screen-power-mode.ts +17 -0
  158. package/src/control/type.ts +17 -0
  159. package/src/device-message/clipboard.ts +11 -0
  160. package/src/device-message/index.ts +3 -0
  161. package/src/device-message/stream.ts +19 -0
  162. package/src/device-message/type.ts +5 -0
  163. package/src/index.ts +3 -6
  164. package/src/options/1_16/codec-options.ts +48 -0
  165. package/src/options/1_16/index.ts +3 -345
  166. package/src/options/1_16/options.ts +294 -0
  167. package/src/options/1_18.ts +12 -10
  168. package/src/options/1_21.ts +16 -6
  169. package/src/options/1_22.ts +10 -21
  170. package/src/options/1_23.ts +7 -5
  171. package/src/options/1_24.ts +3 -2
  172. package/src/options/index.ts +1 -1
  173. package/src/options/{common.ts → types.ts} +32 -13
  174. package/tsconfig.build.json +3 -0
  175. package/tsconfig.build.tsbuildinfo +1 -0
  176. package/tsconfig.test.tsbuildinfo +1 -0
  177. package/esm/client.d.ts +0 -48
  178. package/esm/client.d.ts.map +0 -1
  179. package/esm/client.js +0 -341
  180. package/esm/client.js.map +0 -1
  181. package/esm/connection.d.ts +0 -37
  182. package/esm/connection.d.ts.map +0 -1
  183. package/esm/connection.js.map +0 -1
  184. package/esm/message.d.ts +0 -98
  185. package/esm/message.d.ts.map +0 -1
  186. package/esm/message.js +0 -98
  187. package/esm/message.js.map +0 -1
  188. package/esm/options/common.d.ts +0 -34
  189. package/esm/options/common.d.ts.map +0 -1
  190. package/esm/options/common.js.map +0 -1
  191. package/esm/push-server.d.ts +0 -6
  192. package/esm/push-server.d.ts.map +0 -1
  193. package/esm/push-server.js +0 -16
  194. package/esm/push-server.js.map +0 -1
  195. package/esm/utils.d.ts +0 -2
  196. package/esm/utils.d.ts.map +0 -1
  197. package/esm/utils.js +0 -6
  198. package/esm/utils.js.map +0 -1
  199. package/src/client.ts +0 -435
  200. package/src/decoder/index.ts +0 -3
  201. package/src/decoder/tinyh264/index.ts +0 -112
  202. package/src/decoder/tinyh264/types.d.ts +0 -137
  203. package/src/decoder/tinyh264/worker.ts +0 -2
  204. package/src/decoder/tinyh264/wrapper.ts +0 -89
  205. package/src/decoder/types.ts +0 -35
  206. package/src/decoder/web-codecs/index.ts +0 -99
  207. package/src/message.ts +0 -113
  208. package/src/push-server.ts +0 -24
  209. package/src/utils.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
package/esm/index.js CHANGED
@@ -1,9 +1,6 @@
1
- export * from './client.js';
1
+ export * from './adb/index.js';
2
2
  export * from './codec.js';
3
- export * from './connection.js';
4
- export * from './decoder/index.js';
5
- export * from './message.js';
3
+ export * from './control/index.js';
4
+ export * from './device-message/index.js';
6
5
  export * from './options/index.js';
7
- export * from './push-server.js';
8
- export * from './utils.js';
9
6
  //# sourceMappingURL=index.js.map
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { AndroidCodecLevel, AndroidCodecProfile } from '../../codec.js';
2
+ import type { ScrcpyOptionValue } from '../types.js';
3
+ /**
4
+ * If the option you need is not in this type,
5
+ * please file an issue on GitHub.
6
+ */
7
+ export interface CodecOptionsInit {
8
+ profile: AndroidCodecProfile;
9
+ level: AndroidCodecLevel;
10
+ iFrameInterval: number;
11
+ repeatPreviousFrameAfter: number;
12
+ maxPtsGapToEncoder: number;
13
+ }
14
+ export declare class CodecOptions implements ScrcpyOptionValue {
15
+ value: Partial<CodecOptionsInit>;
16
+ constructor(value: Partial<CodecOptionsInit>);
17
+ toOptionValue(): string | undefined;
18
+ }
19
+ //# sourceMappingURL=codec-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec-options.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/codec-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IAEzB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAWD,qBAAa,YAAa,YAAW,iBAAiB;IAC3C,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAErB,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAI5C,aAAa,IAAI,MAAM,GAAG,SAAS;CAe7C"}
@@ -0,0 +1,27 @@
1
+ function toDashCase(input) {
2
+ return input.replace(/([A-Z])/g, '-$1').toLowerCase();
3
+ }
4
+ const CODEC_OPTION_TYPES = {
5
+ repeatPreviousFrameAfter: 'long',
6
+ maxPtsGapToEncoder: 'long',
7
+ };
8
+ export class CodecOptions {
9
+ value;
10
+ constructor(value) {
11
+ this.value = value;
12
+ }
13
+ toOptionValue() {
14
+ const entries = Object.entries(this.value)
15
+ .filter(([key, value]) => value !== undefined);
16
+ if (entries.length === 0) {
17
+ return undefined;
18
+ }
19
+ return entries
20
+ .map(([key, value]) => {
21
+ const type = CODEC_OPTION_TYPES[key];
22
+ return `${toDashCase(key)}${type ? `:${type}` : ''}=${value}`;
23
+ })
24
+ .join(',');
25
+ }
26
+ }
27
+ //# sourceMappingURL=codec-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec-options.js","sourceRoot":"","sources":["../../../src/options/1_16/codec-options.ts"],"names":[],"mappings":"AAgBA,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,kBAAkB,GAAyE;IAC7F,wBAAwB,EAAE,MAAM;IAChC,kBAAkB,EAAE,MAAM;CAC7B,CAAC;AAEF,MAAM,OAAO,YAAY;IACd,KAAK,CAA4B;IAExC,YAAmB,KAAgC;QAC/C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,aAAa;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAEnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,OAAO;aACT,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAA6B,CAAC,CAAC;YAC/D,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ"}
@@ -1,111 +1,4 @@
1
- import { TransformStream, type Adb } from "@yume-chan/adb";
2
- import Struct from "@yume-chan/struct";
3
- import type { AndroidCodecLevel, AndroidCodecProfile } from "../../codec.js";
4
- import { ScrcpyClientConnection } from "../../connection.js";
5
- import { ScrcpyControlMessageType } from "../../message.js";
6
- import type { ScrcpyBackOrScreenOnEvent1_18 } from "../1_18.js";
7
- import type { ScrcpyInjectScrollControlMessage1_22 } from "../1_22.js";
8
- import { type ScrcpyOptions, type ScrcpyOptionValue, type VideoStreamPacket } from "../common.js";
9
- export declare enum ScrcpyLogLevel {
10
- Verbose = "verbose",
11
- Debug = "debug",
12
- Info = "info",
13
- Warn = "warn",
14
- Error = "error"
15
- }
16
- export declare enum ScrcpyVideoOrientation {
17
- Initial = -2,
18
- Unlocked = -1,
19
- Portrait = 0,
20
- Landscape = 1,
21
- PortraitFlipped = 2,
22
- LandscapeFlipped = 3
23
- }
24
- export interface CodecOptionsInit {
25
- profile: AndroidCodecProfile;
26
- level: AndroidCodecLevel;
27
- iFrameInterval: number;
28
- repeatPreviousFrameAfter: number;
29
- maxPtsGapToEncoder: number;
30
- }
31
- export declare class CodecOptions implements ScrcpyOptionValue {
32
- value: Partial<CodecOptionsInit>;
33
- constructor(value: Partial<CodecOptionsInit>);
34
- toOptionValue(): string | undefined;
35
- }
36
- export interface ScrcpyOptionsInit1_16 {
37
- logLevel: ScrcpyLogLevel;
38
- /**
39
- * The maximum value of both width and height.
40
- */
41
- maxSize: number;
42
- bitRate: number;
43
- /**
44
- * 0 for unlimited.
45
- *
46
- * @default 0
47
- */
48
- maxFps: number;
49
- /**
50
- * The orientation of the video stream.
51
- *
52
- * It will not keep the device screen in specific orientation,
53
- * only the captured video will in this orientation.
54
- */
55
- lockVideoOrientation: ScrcpyVideoOrientation;
56
- tunnelForward: boolean;
57
- crop: string;
58
- /**
59
- * Send PTS so that the client may record properly
60
- *
61
- * Note: When `sendFrameMeta: false` is specified,
62
- * `onChangeEncoding` event won't fire and `onVideoData` event doesn't
63
- * merge sps/pps frame and first video frame. Which means you can't use
64
- * the shipped decoders to render the video
65
- * (You can still record the stream into a file).
66
- *
67
- * @default true
68
- */
69
- sendFrameMeta: boolean;
70
- /**
71
- * @default true
72
- */
73
- control: boolean;
74
- displayId: number;
75
- showTouches: boolean;
76
- stayAwake: boolean;
77
- codecOptions: CodecOptions;
78
- encoderName: string;
79
- }
80
- export declare const VideoPacket: Struct<{
81
- pts: bigint;
82
- size: number;
83
- data: Uint8Array;
84
- }, "size", {}, undefined>;
85
- export declare const NO_PTS: bigint;
86
- export declare const ScrcpyBackOrScreenOnEvent1_16: Struct<{
87
- type: number;
88
- }, never, {}, undefined>;
89
- export declare const ScrcpyInjectScrollControlMessage1_16: Struct<{
90
- type: number;
91
- pointerX: number;
92
- pointerY: number;
93
- screenWidth: number;
94
- screenHeight: number;
95
- scrollX: number;
96
- scrollY: number;
97
- }, never, {}, undefined>;
98
- export declare class ScrcpyOptions1_16<T extends ScrcpyOptionsInit1_16 = ScrcpyOptionsInit1_16> implements ScrcpyOptions<T> {
99
- value: Partial<T>;
100
- constructor(value: Partial<ScrcpyOptionsInit1_16>);
101
- protected getArgumentOrder(): (keyof T)[];
102
- protected getDefaultValue(): T;
103
- formatServerArguments(): string[];
104
- createConnection(adb: Adb): ScrcpyClientConnection;
105
- getOutputEncoderNameRegex(): RegExp;
106
- createVideoStreamTransformer(): TransformStream<Uint8Array, VideoStreamPacket>;
107
- getControlMessageTypes(): ScrcpyControlMessageType[];
108
- serializeBackOrScreenOnControlMessage(message: ScrcpyBackOrScreenOnEvent1_18): Uint8Array | undefined;
109
- serializeInjectScrollControlMessage(message: ScrcpyInjectScrollControlMessage1_22): Uint8Array;
110
- }
1
+ export * from './codec-options.js';
2
+ export * from './options.js';
3
+ export * from './sps.js';
111
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -1,227 +1,4 @@
1
- import { StructDeserializeStream, TransformStream } from "@yume-chan/adb";
2
- import Struct from "@yume-chan/struct";
3
- import { ScrcpyClientForwardConnection, ScrcpyClientReverseConnection } from "../../connection.js";
4
- import { AndroidKeyEventAction, ScrcpyControlMessageType, ScrcpySimpleControlMessage } from "../../message.js";
5
- import { toScrcpyOptionValue } from "../common.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 = {}));
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 = {}));
24
- function toDashCase(input) {
25
- return input.replace(/([A-Z])/g, '-$1').toLowerCase();
26
- }
27
- const CODEC_OPTION_TYPES = {
28
- repeatPreviousFrameAfter: 'long',
29
- maxPtsGapToEncoder: 'long',
30
- };
31
- export class CodecOptions {
32
- value;
33
- constructor(value) {
34
- this.value = value;
35
- }
36
- toOptionValue() {
37
- const entries = Object.entries(this.value)
38
- .filter(([key, value]) => value !== undefined);
39
- if (entries.length === 0) {
40
- return undefined;
41
- }
42
- return entries
43
- .map(([key, value]) => {
44
- const type = CODEC_OPTION_TYPES[key];
45
- return `${toDashCase(key)}${type ? `:${type}` : ''}=${value}`;
46
- })
47
- .join(',');
48
- }
49
- }
50
- export const VideoPacket = new Struct()
51
- .uint64('pts')
52
- .uint32('size')
53
- .uint8Array('data', { lengthField: 'size' });
54
- export const NO_PTS = BigInt(1) << BigInt(63);
55
- export const ScrcpyBackOrScreenOnEvent1_16 = ScrcpySimpleControlMessage;
56
- export const ScrcpyInjectScrollControlMessage1_16 = new Struct()
57
- .fields(ScrcpySimpleControlMessage)
58
- .uint32('pointerX')
59
- .uint32('pointerY')
60
- .uint16('screenWidth')
61
- .uint16('screenHeight')
62
- .int32('scrollX')
63
- .int32('scrollY');
64
- export class ScrcpyOptions1_16 {
65
- value;
66
- constructor(value) {
67
- if (new.target === ScrcpyOptions1_16 &&
68
- value.logLevel === ScrcpyLogLevel.Verbose) {
69
- value.logLevel = ScrcpyLogLevel.Debug;
70
- }
71
- if (new.target === ScrcpyOptions1_16 &&
72
- value.lockVideoOrientation === ScrcpyVideoOrientation.Initial) {
73
- value.lockVideoOrientation = ScrcpyVideoOrientation.Unlocked;
74
- }
75
- this.value = value;
76
- }
77
- getArgumentOrder() {
78
- return [
79
- 'logLevel',
80
- 'maxSize',
81
- 'bitRate',
82
- 'maxFps',
83
- 'lockVideoOrientation',
84
- 'tunnelForward',
85
- 'crop',
86
- 'sendFrameMeta',
87
- 'control',
88
- 'displayId',
89
- 'showTouches',
90
- 'stayAwake',
91
- 'codecOptions',
92
- 'encoderName',
93
- ];
94
- }
95
- getDefaultValue() {
96
- return {
97
- logLevel: ScrcpyLogLevel.Debug,
98
- maxSize: 0,
99
- bitRate: 8000000,
100
- maxFps: 0,
101
- lockVideoOrientation: ScrcpyVideoOrientation.Unlocked,
102
- tunnelForward: false,
103
- crop: '-',
104
- sendFrameMeta: true,
105
- control: true,
106
- displayId: 0,
107
- showTouches: false,
108
- stayAwake: false,
109
- codecOptions: new CodecOptions({}),
110
- encoderName: '-',
111
- };
112
- }
113
- formatServerArguments() {
114
- const defaults = this.getDefaultValue();
115
- return this.getArgumentOrder()
116
- .map(key => toScrcpyOptionValue(this.value[key] || defaults[key], '-'));
117
- }
118
- createConnection(adb) {
119
- const options = {
120
- // Old scrcpy connection always have control stream no matter what the option is
121
- control: true,
122
- sendDummyByte: true,
123
- sendDeviceMeta: true,
124
- };
125
- if (this.value.tunnelForward) {
126
- return new ScrcpyClientForwardConnection(adb, options);
127
- }
128
- else {
129
- return new ScrcpyClientReverseConnection(adb, options);
130
- }
131
- }
132
- getOutputEncoderNameRegex() {
133
- return /\s+scrcpy --encoder-name '(.*?)'/;
134
- }
135
- createVideoStreamTransformer() {
136
- // Optimized path for video frames only
137
- if (this.value.sendFrameMeta === false) {
138
- return new TransformStream({
139
- transform(chunk, controller) {
140
- controller.enqueue({
141
- type: 'frame',
142
- data: chunk,
143
- });
144
- },
145
- });
146
- }
147
- let header;
148
- let deserializeStream = new StructDeserializeStream(VideoPacket);
149
- return {
150
- writable: deserializeStream.writable,
151
- readable: deserializeStream.readable.pipeThrough(new TransformStream({
152
- transform(packet, controller) {
153
- if (packet.pts === NO_PTS) {
154
- const sequenceParameterSet = parse_sequence_parameter_set(packet.data.slice().buffer);
155
- 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;
156
- const encodedWidth = (pic_width_in_mbs_minus1 + 1) * 16;
157
- const encodedHeight = (pic_height_in_map_units_minus1 + 1) * (2 - frame_mbs_only_flag) * 16;
158
- const cropLeft = frame_crop_left_offset * 2;
159
- const cropRight = frame_crop_right_offset * 2;
160
- const cropTop = frame_crop_top_offset * 2;
161
- const cropBottom = frame_crop_bottom_offset * 2;
162
- const croppedWidth = encodedWidth - cropLeft - cropRight;
163
- const croppedHeight = encodedHeight - cropTop - cropBottom;
164
- header = packet.data;
165
- controller.enqueue({
166
- type: 'configuration',
167
- data: {
168
- profileIndex,
169
- constraintSet,
170
- levelIndex,
171
- encodedWidth,
172
- encodedHeight,
173
- cropLeft,
174
- cropRight,
175
- cropTop,
176
- cropBottom,
177
- croppedWidth,
178
- croppedHeight,
179
- }
180
- });
181
- return;
182
- }
183
- let frameData;
184
- if (header) {
185
- frameData = new Uint8Array(header.byteLength + packet.data.byteLength);
186
- frameData.set(header);
187
- frameData.set(packet.data, header.byteLength);
188
- header = undefined;
189
- }
190
- else {
191
- frameData = packet.data;
192
- }
193
- controller.enqueue({
194
- type: 'frame',
195
- pts: packet.pts,
196
- data: frameData,
197
- });
198
- }
199
- }))
200
- };
201
- }
202
- getControlMessageTypes() {
203
- return [
204
- /* 0 */ ScrcpyControlMessageType.InjectKeycode,
205
- /* 1 */ ScrcpyControlMessageType.InjectText,
206
- /* 2 */ ScrcpyControlMessageType.InjectTouch,
207
- /* 3 */ ScrcpyControlMessageType.InjectScroll,
208
- /* 4 */ ScrcpyControlMessageType.BackOrScreenOn,
209
- /* 5 */ ScrcpyControlMessageType.ExpandNotificationPanel,
210
- /* 6 */ ScrcpyControlMessageType.CollapseNotificationPanel,
211
- /* 7 */ ScrcpyControlMessageType.GetClipboard,
212
- /* 8 */ ScrcpyControlMessageType.SetClipboard,
213
- /* 9 */ ScrcpyControlMessageType.SetScreenPowerMode,
214
- /* 10 */ ScrcpyControlMessageType.RotateDevice,
215
- ];
216
- }
217
- serializeBackOrScreenOnControlMessage(message) {
218
- if (message.action === AndroidKeyEventAction.Down) {
219
- return ScrcpyBackOrScreenOnEvent1_16.serialize(message);
220
- }
221
- return undefined;
222
- }
223
- serializeInjectScrollControlMessage(message) {
224
- return ScrcpyInjectScrollControlMessage1_16.serialize(message);
225
- }
226
- }
1
+ export * from './codec-options.js';
2
+ export * from './options.js';
3
+ export * from './sps.js';
227
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/1_16/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,97 @@
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
+ }
97
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +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"}