@yume-chan/scrcpy 2.3.0 → 3.0.0-beta.0

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 (437) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm/1_15/impl/codec-options.d.ts +146 -0
  4. package/esm/1_15/impl/codec-options.d.ts.map +1 -0
  5. package/esm/1_15/impl/codec-options.js +192 -0
  6. package/esm/1_15/impl/codec-options.js.map +1 -0
  7. package/esm/1_15/impl/control-message-types.d.ts +13 -2
  8. package/esm/1_15/impl/control-message-types.d.ts.map +1 -1
  9. package/esm/1_15/impl/control-message-types.js +13 -14
  10. package/esm/1_15/impl/control-message-types.js.map +1 -1
  11. package/esm/1_15/impl/index.d.ts +1 -0
  12. package/esm/1_15/impl/index.d.ts.map +1 -1
  13. package/esm/1_15/impl/index.js +1 -0
  14. package/esm/1_15/impl/index.js.map +1 -1
  15. package/esm/1_15/impl/init.d.ts +1 -22
  16. package/esm/1_15/impl/init.d.ts.map +1 -1
  17. package/esm/1_15/impl/init.js +0 -39
  18. package/esm/1_15/impl/init.js.map +1 -1
  19. package/esm/1_15/impl/inject-touch.d.ts.map +1 -1
  20. package/esm/1_15/impl/inject-touch.js +1 -0
  21. package/esm/1_15/impl/inject-touch.js.map +1 -1
  22. package/esm/1_15/impl/scroll-controller.d.ts.map +1 -1
  23. package/esm/1_15/impl/scroll-controller.js +1 -0
  24. package/esm/1_15/impl/scroll-controller.js.map +1 -1
  25. package/esm/1_15/impl/set-clipboard.d.ts.map +1 -1
  26. package/esm/1_15/impl/set-clipboard.js +5 -1
  27. package/esm/1_15/impl/set-clipboard.js.map +1 -1
  28. package/esm/1_15/options.d.ts +3 -2
  29. package/esm/1_15/options.d.ts.map +1 -1
  30. package/esm/1_15/options.js.map +1 -1
  31. package/esm/1_15_1.d.ts +1 -7
  32. package/esm/1_15_1.d.ts.map +1 -1
  33. package/esm/1_15_1.js +1 -6
  34. package/esm/1_15_1.js.map +1 -1
  35. package/esm/1_16.d.ts +1 -7
  36. package/esm/1_16.d.ts.map +1 -1
  37. package/esm/1_16.js +1 -6
  38. package/esm/1_16.js.map +1 -1
  39. package/esm/1_17/impl/defaults.d.ts.map +1 -1
  40. package/esm/1_17/impl/defaults.js +2 -2
  41. package/esm/1_17/impl/defaults.js.map +1 -1
  42. package/esm/1_17/options.d.ts +3 -2
  43. package/esm/1_17/options.d.ts.map +1 -1
  44. package/esm/1_17/options.js.map +1 -1
  45. package/esm/1_18/impl/control-message-types.d.ts +14 -2
  46. package/esm/1_18/impl/control-message-types.d.ts.map +1 -1
  47. package/esm/1_18/impl/control-message-types.js +14 -7
  48. package/esm/1_18/impl/control-message-types.js.map +1 -1
  49. package/esm/1_18/impl/defaults.d.ts.map +1 -1
  50. package/esm/1_18/impl/defaults.js +2 -2
  51. package/esm/1_18/impl/defaults.js.map +1 -1
  52. package/esm/1_18/impl/init.d.ts.map +1 -1
  53. package/esm/1_18/options.d.ts +3 -2
  54. package/esm/1_18/options.d.ts.map +1 -1
  55. package/esm/1_18/options.js.map +1 -1
  56. package/esm/1_19.d.ts +1 -7
  57. package/esm/1_19.d.ts.map +1 -1
  58. package/esm/1_19.js +1 -6
  59. package/esm/1_19.js.map +1 -1
  60. package/esm/1_20.d.ts +1 -7
  61. package/esm/1_20.d.ts.map +1 -1
  62. package/esm/1_20.js +1 -6
  63. package/esm/1_20.js.map +1 -1
  64. package/esm/1_21/impl/defaults.d.ts.map +1 -1
  65. package/esm/1_21/impl/defaults.js +2 -2
  66. package/esm/1_21/impl/defaults.js.map +1 -1
  67. package/esm/1_21/impl/index.d.ts +1 -1
  68. package/esm/1_21/impl/index.d.ts.map +1 -1
  69. package/esm/1_21/impl/index.js +1 -1
  70. package/esm/1_21/impl/index.js.map +1 -1
  71. package/esm/1_21/impl/set-clipboard.d.ts +1 -0
  72. package/esm/1_21/impl/set-clipboard.d.ts.map +1 -1
  73. package/esm/1_21/impl/set-clipboard.js +7 -0
  74. package/esm/1_21/impl/set-clipboard.js.map +1 -1
  75. package/esm/1_21/options.d.ts +3 -2
  76. package/esm/1_21/options.d.ts.map +1 -1
  77. package/esm/1_21/options.js +6 -4
  78. package/esm/1_21/options.js.map +1 -1
  79. package/esm/1_22/impl/defaults.d.ts.map +1 -1
  80. package/esm/1_22/impl/defaults.js +2 -2
  81. package/esm/1_22/impl/defaults.js.map +1 -1
  82. package/esm/1_22/options.d.ts +3 -2
  83. package/esm/1_22/options.d.ts.map +1 -1
  84. package/esm/1_22/options.js +6 -4
  85. package/esm/1_22/options.js.map +1 -1
  86. package/esm/1_23/impl/defaults.d.ts.map +1 -1
  87. package/esm/1_23/impl/defaults.js +2 -2
  88. package/esm/1_23/impl/defaults.js.map +1 -1
  89. package/esm/1_23/options.d.ts +3 -2
  90. package/esm/1_23/options.d.ts.map +1 -1
  91. package/esm/1_23/options.js +6 -4
  92. package/esm/1_23/options.js.map +1 -1
  93. package/esm/1_24/impl/defaults.d.ts.map +1 -1
  94. package/esm/1_24/impl/defaults.js +2 -2
  95. package/esm/1_24/impl/defaults.js.map +1 -1
  96. package/esm/1_24/options.d.ts +3 -2
  97. package/esm/1_24/options.d.ts.map +1 -1
  98. package/esm/1_24/options.js +6 -4
  99. package/esm/1_24/options.js.map +1 -1
  100. package/esm/1_25/impl/scroll-controller.d.ts +2 -2
  101. package/esm/1_25/impl/scroll-controller.d.ts.map +1 -1
  102. package/esm/1_25/impl/scroll-controller.js +4 -4
  103. package/esm/1_25/impl/scroll-controller.js.map +1 -1
  104. package/esm/1_25/options.d.ts +3 -2
  105. package/esm/1_25/options.d.ts.map +1 -1
  106. package/esm/1_25/options.js +6 -4
  107. package/esm/1_25/options.js.map +1 -1
  108. package/esm/2_0/impl/defaults.d.ts +3 -3
  109. package/esm/2_0/impl/defaults.d.ts.map +1 -1
  110. package/esm/2_0/impl/defaults.js +10 -4
  111. package/esm/2_0/impl/defaults.js.map +1 -1
  112. package/esm/2_0/impl/init.d.ts.map +1 -1
  113. package/esm/2_0/impl/inject-touch.d.ts +2 -2
  114. package/esm/2_0/impl/inject-touch.d.ts.map +1 -1
  115. package/esm/2_0/impl/inject-touch.js +4 -4
  116. package/esm/2_0/impl/inject-touch.js.map +1 -1
  117. package/esm/2_0/impl/parse-audio-stream-metadata.d.ts.map +1 -1
  118. package/esm/2_0/impl/parse-audio-stream-metadata.js +2 -7
  119. package/esm/2_0/impl/parse-audio-stream-metadata.js.map +1 -1
  120. package/esm/2_0/options.d.ts +6 -5
  121. package/esm/2_0/options.d.ts.map +1 -1
  122. package/esm/2_0/options.js +6 -4
  123. package/esm/2_0/options.js.map +1 -1
  124. package/esm/2_1/impl/defaults.d.ts +3 -3
  125. package/esm/2_1/impl/defaults.d.ts.map +1 -1
  126. package/esm/2_1/impl/defaults.js +2 -2
  127. package/esm/2_1/impl/defaults.js.map +1 -1
  128. package/esm/2_1/options.d.ts +6 -5
  129. package/esm/2_1/options.d.ts.map +1 -1
  130. package/esm/2_1/options.js +6 -4
  131. package/esm/2_1/options.js.map +1 -1
  132. package/esm/2_1_1.d.ts +1 -7
  133. package/esm/2_1_1.d.ts.map +1 -1
  134. package/esm/2_1_1.js +1 -6
  135. package/esm/2_1_1.js.map +1 -1
  136. package/esm/2_2/impl/defaults.d.ts +3 -3
  137. package/esm/2_2/impl/defaults.d.ts.map +1 -1
  138. package/esm/2_2/impl/defaults.js +2 -2
  139. package/esm/2_2/impl/defaults.js.map +1 -1
  140. package/esm/2_2/options.d.ts +6 -5
  141. package/esm/2_2/options.d.ts.map +1 -1
  142. package/esm/2_2/options.js +6 -4
  143. package/esm/2_2/options.js.map +1 -1
  144. package/esm/2_3/impl/init.d.ts.map +1 -1
  145. package/esm/2_3/options.d.ts +6 -5
  146. package/esm/2_3/options.d.ts.map +1 -1
  147. package/esm/2_3/options.js +6 -4
  148. package/esm/2_3/options.js.map +1 -1
  149. package/esm/2_3_1.d.ts +1 -7
  150. package/esm/2_3_1.d.ts.map +1 -1
  151. package/esm/2_3_1.js +1 -6
  152. package/esm/2_3_1.js.map +1 -1
  153. package/esm/2_4/impl/control-message-types.d.ts +17 -2
  154. package/esm/2_4/impl/control-message-types.d.ts.map +1 -1
  155. package/esm/2_4/impl/control-message-types.js +17 -8
  156. package/esm/2_4/impl/control-message-types.js.map +1 -1
  157. package/esm/2_4/impl/serialize-uhid-create.d.ts.map +1 -1
  158. package/esm/2_4/impl/serialize-uhid-create.js +1 -0
  159. package/esm/2_4/impl/serialize-uhid-create.js.map +1 -1
  160. package/esm/2_4/options.d.ts +6 -5
  161. package/esm/2_4/options.d.ts.map +1 -1
  162. package/esm/2_4/options.js +3 -3
  163. package/esm/2_4/options.js.map +1 -1
  164. package/esm/2_5.d.ts +1 -7
  165. package/esm/2_5.d.ts.map +1 -1
  166. package/esm/2_5.js +1 -6
  167. package/esm/2_5.js.map +1 -1
  168. package/esm/2_6/impl/defaults.d.ts +3 -3
  169. package/esm/2_6/impl/defaults.d.ts.map +1 -1
  170. package/esm/2_6/impl/defaults.js +2 -2
  171. package/esm/2_6/impl/defaults.js.map +1 -1
  172. package/esm/2_6/impl/init.d.ts.map +1 -1
  173. package/esm/2_6/options.d.ts +6 -5
  174. package/esm/2_6/options.d.ts.map +1 -1
  175. package/esm/2_6/options.js +3 -3
  176. package/esm/2_6/options.js.map +1 -1
  177. package/esm/2_6_1.d.ts +1 -7
  178. package/esm/2_6_1.d.ts.map +1 -1
  179. package/esm/2_6_1.js +1 -6
  180. package/esm/2_6_1.js.map +1 -1
  181. package/esm/2_7/impl/control-message-types.d.ts +18 -2
  182. package/esm/2_7/impl/control-message-types.d.ts.map +1 -1
  183. package/esm/2_7/impl/control-message-types.js +18 -7
  184. package/esm/2_7/impl/control-message-types.js.map +1 -1
  185. package/esm/2_7/impl/serialize-uhid-create.d.ts.map +1 -1
  186. package/esm/2_7/impl/serialize-uhid-create.js +1 -0
  187. package/esm/2_7/impl/serialize-uhid-create.js.map +1 -1
  188. package/esm/2_7/options.d.ts +6 -5
  189. package/esm/2_7/options.d.ts.map +1 -1
  190. package/esm/2_7/options.js +3 -3
  191. package/esm/2_7/options.js.map +1 -1
  192. package/esm/3_0/impl/control-message-types.d.ts +20 -2
  193. package/esm/3_0/impl/control-message-types.d.ts.map +1 -1
  194. package/esm/3_0/impl/control-message-types.js +20 -7
  195. package/esm/3_0/impl/control-message-types.js.map +1 -1
  196. package/esm/3_0/impl/defaults.d.ts +4 -4
  197. package/esm/3_0/impl/defaults.d.ts.map +1 -1
  198. package/esm/3_0/impl/defaults.js +8 -4
  199. package/esm/3_0/impl/defaults.js.map +1 -1
  200. package/esm/3_0/impl/init.d.ts.map +1 -1
  201. package/esm/3_0/options.d.ts +7 -6
  202. package/esm/3_0/options.d.ts.map +1 -1
  203. package/esm/3_0/options.js +3 -3
  204. package/esm/3_0/options.js.map +1 -1
  205. package/esm/3_0_1.d.ts +1 -7
  206. package/esm/3_0_1.d.ts.map +1 -1
  207. package/esm/3_0_1.js +1 -6
  208. package/esm/3_0_1.js.map +1 -1
  209. package/esm/3_0_2.d.ts +1 -7
  210. package/esm/3_0_2.d.ts.map +1 -1
  211. package/esm/3_0_2.js +1 -6
  212. package/esm/3_0_2.js.map +1 -1
  213. package/esm/3_1/impl/defaults.d.ts +4 -4
  214. package/esm/3_1/impl/defaults.d.ts.map +1 -1
  215. package/esm/3_1/impl/defaults.js +2 -2
  216. package/esm/3_1/impl/defaults.js.map +1 -1
  217. package/esm/3_1/impl/serialize-uhid-create.d.ts.map +1 -1
  218. package/esm/3_1/impl/serialize-uhid-create.js +1 -0
  219. package/esm/3_1/impl/serialize-uhid-create.js.map +1 -1
  220. package/esm/3_1/options.d.ts +7 -6
  221. package/esm/3_1/options.d.ts.map +1 -1
  222. package/esm/3_1/options.js +3 -3
  223. package/esm/3_1/options.js.map +1 -1
  224. package/esm/3_2/impl/defaults.d.ts +4 -4
  225. package/esm/3_2/impl/defaults.d.ts.map +1 -1
  226. package/esm/3_2/impl/defaults.js +2 -2
  227. package/esm/3_2/impl/defaults.js.map +1 -1
  228. package/esm/3_2/impl/init.d.ts.map +1 -1
  229. package/esm/3_2/options.d.ts +7 -6
  230. package/esm/3_2/options.d.ts.map +1 -1
  231. package/esm/3_2/options.js +3 -3
  232. package/esm/3_2/options.js.map +1 -1
  233. package/esm/3_3.d.ts +1 -7
  234. package/esm/3_3.d.ts.map +1 -1
  235. package/esm/3_3.js +1 -6
  236. package/esm/3_3.js.map +1 -1
  237. package/esm/3_3_1/options.d.ts +7 -6
  238. package/esm/3_3_1/options.d.ts.map +1 -1
  239. package/esm/3_3_1/options.js +3 -3
  240. package/esm/3_3_1/options.js.map +1 -1
  241. package/esm/3_3_2.d.ts +1 -7
  242. package/esm/3_3_2.d.ts.map +1 -1
  243. package/esm/3_3_2.js +1 -6
  244. package/esm/3_3_2.js.map +1 -1
  245. package/esm/3_3_4.d.ts +2 -0
  246. package/esm/3_3_4.d.ts.map +1 -0
  247. package/esm/3_3_4.js +2 -0
  248. package/esm/3_3_4.js.map +1 -0
  249. package/esm/android/key-code-value.d.ts +176 -0
  250. package/esm/android/key-code-value.d.ts.map +1 -0
  251. package/esm/android/key-code-value.js +180 -0
  252. package/esm/android/key-code-value.js.map +1 -0
  253. package/esm/android/key-event.d.ts +3 -164
  254. package/esm/android/key-event.d.ts.map +1 -1
  255. package/esm/android/key-event.js +2 -167
  256. package/esm/android/key-event.js.map +1 -1
  257. package/esm/base/control-message-type-value.d.ts +19 -0
  258. package/esm/base/control-message-type-value.d.ts.map +1 -0
  259. package/esm/base/control-message-type-value.js +19 -0
  260. package/esm/base/control-message-type-value.js.map +1 -0
  261. package/esm/base/control-message-type.d.ts +3 -21
  262. package/esm/base/control-message-type.d.ts.map +1 -1
  263. package/esm/base/control-message-type.js +2 -21
  264. package/esm/base/control-message-type.js.map +1 -1
  265. package/esm/base/options.d.ts +2 -1
  266. package/esm/base/options.d.ts.map +1 -1
  267. package/esm/control/index.d.ts +0 -1
  268. package/esm/control/index.d.ts.map +1 -1
  269. package/esm/control/index.js +0 -1
  270. package/esm/control/index.js.map +1 -1
  271. package/esm/control/inject-key-code.d.ts +2 -2
  272. package/esm/control/inject-key-code.d.ts.map +1 -1
  273. package/esm/control/inject-key-code.js +4 -4
  274. package/esm/control/inject-key-code.js.map +1 -1
  275. package/esm/control/inject-text.d.ts.map +1 -1
  276. package/esm/control/inject-text.js +5 -1
  277. package/esm/control/inject-text.js.map +1 -1
  278. package/esm/control/serializer.d.ts +2 -0
  279. package/esm/control/serializer.d.ts.map +1 -1
  280. package/esm/control/serializer.js +27 -19
  281. package/esm/control/serializer.js.map +1 -1
  282. package/esm/control/set-screen-power-mode.d.ts.map +1 -1
  283. package/esm/control/set-screen-power-mode.js +5 -1
  284. package/esm/control/set-screen-power-mode.js.map +1 -1
  285. package/esm/control/start-app.d.ts.map +1 -1
  286. package/esm/control/start-app.js +1 -0
  287. package/esm/control/start-app.js.map +1 -1
  288. package/esm/control/uhid.d.ts +2 -2
  289. package/esm/control/uhid.d.ts.map +1 -1
  290. package/esm/control/uhid.js +9 -5
  291. package/esm/control/uhid.js.map +1 -1
  292. package/esm/control/writer.d.ts +1 -1
  293. package/esm/control/writer.d.ts.map +1 -1
  294. package/esm/control/writer.js +1 -1
  295. package/esm/control/writer.js.map +1 -1
  296. package/esm/index.d.ts +2 -1
  297. package/esm/index.d.ts.map +1 -1
  298. package/esm/index.js +2 -1
  299. package/esm/index.js.map +1 -1
  300. package/esm/latest.d.ts +2 -2
  301. package/esm/latest.d.ts.map +1 -1
  302. package/esm/latest.js +2 -2
  303. package/esm/latest.js.map +1 -1
  304. package/esm/video/android.d.ts +69 -0
  305. package/esm/video/android.d.ts.map +1 -0
  306. package/esm/video/android.js +70 -0
  307. package/esm/video/android.js.map +1 -0
  308. package/esm/video/index.d.ts +3 -0
  309. package/esm/video/index.d.ts.map +1 -0
  310. package/esm/video/index.js +3 -0
  311. package/esm/video/index.js.map +1 -0
  312. package/esm/video/size.d.ts +21 -0
  313. package/esm/video/size.d.ts.map +1 -0
  314. package/esm/video/size.js +27 -0
  315. package/esm/video/size.js.map +1 -0
  316. package/package.json +11 -10
  317. package/src/1_15/impl/codec-options.ts +236 -0
  318. package/src/1_15/impl/control-message-types.ts +14 -14
  319. package/src/1_15/impl/index.ts +1 -0
  320. package/src/1_15/impl/init.ts +2 -76
  321. package/src/1_15/impl/inject-touch.ts +1 -0
  322. package/src/1_15/impl/scroll-controller.ts +1 -0
  323. package/src/1_15/impl/set-clipboard.ts +5 -1
  324. package/src/1_15/options.ts +1 -2
  325. package/src/1_15_1.ts +1 -11
  326. package/src/1_16.ts +1 -11
  327. package/src/1_17/impl/defaults.ts +4 -5
  328. package/src/1_17/options.ts +1 -2
  329. package/src/1_18/impl/control-message-types.ts +15 -8
  330. package/src/1_18/impl/defaults.ts +6 -7
  331. package/src/1_18/impl/init.ts +4 -2
  332. package/src/1_18/options.ts +1 -2
  333. package/src/1_19.ts +1 -11
  334. package/src/1_20.ts +1 -11
  335. package/src/1_21/impl/defaults.ts +4 -5
  336. package/src/1_21/impl/index.ts +1 -0
  337. package/src/1_21/impl/set-clipboard.ts +14 -0
  338. package/src/1_21/options.ts +10 -7
  339. package/src/1_22/impl/defaults.ts +6 -7
  340. package/src/1_22/options.ts +10 -7
  341. package/src/1_23/impl/defaults.ts +4 -5
  342. package/src/1_23/options.ts +10 -7
  343. package/src/1_24/impl/defaults.ts +4 -5
  344. package/src/1_24/options.ts +10 -7
  345. package/src/1_25/impl/scroll-controller.ts +14 -15
  346. package/src/1_25/options.ts +10 -7
  347. package/src/2_0/impl/defaults.ts +24 -19
  348. package/src/2_0/impl/init.ts +4 -2
  349. package/src/2_0/impl/inject-touch.ts +16 -17
  350. package/src/2_0/impl/parse-audio-stream-metadata.ts +3 -7
  351. package/src/2_0/options.ts +10 -7
  352. package/src/2_1/impl/defaults.ts +5 -6
  353. package/src/2_1/options.ts +10 -7
  354. package/src/2_1_1.ts +1 -14
  355. package/src/2_2/impl/defaults.ts +13 -14
  356. package/src/2_2/options.ts +10 -7
  357. package/src/2_3/impl/init.ts +4 -2
  358. package/src/2_3/options.ts +10 -7
  359. package/src/2_3_1.ts +1 -14
  360. package/src/2_4/impl/control-message-types.ts +18 -9
  361. package/src/2_4/impl/serialize-uhid-create.ts +1 -0
  362. package/src/2_4/options.ts +8 -7
  363. package/src/2_5.ts +1 -14
  364. package/src/2_6/impl/defaults.ts +4 -5
  365. package/src/2_6/impl/init.ts +4 -2
  366. package/src/2_6/options.ts +8 -7
  367. package/src/2_6_1.ts +1 -14
  368. package/src/2_7/impl/control-message-types.ts +19 -8
  369. package/src/2_7/impl/serialize-uhid-create.ts +1 -0
  370. package/src/2_7/options.ts +8 -7
  371. package/src/3_0/impl/control-message-types.ts +21 -8
  372. package/src/3_0/impl/defaults.ts +15 -12
  373. package/src/3_0/impl/init.ts +4 -2
  374. package/src/3_0/options.ts +8 -7
  375. package/src/3_0_1.ts +1 -14
  376. package/src/3_0_2.ts +1 -14
  377. package/src/3_1/impl/defaults.ts +4 -5
  378. package/src/3_1/impl/serialize-uhid-create.ts +1 -0
  379. package/src/3_1/options.ts +8 -7
  380. package/src/3_2/impl/defaults.ts +4 -5
  381. package/src/3_2/impl/init.ts +4 -2
  382. package/src/3_2/options.ts +8 -7
  383. package/src/3_3.ts +1 -14
  384. package/src/3_3_1/options.ts +8 -7
  385. package/src/3_3_2.ts +1 -14
  386. package/src/3_3_4.ts +1 -0
  387. package/src/android/key-code-value.ts +194 -0
  388. package/src/android/key-event.ts +5 -182
  389. package/src/base/control-message-type-value.ts +18 -0
  390. package/src/base/control-message-type.ts +6 -22
  391. package/src/base/options.ts +5 -1
  392. package/src/control/index.ts +0 -1
  393. package/src/control/inject-key-code.ts +11 -12
  394. package/src/control/inject-text.ts +5 -1
  395. package/src/control/serializer.ts +32 -36
  396. package/src/control/set-screen-power-mode.ts +5 -1
  397. package/src/control/start-app.ts +1 -0
  398. package/src/control/uhid.ts +14 -12
  399. package/src/control/writer.ts +1 -1
  400. package/src/index.ts +2 -1
  401. package/src/latest.ts +2 -1
  402. package/src/video/android.ts +72 -0
  403. package/src/video/index.ts +2 -0
  404. package/src/video/size.ts +40 -0
  405. package/tsconfig.build.json +0 -8
  406. package/CHANGELOG.md +0 -224
  407. package/esm/codec/av1.d.ts +0 -462
  408. package/esm/codec/av1.d.ts.map +0 -1
  409. package/esm/codec/av1.js +0 -622
  410. package/esm/codec/av1.js.map +0 -1
  411. package/esm/codec/h264.d.ts +0 -78
  412. package/esm/codec/h264.d.ts.map +0 -1
  413. package/esm/codec/h264.js +0 -254
  414. package/esm/codec/h264.js.map +0 -1
  415. package/esm/codec/h265.d.ts +0 -535
  416. package/esm/codec/h265.d.ts.map +0 -1
  417. package/esm/codec/h265.js +0 -1117
  418. package/esm/codec/h265.js.map +0 -1
  419. package/esm/codec/index.d.ts +0 -5
  420. package/esm/codec/index.d.ts.map +0 -1
  421. package/esm/codec/index.js +0 -5
  422. package/esm/codec/index.js.map +0 -1
  423. package/esm/codec/nalu.d.ts +0 -28
  424. package/esm/codec/nalu.d.ts.map +0 -1
  425. package/esm/codec/nalu.js +0 -250
  426. package/esm/codec/nalu.js.map +0 -1
  427. package/esm/control/message-type-map.d.ts +0 -15
  428. package/esm/control/message-type-map.d.ts.map +0 -1
  429. package/esm/control/message-type-map.js +0 -23
  430. package/esm/control/message-type-map.js.map +0 -1
  431. package/src/codec/av1.ts +0 -724
  432. package/src/codec/h264.ts +0 -317
  433. package/src/codec/h265.ts +0 -1410
  434. package/src/codec/index.ts +0 -4
  435. package/src/codec/nalu.ts +0 -304
  436. package/src/control/message-type-map.ts +0 -30
  437. package/tsconfig.build.tsbuildinfo +0 -1
