Compare commits
2 commits
master
...
chore-buil
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3992d894d4 | ||
|
|
56a9f89c6b |
10 changed files with 94 additions and 94 deletions
22
.github/workflows/nodejs.yml
vendored
22
.github/workflows/nodejs.yml
vendored
|
|
@ -7,7 +7,27 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [18.x, 20.x, 22.x]
|
||||
node-version: [14.x, 16.x, 18.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: npm install, build, and test
|
||||
run: |
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
npm test
|
||||
env:
|
||||
CI: true
|
||||
|
||||
build-windows:
|
||||
runs-on: windows-2019
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [18.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@eyevinn/srt",
|
||||
"version": "0.8.3",
|
||||
"version": "0.7.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@eyevinn/srt",
|
||||
"version": "0.8.3",
|
||||
"version": "0.7.0",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@eyevinn/srt",
|
||||
"version": "0.8.3",
|
||||
"version": "0.7.0",
|
||||
"description": "Nodejs bindings for Secure Reliable Transport SDK",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ const os = require('os');
|
|||
const env = process.env;
|
||||
|
||||
const SRT_REPO = env.NODE_SRT_REPO || "https://github.com/Haivision/srt.git";
|
||||
const SRT_CHECKOUT = "v1.5.4";
|
||||
const SRT_CHECKOUT = "v1.4.4";
|
||||
|
||||
const srtRepoPath = env.NODE_SRT_LOCAL_REPO ? `file://${path.join(__dirname, env.NODE_SRT_LOCAL_REPO)}` : SRT_REPO;
|
||||
const srtCheckout = env.NODE_SRT_CHECKOUT || SRT_CHECKOUT;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ const debug = require('debug')('srt-async');
|
|||
|
||||
const { traceCallToString, extractTransferListFromParams } = require('./async-helpers');
|
||||
const { SRT } = require('../build/Release/node_srt.node');
|
||||
const EventEmitter = require('events');
|
||||
|
||||
const DEFAULT_PROMISE_TIMEOUT_MS = 3000;
|
||||
|
||||
|
|
@ -16,7 +15,7 @@ const DEBUG = false;
|
|||
const WORK_ID_GEN_MOD = 0xFFF;
|
||||
*/
|
||||
|
||||
class AsyncSRT extends EventEmitter {
|
||||
class AsyncSRT {
|
||||
|
||||
/**
|
||||
* @static
|
||||
|
|
@ -25,7 +24,7 @@ class AsyncSRT extends EventEmitter {
|
|||
static TimeoutMs = DEFAULT_PROMISE_TIMEOUT_MS;
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
|
||||
DEBUG && debug('Creating task-runner worker instance');
|
||||
|
||||
this._worker = new Worker(path.resolve(__dirname, './async-worker.js'));
|
||||
|
|
@ -68,7 +67,6 @@ class AsyncSRT extends EventEmitter {
|
|||
'\n Binding call:', traceCallToString(data.call.method, data.call.args),
|
||||
//'\n Stacktrace:', data.err.stack
|
||||
);
|
||||
this.emit('error', data.err.message)
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ Napi::Value NodeSRT::Accept(const Napi::CallbackInfo& info) {
|
|||
Napi::Error::New(env, srt_getlasterror_str()).ThrowAsJavaScriptException();
|
||||
return Napi::Number::New(env, SRT_ERROR);
|
||||
}
|
||||
|
||||
srt_close(socketValue);
|
||||
socketValue = Napi::Number::New(env, SRT_INVALID_SOCK);
|
||||
return Napi::Number::New(env, their_fd);
|
||||
}
|
||||
|
|
|
|||
133
src/srt-enums.h
133
src/srt-enums.h
|
|
@ -1,73 +1,66 @@
|
|||
#define ENUM(E,F) StaticValue(#E,Napi::Number::New(env,F))
|
||||
#define ENUM(E) StaticValue(#E, Napi::Number::New(env, E))
|
||||
|
||||
// egrep '^\s+SRTO' srtcore/srt.h | sed 's/^.*\(SRTO_[^, ]*\)[, ].*$/ ENUM\(\1\), \\/'
|
||||
|
||||
#define SOCKET_OPTIONS \
|
||||
ENUM(SRTO_MSS, 0), \
|
||||
ENUM(SRTO_SNDSYN, 1), \
|
||||
ENUM(SRTO_RCVSYN, 2), \
|
||||
ENUM(SRTO_ISN, 3), \
|
||||
ENUM(SRTO_FC, 4), \
|
||||
ENUM(SRTO_SNDBUF, 5), \
|
||||
ENUM(SRTO_RCVBUF, 6), \
|
||||
ENUM(SRTO_LINGER, 7), \
|
||||
ENUM(SRTO_UDP_SNDBUF, 8), \
|
||||
ENUM(SRTO_UDP_RCVBUF, 9), \
|
||||
ENUM(SRTO_RENDEZVOUS, 12), \
|
||||
ENUM(SRTO_SNDTIMEO, 13), \
|
||||
ENUM(SRTO_RCVTIMEO, 14), \
|
||||
ENUM(SRTO_REUSEADDR, 15), \
|
||||
ENUM(SRTO_MAXBW, 16), \
|
||||
ENUM(SRTO_STATE, 17), \
|
||||
ENUM(SRTO_EVENT, 18), \
|
||||
ENUM(SRTO_SNDDATA, 19), \
|
||||
ENUM(SRTO_RCVDATA, 20), \
|
||||
ENUM(SRTO_SENDER, 21), \
|
||||
ENUM(SRTO_TSBPDMODE, 22), \
|
||||
ENUM(SRTO_LATENCY, 23), \
|
||||
ENUM(SRTO_INPUTBW, 24), \
|
||||
ENUM(SRTO_OHEADBW, 25), \
|
||||
ENUM(SRTO_PASSPHRASE, 26), \
|
||||
ENUM(SRTO_PBKEYLEN, 27), \
|
||||
ENUM(SRTO_KMSTATE, 28), \
|
||||
ENUM(SRTO_IPTTL, 29), \
|
||||
ENUM(SRTO_IPTOS, 30), \
|
||||
ENUM(SRTO_TLPKTDROP, 31), \
|
||||
ENUM(SRTO_SNDDROPDELAY, 32), \
|
||||
ENUM(SRTO_NAKREPORT, 33), \
|
||||
ENUM(SRTO_VERSION, 34), \
|
||||
ENUM(SRTO_PEERVERSION, 35), \
|
||||
ENUM(SRTO_CONNTIMEO, 36), \
|
||||
ENUM(SRTO_DRIFTTRACER, 37), \
|
||||
ENUM(SRTO_MININPUTBW, 38), \
|
||||
ENUM(SRTO_SNDKMSTATE, 40), \
|
||||
ENUM(SRTO_RCVKMSTATE, 41), \
|
||||
ENUM(SRTO_LOSSMAXTTL, 42), \
|
||||
ENUM(SRTO_RCVLATENCY, 43), \
|
||||
ENUM(SRTO_PEERLATENCY, 44), \
|
||||
ENUM(SRTO_MINVERSION, 45), \
|
||||
ENUM(SRTO_STREAMID, 46), \
|
||||
ENUM(SRTO_CONGESTION, 47), \
|
||||
ENUM(SRTO_MESSAGEAPI, 48), \
|
||||
ENUM(SRTO_PAYLOADSIZE, 49), \
|
||||
ENUM(SRTO_TRANSTYPE, 50), \
|
||||
ENUM(SRTO_KMREFRESHRATE, 51), \
|
||||
ENUM(SRTO_KMPREANNOUNCE, 52), \
|
||||
ENUM(SRTO_ENFORCEDENCRYPTION, 53), \
|
||||
ENUM(SRTO_IPV6ONLY, 54), \
|
||||
ENUM(SRTO_PEERIDLETIMEO, 55), \
|
||||
ENUM(SRTO_BINDTODEVICE, 56), \
|
||||
ENUM(SRTO_GROUPCONNECT, 57), \
|
||||
ENUM(SRTO_GROUPMINSTABLETIMEO, 58), \
|
||||
ENUM(SRTO_GROUPTYPE, 59), \
|
||||
ENUM(SRTO_PACKETFILTER, 60), \
|
||||
ENUM(SRTO_RETRANSMITALGO, 61)
|
||||
|
||||
ENUM(SRTO_MSS), \
|
||||
ENUM(SRTO_SNDSYN), \
|
||||
ENUM(SRTO_RCVSYN), \
|
||||
ENUM(SRTO_ISN), \
|
||||
ENUM(SRTO_FC), \
|
||||
ENUM(SRTO_SNDBUF), \
|
||||
ENUM(SRTO_RCVBUF), \
|
||||
ENUM(SRTO_LINGER), \
|
||||
ENUM(SRTO_UDP_SNDBUF), \
|
||||
ENUM(SRTO_UDP_RCVBUF), \
|
||||
ENUM(SRTO_RENDEZVOUS), \
|
||||
ENUM(SRTO_SNDTIMEO), \
|
||||
ENUM(SRTO_RCVTIMEO), \
|
||||
ENUM(SRTO_REUSEADDR), \
|
||||
ENUM(SRTO_MAXBW), \
|
||||
ENUM(SRTO_STATE), \
|
||||
ENUM(SRTO_EVENT), \
|
||||
ENUM(SRTO_SNDDATA), \
|
||||
ENUM(SRTO_RCVDATA), \
|
||||
ENUM(SRTO_SENDER), \
|
||||
ENUM(SRTO_TSBPDMODE), \
|
||||
ENUM(SRTO_INPUTBW), \
|
||||
ENUM(SRTO_OHEADBW), \
|
||||
ENUM(SRTO_PASSPHRASE), \
|
||||
ENUM(SRTO_PBKEYLEN), \
|
||||
ENUM(SRTO_KMSTATE), \
|
||||
ENUM(SRTO_IPTTL), \
|
||||
ENUM(SRTO_IPTOS), \
|
||||
ENUM(SRTO_TLPKTDROP), \
|
||||
ENUM(SRTO_SNDDROPDELAY), \
|
||||
ENUM(SRTO_NAKREPORT), \
|
||||
ENUM(SRTO_VERSION), \
|
||||
ENUM(SRTO_PEERVERSION), \
|
||||
ENUM(SRTO_CONNTIMEO), \
|
||||
ENUM(SRTO_SNDKMSTATE), \
|
||||
ENUM(SRTO_RCVKMSTATE), \
|
||||
ENUM(SRTO_LOSSMAXTTL), \
|
||||
ENUM(SRTO_RCVLATENCY), \
|
||||
ENUM(SRTO_PEERLATENCY), \
|
||||
ENUM(SRTO_MINVERSION), \
|
||||
ENUM(SRTO_STREAMID), \
|
||||
ENUM(SRTO_CONGESTION), \
|
||||
ENUM(SRTO_MESSAGEAPI), \
|
||||
ENUM(SRTO_PAYLOADSIZE), \
|
||||
ENUM(SRTO_TRANSTYPE), \
|
||||
ENUM(SRTO_KMREFRESHRATE), \
|
||||
ENUM(SRTO_KMPREANNOUNCE), \
|
||||
ENUM(SRTO_ENFORCEDENCRYPTION), \
|
||||
ENUM(SRTO_IPV6ONLY), \
|
||||
ENUM(SRTO_PEERIDLETIMEO), \
|
||||
ENUM(SRTO_PACKETFILTER)
|
||||
|
||||
#define SOCKET_STATUS \
|
||||
ENUM(SRTS_INIT, 1), \
|
||||
ENUM(SRTS_OPENED, 2), \
|
||||
ENUM(SRTS_LISTENING, 3), \
|
||||
ENUM(SRTS_CONNECTING, 4), \
|
||||
ENUM(SRTS_CONNECTED, 5), \
|
||||
ENUM(SRTS_BROKEN, 6), \
|
||||
ENUM(SRTS_CLOSING, 7), \
|
||||
ENUM(SRTS_CLOSED, 8), \
|
||||
ENUM(SRTS_NONEXIST, 9)
|
||||
ENUM(SRTS_INIT), \
|
||||
ENUM(SRTS_OPENED), \
|
||||
ENUM(SRTS_LISTENING), \
|
||||
ENUM(SRTS_CONNECTING), \
|
||||
ENUM(SRTS_CONNECTED), \
|
||||
ENUM(SRTS_BROKEN), \
|
||||
ENUM(SRTS_CLOSING), \
|
||||
ENUM(SRTS_CLOSED)
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ class SRTConnection extends EventEmitter {
|
|||
this.emit('closing');
|
||||
const result = await asyncSrt.close(this.fd);
|
||||
this.emit('closed', result);
|
||||
this.removeAllListeners();
|
||||
this.off();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -113,14 +113,6 @@ class SRTConnection extends EventEmitter {
|
|||
this._gotFirstData = true;
|
||||
}
|
||||
}
|
||||
|
||||
async getSocketOpt(opt) {
|
||||
return await this._asyncSrt.getSockOpt(this.fd, opt);
|
||||
}
|
||||
|
||||
async setSocketOpt(opt, val) {
|
||||
return await this._asyncSrt.setSockOpt(this.fd, opt, val);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
4
types/srt-api-async.d.ts
vendored
4
types/srt-api-async.d.ts
vendored
|
|
@ -1,11 +1,11 @@
|
|||
import { EventEmitter } from "events";
|
||||
|
||||
import { SRTLoggingLevel, SRTResult, SRTSockOpt, SRTSockStatus } from "../src/srt-api-enums";
|
||||
|
||||
import { SRTReadReturn, SRTFileDescriptor, SRTEpollEvent, SRTSockOptValue, SRTStats } from "./srt-api"
|
||||
|
||||
export type AsyncSRTCallback<T> = (result: T) => void;
|
||||
|
||||
export class AsyncSRT extends EventEmitter {
|
||||
export class AsyncSRT {
|
||||
|
||||
static TimeoutMs: number;
|
||||
|
||||
|
|
|
|||
3
types/srt-server.d.ts
vendored
3
types/srt-server.d.ts
vendored
|
|
@ -30,9 +30,6 @@ export class SRTConnection extends EventEmitter {
|
|||
onData(): void;
|
||||
|
||||
getReaderWriter(): AsyncReaderWriter;
|
||||
|
||||
getSocketOpt(opt: number): Promise<number|boolean|string>;
|
||||
setSocketOpt(opt: number, val: number|boolean|string): Promise<number>;
|
||||
}
|
||||
|
||||
export class SRTServer extends EventEmitter /*<SRTServerEvent>*/ {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue