piixishstream 0.0.0-stage → 1.0.2

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 (123) hide show
  1. package/README.md +124 -2
  2. package/dist/client/GatewayEvents.d.ts +30 -0
  3. package/dist/client/GatewayEvents.js +2 -0
  4. package/dist/client/GatewayEvents.js.map +1 -0
  5. package/dist/client/GatewayOpCodes.d.ts +40 -0
  6. package/dist/client/GatewayOpCodes.js +42 -0
  7. package/dist/client/GatewayOpCodes.js.map +1 -0
  8. package/dist/client/Streamer.d.ts +30 -0
  9. package/dist/client/Streamer.js +188 -0
  10. package/dist/client/Streamer.js.map +1 -0
  11. package/dist/client/index.d.ts +3 -0
  12. package/dist/client/index.js +4 -0
  13. package/dist/client/index.js.map +1 -0
  14. package/dist/client/processing/AnnexBBitstreamReaderWriter.d.ts +23 -0
  15. package/dist/client/processing/AnnexBBitstreamReaderWriter.js +149 -0
  16. package/dist/client/processing/AnnexBBitstreamReaderWriter.js.map +1 -0
  17. package/dist/client/processing/AnnexBHelper.d.ts +93 -0
  18. package/dist/client/processing/AnnexBHelper.js +127 -0
  19. package/dist/client/processing/AnnexBHelper.js.map +1 -0
  20. package/dist/client/processing/SPSVUIRewriter.d.ts +1 -0
  21. package/dist/client/processing/SPSVUIRewriter.js +297 -0
  22. package/dist/client/processing/SPSVUIRewriter.js.map +1 -0
  23. package/dist/client/voice/BaseMediaConnection.d.ts +80 -0
  24. package/dist/client/voice/BaseMediaConnection.js +552 -0
  25. package/dist/client/voice/BaseMediaConnection.js.map +1 -0
  26. package/dist/client/voice/CodecPayloadType.d.ts +59 -0
  27. package/dist/client/voice/CodecPayloadType.js +60 -0
  28. package/dist/client/voice/CodecPayloadType.js.map +1 -0
  29. package/dist/client/voice/StreamConnection.d.ts +11 -0
  30. package/dist/client/voice/StreamConnection.js +34 -0
  31. package/dist/client/voice/StreamConnection.js.map +1 -0
  32. package/dist/client/voice/VoiceConnection.d.ts +8 -0
  33. package/dist/client/voice/VoiceConnection.js +15 -0
  34. package/dist/client/voice/VoiceConnection.js.map +1 -0
  35. package/dist/client/voice/VoiceMessageTypes.d.ts +178 -0
  36. package/dist/client/voice/VoiceMessageTypes.js +2 -0
  37. package/dist/client/voice/VoiceMessageTypes.js.map +1 -0
  38. package/dist/client/voice/VoiceOpCodes.d.ts +35 -0
  39. package/dist/client/voice/VoiceOpCodes.js +38 -0
  40. package/dist/client/voice/VoiceOpCodes.js.map +1 -0
  41. package/dist/client/voice/WebRtcWrapper.d.ts +23 -0
  42. package/dist/client/voice/WebRtcWrapper.js +159 -0
  43. package/dist/client/voice/WebRtcWrapper.js.map +1 -0
  44. package/dist/client/voice/index.d.ts +4 -0
  45. package/dist/client/voice/index.js +6 -0
  46. package/dist/client/voice/index.js.map +1 -0
  47. package/dist/index.d.ts +3 -0
  48. package/dist/index.js +4 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/media/AudioStream.d.ts +7 -0
  51. package/dist/media/AudioStream.js +12 -0
  52. package/dist/media/AudioStream.js.map +1 -0
  53. package/dist/media/BaseMediaStream.d.ts +31 -0
  54. package/dist/media/BaseMediaStream.js +164 -0
  55. package/dist/media/BaseMediaStream.js.map +1 -0
  56. package/dist/media/LibavCodecId.d.ts +541 -0
  57. package/dist/media/LibavCodecId.js +553 -0
  58. package/dist/media/LibavCodecId.js.map +1 -0
  59. package/dist/media/LibavDecoder.d.ts +5 -0
  60. package/dist/media/LibavDecoder.js +43 -0
  61. package/dist/media/LibavDecoder.js.map +1 -0
  62. package/dist/media/LibavDemuxer.d.ts +44 -0
  63. package/dist/media/LibavDemuxer.js +231 -0
  64. package/dist/media/LibavDemuxer.js.map +1 -0
  65. package/dist/media/VideoStream.d.ts +7 -0
  66. package/dist/media/VideoStream.js +12 -0
  67. package/dist/media/VideoStream.js.map +1 -0
  68. package/dist/media/encoders/index.d.ts +26 -0
  69. package/dist/media/encoders/index.js +12 -0
  70. package/dist/media/encoders/index.js.map +1 -0
  71. package/dist/media/encoders/merge.d.ts +3 -0
  72. package/dist/media/encoders/merge.js +10 -0
  73. package/dist/media/encoders/merge.js.map +1 -0
  74. package/dist/media/encoders/nvenc.d.ts +10 -0
  75. package/dist/media/encoders/nvenc.js +23 -0
  76. package/dist/media/encoders/nvenc.js.map +1 -0
  77. package/dist/media/encoders/software.d.ts +17 -0
  78. package/dist/media/encoders/software.js +31 -0
  79. package/dist/media/encoders/software.js.map +1 -0
  80. package/dist/media/encoders/vaapi.d.ts +6 -0
  81. package/dist/media/encoders/vaapi.js +22 -0
  82. package/dist/media/encoders/vaapi.js.map +1 -0
  83. package/dist/media/index.d.ts +4 -0
  84. package/dist/media/index.js +5 -0
  85. package/dist/media/index.js.map +1 -0
  86. package/dist/media/newApi.d.ts +130 -0
  87. package/dist/media/newApi.js +409 -0
  88. package/dist/media/newApi.js.map +1 -0
  89. package/dist/utils.d.ts +25 -0
  90. package/dist/utils.js +65 -0
  91. package/dist/utils.js.map +1 -0
  92. package/package.json +82 -5
  93. package/src/client/GatewayEvents.ts +48 -0
  94. package/src/client/GatewayOpCodes.ts +40 -0
  95. package/src/client/Streamer.ts +259 -0
  96. package/src/client/index.ts +3 -0
  97. package/src/client/processing/AnnexBBitstreamReaderWriter.ts +148 -0
  98. package/src/client/processing/AnnexBHelper.ts +134 -0
  99. package/src/client/processing/SPSVUIRewriter.ts +332 -0
  100. package/src/client/voice/BaseMediaConnection.ts +639 -0
  101. package/src/client/voice/CodecPayloadType.ts +59 -0
  102. package/src/client/voice/MediaUdp.ts.bak +171 -0
  103. package/src/client/voice/StreamConnection.ts +38 -0
  104. package/src/client/voice/VoiceConnection.ts +19 -0
  105. package/src/client/voice/VoiceMessageTypes.ts +263 -0
  106. package/src/client/voice/VoiceOpCodes.ts +36 -0
  107. package/src/client/voice/WebRtcWrapper.ts +218 -0
  108. package/src/client/voice/index.ts +5 -0
  109. package/src/index.ts +3 -0
  110. package/src/media/AudioStream.ts +18 -0
  111. package/src/media/BaseMediaStream.ts +198 -0
  112. package/src/media/LibavCodecId.ts +564 -0
  113. package/src/media/LibavDecoder.ts +47 -0
  114. package/src/media/LibavDemuxer.ts +293 -0
  115. package/src/media/VideoStream.ts +17 -0
  116. package/src/media/encoders/index.ts +27 -0
  117. package/src/media/encoders/merge.ts +14 -0
  118. package/src/media/encoders/nvenc.ts +38 -0
  119. package/src/media/encoders/software.ts +76 -0
  120. package/src/media/encoders/vaapi.ts +29 -0
  121. package/src/media/index.ts +4 -0
  122. package/src/media/newApi.ts +642 -0
  123. package/src/utils.ts +101 -0