@@ -6,19 +6,18 @@ import type {
6
6
  AndroidKeyEventAction,
7
7
  AndroidKeyEventMeta,
8
8
  } from "../android/index.js";
9
- import { ScrcpyControlMessageType } from "../base/index.js";
10
9
 
11
- export const ScrcpyInjectKeyCodeControlMessage = /* #__PURE__ */ (() =>
12
- struct(
13
- {
14
- type: u8(ScrcpyControlMessageType.InjectKeyCode),
15
- action: u8<AndroidKeyEventAction>(),
16
- keyCode: u32<AndroidKeyCode>(),
17
- repeat: u32,
18
- metaState: u32<AndroidKeyEventMeta>(),
19
- },
20
- { littleEndian: false },
21
- ))();
10
+ export const ScrcpyInjectKeyCodeControlMessage = struct(
11
+ {
12
+ // value of `type` can change between versions
13
+ type: u8,
14
+ action: u8<AndroidKeyEventAction>(),
15
+ keyCode: u32<AndroidKeyCode>(),
16
+ repeat: u32,
17
+ metaState: u32<AndroidKeyEventMeta>(),
18
+ },
19
+ { littleEndian: false },
20
+ );
22
21
 
23
22
  export type ScrcpyInjectKeyCodeControlMessage = StructInit<
