Compare commits

...

7 commits

Author SHA1 Message Date
wrapper
4a7cb0dc2a 21521 2025-07-17 13:34:10 +07:00
wrapper
8e036283a9 part 2 2025-07-17 13:32:15 +07:00
wrapper
36111eec76 socket opts 2025-07-17 13:26:56 +07:00
wrapper
76c5dbc421 Allow multiplex
Some checks failed
Node CI / build-linux (18.x) (push) Has been cancelled
Node CI / build-linux (20.x) (push) Has been cancelled
Node CI / build-linux (22.x) (push) Has been cancelled
2025-07-17 11:28:41 +07:00
neoxpert
62b4a8ceac
Update SRT to 1.5.4 (#74)
* use SRT 1.5.4

* Update nodejs.yml

drop EoL NodeJS versions
2025-04-08 22:24:10 +02:00
Jonas Birmé
fe1d9f9cee
0.8.3 2023-11-20 13:02:52 +01:00
yaruno
f7938b4567
fix: AsyncSRT types and tests, add super() to AsyncSRT constructor (#67)
* add event emitter to async class

* fix types for AsyncSRT class

* Should call super() on constructor as extending event emitter, fixes tests
2023-11-20 12:54:11 +01:00
9 changed files with 21 additions and 10 deletions

View file

@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x, 18.x]
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v3

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "@eyevinn/srt",
"version": "0.8.2",
"version": "0.8.3",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@eyevinn/srt",
"version": "0.8.2",
"version": "0.8.3",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {

View file

@ -1,6 +1,6 @@
{
"name": "@eyevinn/srt",
"version": "0.8.2",
"version": "0.8.3",
"description": "Nodejs bindings for Secure Reliable Transport SDK",
"main": "index.js",
"scripts": {

View file

@ -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.2";
const SRT_CHECKOUT = "v1.5.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;

View file

@ -25,7 +25,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'));

View file

@ -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);
}

View file

@ -99,7 +99,7 @@ class SRTConnection extends EventEmitter {
this.emit('closing');
const result = await asyncSrt.close(this.fd);
this.emit('closed', result);
this.off();
this.removeAllListeners();
return result;
}
@ -113,6 +113,14 @@ 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);
}
}
/**

View file

@ -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 {
export class AsyncSRT extends EventEmitter {
static TimeoutMs: number;

View file

@ -30,6 +30,9 @@ 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>*/ {