@@ -0,0 +1,564 @@
1
+ // https://ffmpeg.org/doxygen/7.0/codec__id_8h_source.html
2
+
3
+ export enum AVCodecID {
4
+ AV_CODEC_ID_NONE,
5
+
6
+ /* video codecs */
7
+ AV_CODEC_ID_MPEG1VIDEO,
8
+ AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
9
+ AV_CODEC_ID_H261,
10
+ AV_CODEC_ID_H263,
11
+ AV_CODEC_ID_RV10,
12
+ AV_CODEC_ID_RV20,
13
+ AV_CODEC_ID_MJPEG,
14
+ AV_CODEC_ID_MJPEGB,
15
+ AV_CODEC_ID_LJPEG,
16
+ AV_CODEC_ID_SP5X,
17
+ AV_CODEC_ID_JPEGLS,
18
+ AV_CODEC_ID_MPEG4,
19
+ AV_CODEC_ID_RAWVIDEO,
20
+ AV_CODEC_ID_MSMPEG4V1,
21
+ AV_CODEC_ID_MSMPEG4V2,
22
+ AV_CODEC_ID_MSMPEG4V3,
23
+ AV_CODEC_ID_WMV1,
24
+ AV_CODEC_ID_WMV2,
25
+ AV_CODEC_ID_H263P,
26
+ AV_CODEC_ID_H263I,
27
+ AV_CODEC_ID_FLV1,
28
+ AV_CODEC_ID_SVQ1,
29
+ AV_CODEC_ID_SVQ3,
30
+ AV_CODEC_ID_DVVIDEO,
31
+ AV_CODEC_ID_HUFFYUV,
32
+ AV_CODEC_ID_CYUV,
33
+ AV_CODEC_ID_H264,
34
+ AV_CODEC_ID_INDEO3,
35
+ AV_CODEC_ID_VP3,
36
+ AV_CODEC_ID_THEORA,
37
+ AV_CODEC_ID_ASV1,
38
+ AV_CODEC_ID_ASV2,
39
+ AV_CODEC_ID_FFV1,
40
+ AV_CODEC_ID_4XM,
41
+ AV_CODEC_ID_VCR1,
42
+ AV_CODEC_ID_CLJR,
43
+ AV_CODEC_ID_MDEC,
44
+ AV_CODEC_ID_ROQ,
45
+ AV_CODEC_ID_INTERPLAY_VIDEO,
46
+ AV_CODEC_ID_XAN_WC3,
47
+ AV_CODEC_ID_XAN_WC4,
48
+ AV_CODEC_ID_RPZA,
49
+ AV_CODEC_ID_CINEPAK,
50
+ AV_CODEC_ID_WS_VQA,
51
+ AV_CODEC_ID_MSRLE,
52
+ AV_CODEC_ID_MSVIDEO1,
53
+ AV_CODEC_ID_IDCIN,
54
+ AV_CODEC_ID_8BPS,
55
+ AV_CODEC_ID_SMC,
56
+ AV_CODEC_ID_FLIC,
57
+ AV_CODEC_ID_TRUEMOTION1,
58
+ AV_CODEC_ID_VMDVIDEO,
59
+ AV_CODEC_ID_MSZH,
60
+ AV_CODEC_ID_ZLIB,
61
+ AV_CODEC_ID_QTRLE,
62
+ AV_CODEC_ID_TSCC,
63
+ AV_CODEC_ID_ULTI,
64
+ AV_CODEC_ID_QDRAW,
65
+ AV_CODEC_ID_VIXL,
66
+ AV_CODEC_ID_QPEG,
67
+ AV_CODEC_ID_PNG,
68
+ AV_CODEC_ID_PPM,
69
+ AV_CODEC_ID_PBM,
70
+ AV_CODEC_ID_PGM,
71
+ AV_CODEC_ID_PGMYUV,
72
+ AV_CODEC_ID_PAM,
73
+ AV_CODEC_ID_FFVHUFF,
74
+ AV_CODEC_ID_RV30,
75
+ AV_CODEC_ID_RV40,
76
+ AV_CODEC_ID_VC1,
77
+ AV_CODEC_ID_WMV3,
78
+ AV_CODEC_ID_LOCO,
79
+ AV_CODEC_ID_WNV1,
80
+ AV_CODEC_ID_AASC,
81
+ AV_CODEC_ID_INDEO2,
82
+ AV_CODEC_ID_FRAPS,
83
+ AV_CODEC_ID_TRUEMOTION2,
84
+ AV_CODEC_ID_BMP,
85
+ AV_CODEC_ID_CSCD,
86
+ AV_CODEC_ID_MMVIDEO,
87
+ AV_CODEC_ID_ZMBV,
88
+ AV_CODEC_ID_AVS,
89
+ AV_CODEC_ID_SMACKVIDEO,
90
+ AV_CODEC_ID_NUV,
91
+ AV_CODEC_ID_KMVC,
92
+ AV_CODEC_ID_FLASHSV,
93
+ AV_CODEC_ID_CAVS,
94
+ AV_CODEC_ID_JPEG2000,
95
+ AV_CODEC_ID_VMNC,
96
+ AV_CODEC_ID_VP5,
97
+ AV_CODEC_ID_VP6,
98
+ AV_CODEC_ID_VP6F,
99
+ AV_CODEC_ID_TARGA,
100
+ AV_CODEC_ID_DSICINVIDEO,
101
+ AV_CODEC_ID_TIERTEXSEQVIDEO,
102
+ AV_CODEC_ID_TIFF,
103
+ AV_CODEC_ID_GIF,
104
+ AV_CODEC_ID_DXA,
105
+ AV_CODEC_ID_DNXHD,
106
+ AV_CODEC_ID_THP,
107
+ AV_CODEC_ID_SGI,
108
+ AV_CODEC_ID_C93,
109
+ AV_CODEC_ID_BETHSOFTVID,
110
+ AV_CODEC_ID_PTX,
111
+ AV_CODEC_ID_TXD,
112
+ AV_CODEC_ID_VP6A,
113
+ AV_CODEC_ID_AMV,
114
+ AV_CODEC_ID_VB,
115
+ AV_CODEC_ID_PCX,
116
+ AV_CODEC_ID_SUNRAST,
117
+ AV_CODEC_ID_INDEO4,
118
+ AV_CODEC_ID_INDEO5,
119
+ AV_CODEC_ID_MIMIC,
120
+ AV_CODEC_ID_RL2,
121
+ AV_CODEC_ID_ESCAPE124,
122
+ AV_CODEC_ID_DIRAC,
123
+ AV_CODEC_ID_BFI,
124
+ AV_CODEC_ID_CMV,
125
+ AV_CODEC_ID_MOTIONPIXELS,
126
+ AV_CODEC_ID_TGV,
127
+ AV_CODEC_ID_TGQ,
128
+ AV_CODEC_ID_TQI,
129
+ AV_CODEC_ID_AURA,
130
+ AV_CODEC_ID_AURA2,
131
+ AV_CODEC_ID_V210X,
132
+ AV_CODEC_ID_TMV,
133
+ AV_CODEC_ID_V210,
134
+ AV_CODEC_ID_DPX,
135
+ AV_CODEC_ID_MAD,
136
+ AV_CODEC_ID_FRWU,
137
+ AV_CODEC_ID_FLASHSV2,
138
+ AV_CODEC_ID_CDGRAPHICS,
139
+ AV_CODEC_ID_R210,
140
+ AV_CODEC_ID_ANM,
141
+ AV_CODEC_ID_BINKVIDEO,
142
+ AV_CODEC_ID_IFF_ILBM,
143
+ AV_CODEC_ID_IFF_BYTERUN1 = AV_CODEC_ID_IFF_ILBM,
144
+ AV_CODEC_ID_KGV1,
145
+ AV_CODEC_ID_YOP,
146
+ AV_CODEC_ID_VP8,
147
+ AV_CODEC_ID_PICTOR,
148
+ AV_CODEC_ID_ANSI,
149
+ AV_CODEC_ID_A64_MULTI,
150
+ AV_CODEC_ID_A64_MULTI5,
151
+ AV_CODEC_ID_R10K,
152
+ AV_CODEC_ID_MXPEG,
153
+ AV_CODEC_ID_LAGARITH,
154
+ AV_CODEC_ID_PRORES,
155
+ AV_CODEC_ID_JV,
156
+ AV_CODEC_ID_DFA,
157
+ AV_CODEC_ID_WMV3IMAGE,
158
+ AV_CODEC_ID_VC1IMAGE,
159
+ AV_CODEC_ID_UTVIDEO,
160
+ AV_CODEC_ID_BMV_VIDEO,
161
+ AV_CODEC_ID_VBLE,
162
+ AV_CODEC_ID_DXTORY,
163
+ AV_CODEC_ID_V410,
164
+ AV_CODEC_ID_XWD,
165
+ AV_CODEC_ID_CDXL,
166
+ AV_CODEC_ID_XBM,
167
+ AV_CODEC_ID_ZEROCODEC,
168
+ AV_CODEC_ID_MSS1,
169
+ AV_CODEC_ID_MSA1,
170
+ AV_CODEC_ID_TSCC2,
171
+ AV_CODEC_ID_MTS2,
172
+ AV_CODEC_ID_CLLC,
173
+ AV_CODEC_ID_MSS2,
174
+ AV_CODEC_ID_VP9,
175
+ AV_CODEC_ID_AIC,
176
+ AV_CODEC_ID_ESCAPE130,
177
+ AV_CODEC_ID_G2M,
178
+ AV_CODEC_ID_WEBP,
179
+ AV_CODEC_ID_HNM4_VIDEO,
180
+ AV_CODEC_ID_HEVC,
181
+ AV_CODEC_ID_H265 = AV_CODEC_ID_HEVC,
182
+ AV_CODEC_ID_FIC,
183
+ AV_CODEC_ID_ALIAS_PIX,
184
+ AV_CODEC_ID_BRENDER_PIX,
185
+ AV_CODEC_ID_PAF_VIDEO,
186
+ AV_CODEC_ID_EXR,
187
+ AV_CODEC_ID_VP7,
188
+ AV_CODEC_ID_SANM,
189
+ AV_CODEC_ID_SGIRLE,
190
+ AV_CODEC_ID_MVC1,
191
+ AV_CODEC_ID_MVC2,
192
+ AV_CODEC_ID_HQX,
193
+ AV_CODEC_ID_TDSC,
194
+ AV_CODEC_ID_HQ_HQA,
195
+ AV_CODEC_ID_HAP,
196
+ AV_CODEC_ID_DDS,
197
+ AV_CODEC_ID_DXV,
198
+ AV_CODEC_ID_SCREENPRESSO,
199
+ AV_CODEC_ID_RSCC,
200
+ AV_CODEC_ID_AVS2,
201
+ AV_CODEC_ID_PGX,
202
+ AV_CODEC_ID_AVS3,
203
+ AV_CODEC_ID_MSP2,
204
+ AV_CODEC_ID_VVC,
205
+ AV_CODEC_ID_H266 = AV_CODEC_ID_VVC,
206
+ AV_CODEC_ID_Y41P,
207
+ AV_CODEC_ID_AVRP,
208
+ AV_CODEC_ID_012V,
209
+ AV_CODEC_ID_AVUI,
210
+ AV_CODEC_ID_TARGA_Y216,
211
+ AV_CODEC_ID_V308,
212
+ AV_CODEC_ID_V408,
213
+ AV_CODEC_ID_YUV4,
214
+ AV_CODEC_ID_AVRN,
215
+ AV_CODEC_ID_CPIA,
216
+ AV_CODEC_ID_XFACE,
217
+ AV_CODEC_ID_SNOW,
218
+ AV_CODEC_ID_SMVJPEG,
219
+ AV_CODEC_ID_APNG,
220
+ AV_CODEC_ID_DAALA,
221
+ AV_CODEC_ID_CFHD,
222
+ AV_CODEC_ID_TRUEMOTION2RT,
223
+ AV_CODEC_ID_M101,
224
+ AV_CODEC_ID_MAGICYUV,
225
+ AV_CODEC_ID_SHEERVIDEO,
226
+ AV_CODEC_ID_YLC,
227
+ AV_CODEC_ID_PSD,
228
+ AV_CODEC_ID_PIXLET,
229
+ AV_CODEC_ID_SPEEDHQ,
230
+ AV_CODEC_ID_FMVC,
231
+ AV_CODEC_ID_SCPR,
232
+ AV_CODEC_ID_CLEARVIDEO,
233
+ AV_CODEC_ID_XPM,
234
+ AV_CODEC_ID_AV1,
235
+ AV_CODEC_ID_BITPACKED,
236
+ AV_CODEC_ID_MSCC,
237
+ AV_CODEC_ID_SRGC,
238
+ AV_CODEC_ID_SVG,
239
+ AV_CODEC_ID_GDV,
240
+ AV_CODEC_ID_FITS,
241
+ AV_CODEC_ID_IMM4,
242
+ AV_CODEC_ID_PROSUMER,
243
+ AV_CODEC_ID_MWSC,
244
+ AV_CODEC_ID_WCMV,
245
+ AV_CODEC_ID_RASC,
246
+ AV_CODEC_ID_HYMT,
247
+ AV_CODEC_ID_ARBC,
248
+ AV_CODEC_ID_AGM,
249
+ AV_CODEC_ID_LSCR,
250
+ AV_CODEC_ID_VP4,
251
+ AV_CODEC_ID_IMM5,
252
+ AV_CODEC_ID_MVDV,
253
+ AV_CODEC_ID_MVHA,
254
+ AV_CODEC_ID_CDTOONS,
255
+ AV_CODEC_ID_MV30,
256
+ AV_CODEC_ID_NOTCHLC,
257
+ AV_CODEC_ID_PFM,
258
+ AV_CODEC_ID_MOBICLIP,
259
+ AV_CODEC_ID_PHOTOCD,
260
+ AV_CODEC_ID_IPU,
261
+ AV_CODEC_ID_ARGO,
262
+ AV_CODEC_ID_CRI,
263
+ AV_CODEC_ID_SIMBIOSIS_IMX,
264
+ AV_CODEC_ID_SGA_VIDEO,
265
+ AV_CODEC_ID_GEM,
266
+ AV_CODEC_ID_VBN,
267
+ AV_CODEC_ID_JPEGXL,
268
+ AV_CODEC_ID_QOI,
269
+ AV_CODEC_ID_PHM,
270
+ AV_CODEC_ID_RADIANCE_HDR,
271
+ AV_CODEC_ID_WBMP,
272
+ AV_CODEC_ID_MEDIA100,
273
+ AV_CODEC_ID_VQC,
274
+ AV_CODEC_ID_PDV,
275
+ AV_CODEC_ID_EVC,
276
+ AV_CODEC_ID_RTV1,
277
+ AV_CODEC_ID_VMIX,
278
+ AV_CODEC_ID_LEAD,
279
+
280
+ /* various PCM "codecs" */
281
+ AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
282
+ AV_CODEC_ID_PCM_S16LE = 0x10000,
283
+ AV_CODEC_ID_PCM_S16BE,
284
+ AV_CODEC_ID_PCM_U16LE,
285
+ AV_CODEC_ID_PCM_U16BE,
286
+ AV_CODEC_ID_PCM_S8,
287
+ AV_CODEC_ID_PCM_U8,
288
+ AV_CODEC_ID_PCM_MULAW,
289
+ AV_CODEC_ID_PCM_ALAW,
290
+ AV_CODEC_ID_PCM_S32LE,
291
+ AV_CODEC_ID_PCM_S32BE,
292
+ AV_CODEC_ID_PCM_U32LE,
293
+ AV_CODEC_ID_PCM_U32BE,
294
+ AV_CODEC_ID_PCM_S24LE,
295
+ AV_CODEC_ID_PCM_S24BE,
296
+ AV_CODEC_ID_PCM_U24LE,
297
+ AV_CODEC_ID_PCM_U24BE,
298
+ AV_CODEC_ID_PCM_S24DAUD,
299
+ AV_CODEC_ID_PCM_ZORK,
300
+ AV_CODEC_ID_PCM_S16LE_PLANAR,
301
+ AV_CODEC_ID_PCM_DVD,
302
+ AV_CODEC_ID_PCM_F32BE,
303
+ AV_CODEC_ID_PCM_F32LE,
304
+ AV_CODEC_ID_PCM_F64BE,
305
+ AV_CODEC_ID_PCM_F64LE,
306
+ AV_CODEC_ID_PCM_BLURAY,
307
+ AV_CODEC_ID_PCM_LXF,
308
+ AV_CODEC_ID_S302M,
309
+ AV_CODEC_ID_PCM_S8_PLANAR,
310
+ AV_CODEC_ID_PCM_S24LE_PLANAR,
311
+ AV_CODEC_ID_PCM_S32LE_PLANAR,
312
+ AV_CODEC_ID_PCM_S16BE_PLANAR,
313
+ AV_CODEC_ID_PCM_S64LE,
314
+ AV_CODEC_ID_PCM_S64BE,
315
+ AV_CODEC_ID_PCM_F16LE,
316
+ AV_CODEC_ID_PCM_F24LE,
317
+ AV_CODEC_ID_PCM_VIDC,
318
+ AV_CODEC_ID_PCM_SGA,
319
+
320
+ /* various ADPCM codecs */
321
+ AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
322
+ AV_CODEC_ID_ADPCM_IMA_WAV,
323
+ AV_CODEC_ID_ADPCM_IMA_DK3,
324
+ AV_CODEC_ID_ADPCM_IMA_DK4,
325
+ AV_CODEC_ID_ADPCM_IMA_WS,
326
+ AV_CODEC_ID_ADPCM_IMA_SMJPEG,
327
+ AV_CODEC_ID_ADPCM_MS,
328
+ AV_CODEC_ID_ADPCM_4XM,
329
+ AV_CODEC_ID_ADPCM_XA,
330
+ AV_CODEC_ID_ADPCM_ADX,
331
+ AV_CODEC_ID_ADPCM_EA,
332
+ AV_CODEC_ID_ADPCM_G726,
333
+ AV_CODEC_ID_ADPCM_CT,
334
+ AV_CODEC_ID_ADPCM_SWF,
335
+ AV_CODEC_ID_ADPCM_YAMAHA,
336
+ AV_CODEC_ID_ADPCM_SBPRO_4,
337
+ AV_CODEC_ID_ADPCM_SBPRO_3,
338
+ AV_CODEC_ID_ADPCM_SBPRO_2,
339
+ AV_CODEC_ID_ADPCM_THP,
340
+ AV_CODEC_ID_ADPCM_IMA_AMV,
341
+ AV_CODEC_ID_ADPCM_EA_R1,
342
+ AV_CODEC_ID_ADPCM_EA_R3,
343
+ AV_CODEC_ID_ADPCM_EA_R2,
344
+ AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
345
+ AV_CODEC_ID_ADPCM_IMA_EA_EACS,
346
+ AV_CODEC_ID_ADPCM_EA_XAS,
347
+ AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
348
+ AV_CODEC_ID_ADPCM_IMA_ISS,
349
+ AV_CODEC_ID_ADPCM_G722,
350
+ AV_CODEC_ID_ADPCM_IMA_APC,
351
+ AV_CODEC_ID_ADPCM_VIMA,
352
+ AV_CODEC_ID_ADPCM_AFC,
353
+ AV_CODEC_ID_ADPCM_IMA_OKI,
354
+ AV_CODEC_ID_ADPCM_DTK,
355
+ AV_CODEC_ID_ADPCM_IMA_RAD,
356
+ AV_CODEC_ID_ADPCM_G726LE,
357
+ AV_CODEC_ID_ADPCM_THP_LE,
358
+ AV_CODEC_ID_ADPCM_PSX,
359
+ AV_CODEC_ID_ADPCM_AICA,
360
+ AV_CODEC_ID_ADPCM_IMA_DAT4,
361
+ AV_CODEC_ID_ADPCM_MTAF,
362
+ AV_CODEC_ID_ADPCM_AGM,
363
+ AV_CODEC_ID_ADPCM_ARGO,
364
+ AV_CODEC_ID_ADPCM_IMA_SSI,
365
+ AV_CODEC_ID_ADPCM_ZORK,
366
+ AV_CODEC_ID_ADPCM_IMA_APM,
367
+ AV_CODEC_ID_ADPCM_IMA_ALP,
368
+ AV_CODEC_ID_ADPCM_IMA_MTF,
369
+ AV_CODEC_ID_ADPCM_IMA_CUNNING,
370
+ AV_CODEC_ID_ADPCM_IMA_MOFLEX,
371
+ AV_CODEC_ID_ADPCM_IMA_ACORN,
372
+ AV_CODEC_ID_ADPCM_XMD,
373
+
374
+ /* AMR */
375
+ AV_CODEC_ID_AMR_NB = 0x12000,
376
+ AV_CODEC_ID_AMR_WB,
377
+
378
+ /* RealAudio codecs*/
379
+ AV_CODEC_ID_RA_144 = 0x13000,
380
+ AV_CODEC_ID_RA_288,
381
+
382
+ /* various DPCM codecs */
383
+ AV_CODEC_ID_ROQ_DPCM = 0x14000,
384
+ AV_CODEC_ID_INTERPLAY_DPCM,
385
+ AV_CODEC_ID_XAN_DPCM,
386
+ AV_CODEC_ID_SOL_DPCM,
387
+ AV_CODEC_ID_SDX2_DPCM,
388
+ AV_CODEC_ID_GREMLIN_DPCM,
389
+ AV_CODEC_ID_DERF_DPCM,
390
+ AV_CODEC_ID_WADY_DPCM,
391
+ AV_CODEC_ID_CBD2_DPCM,
392
+
393
+ /* audio codecs */
394
+ AV_CODEC_ID_MP2 = 0x15000,
395
+ AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
396
+ AV_CODEC_ID_AAC,
397
+ AV_CODEC_ID_AC3,
398
+ AV_CODEC_ID_DTS,
399
+ AV_CODEC_ID_VORBIS,
400
+ AV_CODEC_ID_DVAUDIO,
401
+ AV_CODEC_ID_WMAV1,
402
+ AV_CODEC_ID_WMAV2,
403
+ AV_CODEC_ID_MACE3,
404
+ AV_CODEC_ID_MACE6,
405
+ AV_CODEC_ID_VMDAUDIO,
406
+ AV_CODEC_ID_FLAC,
407
+ AV_CODEC_ID_MP3ADU,
408
+ AV_CODEC_ID_MP3ON4,
409
+ AV_CODEC_ID_SHORTEN,
410
+ AV_CODEC_ID_ALAC,
411
+ AV_CODEC_ID_WESTWOOD_SND1,
412
+ AV_CODEC_ID_GSM, ///< as in Berlin toast format
413
+ AV_CODEC_ID_QDM2,
414
+ AV_CODEC_ID_COOK,
415
+ AV_CODEC_ID_TRUESPEECH,
416
+ AV_CODEC_ID_TTA,
417
+ AV_CODEC_ID_SMACKAUDIO,
418
+ AV_CODEC_ID_QCELP,
419
+ AV_CODEC_ID_WAVPACK,
420
+ AV_CODEC_ID_DSICINAUDIO,
421
+ AV_CODEC_ID_IMC,
422
+ AV_CODEC_ID_MUSEPACK7,
423
+ AV_CODEC_ID_MLP,
424
+ AV_CODEC_ID_GSM_MS /* as found in WAV */,
425
+ AV_CODEC_ID_ATRAC3,
426
+ AV_CODEC_ID_APE,
427
+ AV_CODEC_ID_NELLYMOSER,
428
+ AV_CODEC_ID_MUSEPACK8,
429
+ AV_CODEC_ID_SPEEX,
430
+ AV_CODEC_ID_WMAVOICE,
431
+ AV_CODEC_ID_WMAPRO,
432
+ AV_CODEC_ID_WMALOSSLESS,
433
+ AV_CODEC_ID_ATRAC3P,
434
+ AV_CODEC_ID_EAC3,
435
+ AV_CODEC_ID_SIPR,
436
+ AV_CODEC_ID_MP1,
437
+ AV_CODEC_ID_TWINVQ,
438
+ AV_CODEC_ID_TRUEHD,
439
+ AV_CODEC_ID_MP4ALS,
440
+ AV_CODEC_ID_ATRAC1,
441
+ AV_CODEC_ID_BINKAUDIO_RDFT,
442
+ AV_CODEC_ID_BINKAUDIO_DCT,
443
+ AV_CODEC_ID_AAC_LATM,
444
+ AV_CODEC_ID_QDMC,
445
+ AV_CODEC_ID_CELT,
446
+ AV_CODEC_ID_G723_1,
447
+ AV_CODEC_ID_G729,
448
+ AV_CODEC_ID_8SVX_EXP,
449
+ AV_CODEC_ID_8SVX_FIB,
450
+ AV_CODEC_ID_BMV_AUDIO,
451
+ AV_CODEC_ID_RALF,
452
+ AV_CODEC_ID_IAC,
453
+ AV_CODEC_ID_ILBC,
454
+ AV_CODEC_ID_OPUS,
455
+ AV_CODEC_ID_COMFORT_NOISE,
456
+ AV_CODEC_ID_TAK,
457
+ AV_CODEC_ID_METASOUND,
458
+ AV_CODEC_ID_PAF_AUDIO,
459
+ AV_CODEC_ID_ON2AVC,
460
+ AV_CODEC_ID_DSS_SP,
461
+ AV_CODEC_ID_CODEC2,
462
+ AV_CODEC_ID_FFWAVESYNTH,
463
+ AV_CODEC_ID_SONIC,
464
+ AV_CODEC_ID_SONIC_LS,
465
+ AV_CODEC_ID_EVRC,
466
+ AV_CODEC_ID_SMV,
467
+ AV_CODEC_ID_DSD_LSBF,
468
+ AV_CODEC_ID_DSD_MSBF,
469
+ AV_CODEC_ID_DSD_LSBF_PLANAR,
470
+ AV_CODEC_ID_DSD_MSBF_PLANAR,
471
+ AV_CODEC_ID_4GV,
472
+ AV_CODEC_ID_INTERPLAY_ACM,
473
+ AV_CODEC_ID_XMA1,
474
+ AV_CODEC_ID_XMA2,
475
+ AV_CODEC_ID_DST,
476
+ AV_CODEC_ID_ATRAC3AL,
477
+ AV_CODEC_ID_ATRAC3PAL,
478
+ AV_CODEC_ID_DOLBY_E,
479
+ AV_CODEC_ID_APTX,
480
+ AV_CODEC_ID_APTX_HD,
481
+ AV_CODEC_ID_SBC,
482
+ AV_CODEC_ID_ATRAC9,
483
+ AV_CODEC_ID_HCOM,
484
+ AV_CODEC_ID_ACELP_KELVIN,
485
+ AV_CODEC_ID_MPEGH_3D_AUDIO,
486
+ AV_CODEC_ID_SIREN,
487
+ AV_CODEC_ID_HCA,
488
+ AV_CODEC_ID_FASTAUDIO,
489
+ AV_CODEC_ID_MSNSIREN,
490
+ AV_CODEC_ID_DFPWM,
491
+ AV_CODEC_ID_BONK,
492
+ AV_CODEC_ID_MISC4,
493
+ AV_CODEC_ID_APAC,
494
+ AV_CODEC_ID_FTR,
495
+ AV_CODEC_ID_WAVARC,
496
+ AV_CODEC_ID_RKA,
497
+ AV_CODEC_ID_AC4,
498
+ AV_CODEC_ID_OSQ,
499
+ AV_CODEC_ID_QOA,
500
+
501
+ /* subtitle codecs */
502
+ AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
503
+ AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
504
+ AV_CODEC_ID_DVB_SUBTITLE,
505
+ AV_CODEC_ID_TEXT, ///< raw UTF-8 text
506
+ AV_CODEC_ID_XSUB,
507
+ AV_CODEC_ID_SSA,
508
+ AV_CODEC_ID_MOV_TEXT,
509
+ AV_CODEC_ID_HDMV_PGS_SUBTITLE,
510
+ AV_CODEC_ID_DVB_TELETEXT,
511
+ AV_CODEC_ID_SRT,
512
+ AV_CODEC_ID_MICRODVD,
513
+ AV_CODEC_ID_EIA_608,
514
+ AV_CODEC_ID_JACOSUB,
515
+ AV_CODEC_ID_SAMI,
516
+ AV_CODEC_ID_REALTEXT,
517
+ AV_CODEC_ID_STL,
518
+ AV_CODEC_ID_SUBVIEWER1,
519
+ AV_CODEC_ID_SUBVIEWER,
520
+ AV_CODEC_ID_SUBRIP,
521
+ AV_CODEC_ID_WEBVTT,
522
+ AV_CODEC_ID_MPL2,
523
+ AV_CODEC_ID_VPLAYER,
524
+ AV_CODEC_ID_PJS,
525
+ AV_CODEC_ID_ASS,
526
+ AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
527
+ AV_CODEC_ID_TTML,
528
+ AV_CODEC_ID_ARIB_CAPTION,
529
+
530
+ /* other specific kind of codecs (generally used for attachments) */
531
+ AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs.
532
+ AV_CODEC_ID_TTF = 0x18000,
533
+
534
+ AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream.
535
+ AV_CODEC_ID_EPG,
536
+ AV_CODEC_ID_BINTEXT,
537
+ AV_CODEC_ID_XBIN,
538
+ AV_CODEC_ID_IDF,
539
+ AV_CODEC_ID_OTF,
540
+ AV_CODEC_ID_SMPTE_KLV,
541
+ AV_CODEC_ID_DVD_NAV,
542
+ AV_CODEC_ID_TIMED_ID3,
543
+ AV_CODEC_ID_BIN_DATA,
544
+ AV_CODEC_ID_SMPTE_2038,
545
+
546
+ AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
547
+
548
+ AV_CODEC_ID_MPEG2TS = 0x20000 /**< _FAKE_ codec to indicate a raw MPEG-2 TS
549
+ * stream (only used by libavformat) */,
550
+ AV_CODEC_ID_MPEG4SYSTEMS = 0x20001 /**< _FAKE_ codec to indicate a MPEG-4 Systems
551
+ * stream (only used by libavformat) */,
552
+ AV_CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information.
553
+ AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001, ///< Passthrough codec, AVFrames wrapped in AVPacket
554
+ /**
555
+ * Dummy null video codec, useful mainly for development and debugging.
556
+ * Null encoder/decoder discard all input and never return any output.
557
+ */
558
+ AV_CODEC_ID_VNULL,
559
+ /**
560
+ * Dummy null audio codec, useful mainly for development and debugging.
561
+ * Null encoder/decoder discard all input and never return any output.
562
+ */
563
+ AV_CODEC_ID_ANULL,
564
+ }
@@ -0,0 +1,47 @@
1
+ import {
2
+ Decoder,
3
+ FilterAPI,
4
+ type Frame,
5
+ type Packet,
6
+ type Stream,
7
+ } from "node-av";
8
+
9
+ export async function createDecoder(stream: Stream) {
10
+ const decoder = await Decoder.create(stream);
11
+ let freed = false;
12
+ let serializer: Promise<unknown> | null = null;
13
+ const serialize = <T>(f: () => Promise<T>) => {
14
+ let p: Promise<T>;
15
+ if (serializer) {
16
+ p = serializer.catch(() => {}).then(() => f());
17
+ } else {
18
+ p = f();
19
+ }
20
+ serializer = p = p.finally(() => {
21
+ if (serializer === p) serializer = null;
22
+ });
23
+ return p;
24
+ };
25
+ const filter = FilterAPI.create("format=pix_fmts=rgba");
26
+ return {
27
+ decode: async (packets: Packet) => {
28
+ if (freed) return [];
29
+
30
+ return serialize(async () => {
31
+ const frames = await decoder.decodeAll(packets);
32
+ let filtered: Frame[] = [];
33
+ for (const frame of frames) {
34
+ filtered = [...filtered, ...(await filter.processAll(frame))];
35
+ }
36
+ return filtered;
37
+ });
38
+ },
39
+ free: () => {
40
+ freed = true;
41
+ return serialize(async () => {
42
+ decoder.close();
43
+ filter.close();
44
+ });
45
+ },
46
+ };
47
+ }