24
23
  typeof ScrcpyInjectKeyCodeControlMessage
@@ -2,7 +2,11 @@ import type { StructInit } from "@yume-chan/struct";
2
2
  import { string, struct, u32, u8 } from "@yume-chan/struct";
3
3
 
4
4
  export const ScrcpyInjectTextControlMessage = struct(
5
- { type: u8, text: string(u32) },
5
+ {
6
+ // value of `type` can change between versions
7
+ type: u8,
8
+ text: string(u32),
9
+ },
6
10
  { littleEndian: false },
7
11
  );
8
12
 
@@ -14,7 +14,6 @@ import type {
14
14
  import { EmptyControlMessage } from "./empty.js";
15
15
  import { ScrcpyInjectKeyCodeControlMessage } from "./inject-key-code.js";
16
16
  import { ScrcpyInjectTextControlMessage } from "./inject-text.js";
17
- import { ScrcpyControlMessageTypeMap } from "./message-type-map.js";
18
17
  import { ScrcpySetDisplayPowerControlMessage } from "./set-screen-power-mode.js";
19
18
  import { ScrcpyStartAppControlMessage } from "./start-app.js";
20
19
  import {
@@ -24,28 +23,39 @@ import {
24
23
 
25
24
  export class ScrcpyControlMessageSerializer {
26
25
  #options: ScrcpyOptions<object>;
27
- #typeMap: ScrcpyControlMessageTypeMap;
28
26
  #scrollController: ScrcpyScrollController;
29
27
 
30
28
  constructor(options: ScrcpyOptions<object>) {
31
29
  this.#options = options;
32
- this.#typeMap = new ScrcpyControlMessageTypeMap(options);
33
30
  this.#scrollController = options.createScrollController();
34
31
  }
35
32
 
33
+ getType(type: ScrcpyControlMessageType): number {
34
+ const value = this.#options.controlMessageTypes[type];
35
+ if (value === undefined) {
36
+ throw new TypeError(`Invalid control message type: ${type}`);
37
+ }
38
+ return value;
39
+ }
40
+
41
+ #addType<T extends { type: number }>(
42
+ message: Omit<T, "type">,
43
+ type: ScrcpyControlMessageType,
44
+ ): T {
45
+ (message as T).type = this.getType(type);
46
+ return message as T;
47
+ }
48
+
36
49
  injectKeyCode(message: Omit<ScrcpyInjectKeyCodeControlMessage, "type">) {
37
50
  return ScrcpyInjectKeyCodeControlMessage.serialize(
38
- this.#typeMap.fillMessageType(
39
- message,
40
- ScrcpyControlMessageType.InjectKeyCode,
41
- ),
51
+ this.#addType(message, ScrcpyControlMessageType.InjectKeyCode),
42
52
  );
43
53
  }
44
54
 
45
55
  injectText(text: string) {
46
56
  return ScrcpyInjectTextControlMessage.serialize({
47
57
  text,
48
- type: this.#typeMap.get(ScrcpyControlMessageType.InjectText),
58
+ type: this.getType(ScrcpyControlMessageType.InjectText),
49
59
  });
50
60
  }
51
61
 
@@ -54,10 +64,7 @@ export class ScrcpyControlMessageSerializer {
54
64
  */
55
65
  injectTouch(message: Omit<ScrcpyInjectTouchControlMessage, "type">) {
56
66
  return this.#options.serializeInjectTouchControlMessage(
57
- this.#typeMap.fillMessageType(
58
- message,
59
- ScrcpyControlMessageType.InjectTouch,
60
- ),
67
+ this.#addType(message, ScrcpyControlMessageType.InjectTouch),
61
68
  );
62
69
  }
63
70
 
@@ -66,30 +73,27 @@ export class ScrcpyControlMessageSerializer {
66
73
  */
67
74
  injectScroll(message: Omit<ScrcpyInjectScrollControlMessage, "type">) {
68
75
  return this.#scrollController.serializeScrollMessage(
69
- this.#typeMap.fillMessageType(
70
- message,
71
- ScrcpyControlMessageType.InjectScroll,
72
- ),
76
+ this.#addType(message, ScrcpyControlMessageType.InjectScroll),
73
77
  );
74
78
  }
75
79
 
76
80
  backOrScreenOn(action: AndroidKeyEventAction) {
77
81
  return this.#options.serializeBackOrScreenOnControlMessage({
78
82
  action,
79
- type: this.#typeMap.get(ScrcpyControlMessageType.BackOrScreenOn),
83
+ type: this.getType(ScrcpyControlMessageType.BackOrScreenOn),
80
84
  });
81
85
  }
82
86
 
83
87
  setDisplayPower(mode: AndroidScreenPowerMode) {
84
88
  return ScrcpySetDisplayPowerControlMessage.serialize({
85
89
  mode,
86
- type: this.#typeMap.get(ScrcpyControlMessageType.SetDisplayPower),
90
+ type: this.getType(ScrcpyControlMessageType.SetDisplayPower),
87
91
  });
88
92
  }
89
93
 
90
94
  expandNotificationPanel() {
91
95
  return EmptyControlMessage.serialize({
92
- type: this.#typeMap.get(
96
+ type: this.getType(
93
97
  ScrcpyControlMessageType.ExpandNotificationPanel,
94
98
  ),
95
99
  });
@@ -97,15 +101,13 @@ export class ScrcpyControlMessageSerializer {
97
101
 
98
102
  expandSettingPanel() {
99
103
  return EmptyControlMessage.serialize({
100
- type: this.#typeMap.get(
101
- ScrcpyControlMessageType.ExpandSettingPanel,
102
- ),
104
+ type: this.getType(ScrcpyControlMessageType.ExpandSettingPanel),
103
105
  });
104
106
  }
105
107
 
106
108
  collapseNotificationPanel() {
107
109
  return EmptyControlMessage.serialize({
108
- type: this.#typeMap.get(
110
+ type: this.getType(
109
111
  ScrcpyControlMessageType.CollapseNotificationPanel,
110
112
  ),
111
113
  });
@@ -113,14 +115,14 @@ export class ScrcpyControlMessageSerializer {
113
115
 
114
116
  rotateDevice() {
115
117
  return EmptyControlMessage.serialize({
116
- type: this.#typeMap.get(ScrcpyControlMessageType.RotateDevice),
118
+ type: this.getType(ScrcpyControlMessageType.RotateDevice),
117
119
  });
118
120
  }
119
121
 
120
122
  setClipboard(message: Omit<ScrcpySetClipboardControlMessage, "type">) {
121
123
  return this.#options.serializeSetClipboardControlMessage({
122
124
  ...message,
123
- type: this.#typeMap.get(ScrcpyControlMessageType.SetClipboard),
125
+ type: this.getType(ScrcpyControlMessageType.SetClipboard),
124
126
  });
125
127
  }
126
128
 
@@ -130,25 +132,19 @@ export class ScrcpyControlMessageSerializer {
130
132
  }
131
133
 
132
134
  return this.#options.serializeUHidCreateControlMessage(
133
- this.#typeMap.fillMessageType(
134
- message,
135
- ScrcpyControlMessageType.UHidCreate,
136
- ),
135
+ this.#addType(message, ScrcpyControlMessageType.UHidCreate),
137
136
  );
138
137
  }
139
138
 
140
139
  uHidInput(message: Omit<ScrcpyUHidInputControlMessage, "type">) {
141
140
  return ScrcpyUHidInputControlMessage.serialize(
142
- this.#typeMap.fillMessageType(
143
- message,
144
- ScrcpyControlMessageType.UHidInput,
145
- ),
141
+ this.#addType(message, ScrcpyControlMessageType.UHidInput),
146
142
  );
147
143
  }
148
144
 
149
145
  uHidDestroy(id: number) {
150
146
  return ScrcpyUHidDestroyControlMessage.serialize({
151
- type: this.#typeMap.get(ScrcpyControlMessageType.UHidDestroy),
147
+ type: this.getType(ScrcpyControlMessageType.UHidDestroy),
152
148
  id,
153
149
  });
154
150
  }
@@ -165,14 +161,14 @@ export class ScrcpyControlMessageSerializer {
165
161
  }
166
162
 
167
163
  return ScrcpyStartAppControlMessage.serialize({
168
- type: this.#typeMap.get(ScrcpyControlMessageType.StartApp),
164
+ type: this.getType(ScrcpyControlMessageType.StartApp),
169
165
  name,
170
166
  });
171
167
  }
172
168
 
173
169
  resetVideo() {
174
170
  return EmptyControlMessage.serialize({
175
- type: this.#typeMap.get(ScrcpyControlMessageType.ResetVideo),
171
+ type: this.getType(ScrcpyControlMessageType.ResetVideo),
176
172
  });
177
173
  }
178
174
  }
@@ -4,7 +4,11 @@ import { struct, u8 } from "@yume-chan/struct";
4
4
  import type { AndroidScreenPowerMode } from "../android/index.js";
5
5
 
6
6
  export const ScrcpySetDisplayPowerControlMessage = struct(
7
- { type: u8, mode: u8<AndroidScreenPowerMode>() },
7
+ {
8
+ // value of `type` can change between versions
9
+ type: u8,
10
+ mode: u8<AndroidScreenPowerMode>(),
11
+ },
8
12
  { littleEndian: false },
9
13
  );
10
14
 
@@ -3,6 +3,7 @@ import { string, struct, u8 } from "@yume-chan/struct";
3
3
 
4
4
  export const ScrcpyStartAppControlMessage = struct(
5
5
  {
6
+ // value of `type` can change between versions
6
7
  type: u8,
7
8
  name: string(u8),
8
9
  },
@@ -1,24 +1,26 @@
1
1
  import type { StructInit } from "@yume-chan/struct";
2
2
  import { buffer, struct, u16, u8 } from "@yume-chan/struct";
3
3
 
4
- import { ScrcpyControlMessageType } from "../base/index.js";
5
-
6
- export const ScrcpyUHidInputControlMessage = /* #__PURE__ */ (() =>
7
- struct(
8
- {
9
- type: u8(ScrcpyControlMessageType.UHidInput),
10
- id: u16,
11
- data: buffer(u16),
12
- },
13
- { littleEndian: false },
14
- ))();
4
+ export const ScrcpyUHidInputControlMessage = struct(
5
+ {
6
+ // value of `type` can change between versions
7
+ type: u8,
8
+ id: u16,
9
+ data: buffer(u16),
10
+ },
11
+ { littleEndian: false },
12
+ );
15
13
 
16
14
  export type ScrcpyUHidInputControlMessage = StructInit<
17
15
  typeof ScrcpyUHidInputControlMessage
18
16
  >;
19
17
 
20
18
  export const ScrcpyUHidDestroyControlMessage = struct(
21
- { type: u8, id: u16 },
19
+ {
20
+ // value of `type` can change between versions
21
+ type: u8,
22
+ id: u16,
23
+ },
22
24
  { littleEndian: false },
23
25
  );
24
26
 
@@ -67,7 +67,7 @@ export class ScrcpyControlMessageWriter {
67
67
  }
68
68
  }
69
69
 
70
- setScreenPowerMode(mode: AndroidScreenPowerMode) {
70
+ setDisplayPower(mode: AndroidScreenPowerMode) {
71
71
  return this.write(this.#serializer.setDisplayPower(mode));
72
72
  }
73
73
 
package/src/index.ts CHANGED
@@ -30,9 +30,10 @@ export * from "./3_3.js";
30
30
  export * from "./3_3_1/index.js";
31
31
  export * from "./3_3_2.js";
32
32
  export * from "./3_3_3.js";
33
+ export * from "./3_3_4.js";
33
34
  export * from "./android/index.js";
34
35
  export * from "./base/index.js";
35
- export * from "./codec/index.js";
36
36
  export * from "./control/index.js";
37
37
  export * from "./latest.js";
38
38
  export * from "./utils/index.js";
39
+ export * from "./video/index.js";
package/src/latest.ts CHANGED
@@ -1,9 +1,10 @@
1
- export { ScrcpyOptions3_3_3 as ScrcpyOptionsLatest } from "./3_3_3.js";
1
+ export { ScrcpyOptions3_3_2 as ScrcpyOptionsLatest } from "./3_3_2.js";
2
2
 
3
3
  export {
4
4
  BackOrScreenOnControlMessage as ScrcpyBackOrScreenOnControlMessage,
5
5
  CaptureOrientation as ScrcpyCaptureOrientation,
6
6
  CodecOptions as ScrcpyCodecOptions,
7
+ VideoCodecOptions as ScrcpyVideoCodecOptions,
7
8
  Crop as ScrcpyCrop,
8
9
  InjectScrollControlMessage as ScrcpyInjectScrollControlMessage,
9
10
  InjectTouchControlMessage as ScrcpyInjectTouchControlMessage,
@@ -0,0 +1,72 @@
1
+ // From https://developer.android.com/reference/android/media/MediaCodecInfo.CodecProfileLevel
2
+ export const AndroidAvcProfile = {
3
+ Baseline: 1 << 0,
4
+ Main: 1 << 1,
5
+ Extended: 1 << 2,
6
+ High: 1 << 3,
7
+ High10: 1 << 4,
8
+ High422: 1 << 5,
9
+ High444: 1 << 6,
10
+ ConstrainedBaseline: 1 << 16,
11
+ ConstrainedHigh: 1 << 19,
12
+ };
13
+
14
+ export const AndroidAvcLevel = {
15
+ Level1: 1 << 0,
16
+ Level1b: 1 << 1,
17
+ Level11: 1 << 2,
18
+ Level12: 1 << 3,
19
+ Level13: 1 << 4,
20
+ Level2: 1 << 5,
21
+ Level21: 1 << 6,
22
+ Level22: 1 << 7,
23
+ Level3: 1 << 8,
24
+ Level31: 1 << 9,
25
+ Level32: 1 << 10,
26
+ Level4: 1 << 11,
27
+ Level41: 1 << 12,
28
+ Level42: 1 << 13,
29
+ Level5: 1 << 14,
30
+ Level51: 1 << 15,
31
+ Level52: 1 << 16,
32
+ Level6: 1 << 17,
33
+ Level61: 1 << 18,
34
+ Level62: 1 << 19,
35
+ };
36
+
37
+ export const AndroidHevcProfile = {
38
+ Main: 1 << 0,
39
+ Main10: 1 << 1,
40
+ MainStill: 1 << 2,
41
+ Main10Hdr10: 1 << 12,
42
+ Main10Hdr10Plus: 1 << 13,
43
+ };
44
+
45
+ export const AndroidHevcLevel = {
46
+ MainTierLevel1: 1 << 0,
47
+ HighTierLevel1: 1 << 1,
48
+ MainTierLevel2: 1 << 2,
49
+ HighTierLevel2: 1 << 3,
50
+ MainTierLevel21: 1 << 4,
51
+ HighTierLevel21: 1 << 5,
52
+ MainTierLevel3: 1 << 6,
53
+ HighTierLevel3: 1 << 7,
54
+ MainTierLevel31: 1 << 8,
55
+ HighTierLevel31: 1 << 9,
56
+ MainTierLevel4: 1 << 10,
57
+ HighTierLevel4: 1 << 11,
58
+ MainTierLevel41: 1 << 12,
59
+ HighTierLevel41: 1 << 13,
60
+ MainTierLevel5: 1 << 14,
61
+ HighTierLevel5: 1 << 15,
62
+ MainTierLevel51: 1 << 16,
63
+ HighTierLevel51: 1 << 17,
64
+ MainTierLevel52: 1 << 18,
65
+ HighTierLevel52: 1 << 19,
66
+ MainTierLevel6: 1 << 20,
67
+ HighTierLevel6: 1 << 21,
68
+ MainTierLevel61: 1 << 22,
69
+ HighTierLevel61: 1 << 23,
70
+ MainTierLevel62: 1 << 24,
71
+ HighTierLevel62: 1 << 25,
72
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./android.js";
2
+ export * from "./size.js";
@@ -0,0 +1,40 @@
1
+ import type { Event } from "@yume-chan/event";
2
+ import { StickyEventEmitter } from "@yume-chan/event";
3
+
4
+ export interface ScrcpyVideoSize {
5
+ readonly width: number;
6
+ readonly height: number;
7
+
8
+ readonly sizeChanged: Event<{ width: number; height: number }>;
9
+ }
10
+
11
+ export class ScrcpyVideoSizeImpl implements ScrcpyVideoSize {
12
+ #width: number = 0;
13
+ get width() {
14
+ return this.#width;
15
+ }
16
+
17
+ #height: number = 0;
18
+ get height() {
19
+ return this.#height;
20
+ }
21
+
22
+ #sizeChanged = new StickyEventEmitter<{ width: number; height: number }>();
23
+ get sizeChanged() {
24
+ return this.#sizeChanged.event;
25
+ }
26
+
27
+ setSize(width: number, height: number) {
28
+ if (this.#width === width && this.#height === height) {
29
+ return;
30
+ }
31
+
32
+ this.#width = width;
33
+ this.#height = height;
34
+ this.#sizeChanged.fire({ width, height });
35
+ }
36
+
37
+ dispose() {
38
+ this.#sizeChanged.dispose();
39
+ }
40
+ }
@@ -1,11 +1,3 @@
1
1
  {
2
2
  "extends": "./node_modules/@yume-chan/tsconfig/tsconfig.base.json",
3
- "references": [
4
- {
5
- "path": "../stream-extra/tsconfig.build.json"
6
- },
7
- {
8
- "path": "../struct/tsconfig.build.json"
9
- }
10
- ]
11
3
  }
package/CHANGELOG.md DELETED
@@ -1,224 +0,0 @@
1
- # Change Log - @yume-chan/scrcpy
2
-
3
- ## 2.3.0
4
-
5
- ### Minor Changes
6
-
7
- - ec2ec23: Add client version 3.3.3
8
-
9
- ## 2.2.0
10
-
11
- ### Minor Changes
12
-
13
- - f34724f: Add support for Scrcpy server version 3.3.2 (no protocol changes)
14
-
15
- ## 2.1.1
16
-
17
- ### Patch Changes
18
-
19
- - 7edd616: Fix UHID output stream doesn't work from server version 2.6
20
- - e0def5b: Add support for server version 3.3.1
21
-
22
- ## 2.1.0
23
-
24
- ### Patch Changes
25
-
26
- - Updated dependencies [40a60ca]
27
- - @yume-chan/stream-extra@2.1.0
28
-
29
- ## 2.0.1
30
-
31
- ### Patch Changes
32
-
33
- - Updated dependencies [0bcb9b8]
34
- - @yume-chan/struct@2.0.1
35
- - @yume-chan/stream-extra@2.0.1
36
-
37
- ## 2.0.0
38
-
39
- ### Major Changes
40
-
41
- - fe06652: Move `version` parameter to `AdbScrcpyOptions`
42
-
43
- ### Minor Changes
44
-
45
- - 02f5bd5: Add alias for all AdbScrcpyOptions versions
46
-
47
- ### Patch Changes
48
-
49
- - Updated dependencies [b79df96]
50
- - Updated dependencies
51
- - @yume-chan/struct@2.0.0
52
- - @yume-chan/no-data-view@2.0.0
53
- - @yume-chan/stream-extra@2.0.0
54
-
55
- ## 1.1.0
56
-
57
- ### Minor Changes
58
-
59
- - 8c5b3c2: Add support for Scrcpy 3.1
60
- - cb44b63: Move `version` info to option classes and provide default values
61
-
62
- ### Patch Changes
63
-
64
- - 6140ebc: Accept raw (serialized) values for complex options
65
- - 6140ebc: Add `ScrcpyCrop` class for the `crop` option
66
- - 6140ebc: Add aliases for all Scrcpy patch versions
67
- - 7f2a09c: Fix incorrect scroll controller in version 1.22 and later
68
-
69
- ## 1.0.1
70
-
71
- ### Patch Changes
72
-
73
- - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
74
-
75
- Because Changesets doesn't support alpha versions (`0.x.x`), this version is `1.0.0`. Future versions will follow SemVer rules, for example, breaking API changes will introduce a new major version.
76
-
77
- - db8466f: Rewrite the struct API completely
78
- - ea5002b: Add support up to Scrcpy version 3.0
79
- - db8466f: Improve tree-shaking by removing TypeScript enum and namespace
80
- - Updated dependencies [53688d3]
81
- - Updated dependencies [db8466f]
82
- - Updated dependencies [ea5002b]
83
- - Updated dependencies [db8466f]
84
- - @yume-chan/no-data-view@1.0.1
85
- - @yume-chan/stream-extra@1.0.1
86
- - @yume-chan/struct@1.0.1
87
-
88
- This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
89
-
90
- ## 0.0.24
91
-
92
- Tue, 18 Jun 2024 02:49:43 GMT
93
-
94
- ### Updates
95
-
96
- - Add AV1 metadata parser `Av1`
97
- - Move clipboard stream to `ScrcpyOptions#clipboard`
98
- - Make `ScrcpyControlMessageWriter#setClipboard` wait for the clipboard to be updated on device (when `sequence` is not 0)
99
- - Add options class for version 2.3
100
-
101
- ## 0.0.23
102
-
103
- Thu, 21 Mar 2024 03:15:10 GMT
104
-
105
- ### Updates
106
-
107
- - Fix several ReDos vulnerabilities
108
-
109
- ## 0.0.22
110
-
111
- Wed, 13 Dec 2023 05:57:27 GMT
112
-
113
- ### Updates
114
-
115
- - Fix parsing `sps_max_dec_pic_buffering_minus1` in H.265 SPS
116
- - Support parsing `vui_hrd_parameters` in H.265 SPS
117
- - Add support for Scrcpy 2.2
118
-
119
- ## 0.0.21
120
-
121
- Fri, 25 Aug 2023 14:05:18 GMT
122
-
123
- ### Updates
124
-
125
- - Add support for Scrcpy server version 2.1 and 2.1.1
126
- - Move the fetching server binary script to `@yume-chan/scrcpy-fetch-server` package
127
-
128
- ## 0.0.20
129
-
130
- Mon, 05 Jun 2023 02:51:41 GMT
131
-
132
- ### Updates
133
-
134
- - Add support for Scrcpy 2.0. New features including audio forwarding (supports PCM, AAC and OPUS encoding) and other video codecs (supports H.264 and H.265, AV1 not supported). Read the PR for new options and breaking changes. ([#495](https://github.com/yume-chan/ya-webadb/pull/495))
135
- - Move ADB related code to `@yume-chan/adb-scrcpy` package. This package now only implements the Scrcpy protocol.
136
-
137
- ## 0.0.19
138
-
139
- Sun, 09 Apr 2023 05:55:33 GMT
140
-
141
- ### Updates
142
-
143
- - Change `AdbScrcpyClient#pushServer` to take a `ReadableStream<Uint8Array>` instead of returning a `WritableStream<Uint8Array>`
144
- - Add `AdbReverseNotSupportedError` handling and automatically switch to forward tunnel in `AdbScrcpyClient`.
145
- - Update `AndroidKeyCode` enum to align with Web `KeyboardEvent.code`
146
-
147
- ## 0.0.18
148
-
149
- Wed, 25 Jan 2023 21:33:49 GMT
150
-
151
- ### Updates
152
-
153
- - Move `@yume-chan/adb` to `peerDependencies`
154
- - Add support for Scrcpy server version 1.25
155
- - Add support for `SetClipboard` control message and `AckClipboard` device message
156
-
157
- ## 0.0.17
158
-
159
- Tue, 18 Oct 2022 09:32:30 GMT
160
-
161
- ### Updates
162
-
163
- - Add standalone types for serializing/deserializing Scrcpy packets
164
- - Separate decoders to own packages so they don't need optional peer dependencies.
165
-
166
- ## 0.0.16
167
-
168
- Sat, 28 May 2022 03:56:37 GMT
169
-
170
- ### Updates
171
-
172
- - Upgrade TypeScript to 4.7.2 to enable Node.js ESM
173
- - Add support for more `CodecOptions` keys
174
- - Add support for `CodecOptions` value types other than `int`
175
-
176
- ## 0.0.15
177
-
178
- Mon, 02 May 2022 04:18:01 GMT
179
-
180
- ### Updates
181
-
182
- - Add support for `rotateDevice` control message
183
- - Add method to get screen list
184
-
185
- ## 0.0.14
186
-
187
- Sat, 30 Apr 2022 14:05:48 GMT
188
-
189
- ### Updates
190
-
191
- - Add support for Scrcpy server version 1.24
192
-
193
- ## 0.0.13
194
-
195
- Thu, 28 Apr 2022 01:23:53 GMT
196
-
197
- ### Updates
198
-
199
- - Add support for Scrcpy server version 1.23
200
-
201
- ## 0.0.12
202
-
203
- Sun, 03 Apr 2022 11:18:47 GMT
204
-
205
- _Version update only_
206
-
207
- ## 0.0.11
208
-
209
- Sun, 03 Apr 2022 10:54:15 GMT
210
-
211
- ### Updates
212
-
213
- - Add support for Scrcpy server version 1.22
214
- - Update to use Web Streams API
215
- - Improve compatibility with Node.js 12 ESM format
216
- - Workaround a issue with server crash on Samsung ROM (https://github.com/Genymobile/scrcpy/issues/2841)
217
- - Remove output parsing. It's output is for debugging only, not machine readable.
218
- - Update license year
219
-
220
- ## 0.0.10
221
-
222
- Sun, 09 Jan 2022 15:52:20 GMT
223
-
224
- _Initial release_