finished SRTO_STREAMID implementation

added String as possible Value to setSockOpt
added test for normal SRT API

removed double SRTO_STREAMID from srt-enums.h
This commit is contained in:
Daniel Soßnowski 2022-01-21 02:27:07 +01:00
parent 64076e370f
commit bb9665b856
4 changed files with 24 additions and 4 deletions

View file

@ -53,7 +53,7 @@ describe("Async SRT API with callbacks", () => {
});
});
});
it("can set SRT socket in non-blocking mode", done => {
const asyncSrt = new AsyncSRT();
asyncSrt.createSocket(false, (socket) => {

View file

@ -39,6 +39,17 @@ describe("SRT library", () => {
expect(value).toEqual(1052);
});
it("can set SRT sockopt SRTO_STREAMID", () => {
const srt = new SRT();
const socket = srt.createSocket();
const result = srt.setSockOpt(socket, SRT.SRTO_STREAMID, "STREAMID");
expect(result).not.toEqual(SRT.ERROR);
const value = srt.getSockOpt(socket, SRT.SRTO_STREAMID);
expect(value).toEqual("STREAMID");
});
it("can set SRT socket in non-blocking mode", () => {
const srt = new SRT();
const socket = srt.createSocket();
@ -59,7 +70,7 @@ describe("SRT library", () => {
const epid = srt.epollCreate();
srt.epollAddUsock(epid, socket, SRT.EPOLL_IN | SRT.EPOLL_ERR);
const events = srt.epollUWait(epid, 500);
expect(events.length).toEqual(0);
});
@ -67,4 +78,4 @@ describe("SRT library", () => {
expect(SRT.SRTO_UDP_SNDBUF).toEqual(8);
expect(SRT.SRTO_RCVLATENCY).toEqual(43);
});
});
});

View file

@ -267,6 +267,15 @@ Napi::Value NodeSRT::SetSockOpt(const Napi::CallbackInfo& info) {
Napi::Error::New(env, srt_getlasterror_str()).ThrowAsJavaScriptException();
return Napi::Number::New(env, SRT_ERROR);
}
} else if (info[2].IsString()) {
Napi::String value = info[2].As<Napi::String>();
int32_t optName = option;
const char * optValue = std::string(value).c_str();
result = srt_setsockflag(socketValue, (SRT_SOCKOPT)optName, optValue, sizeof(string));
if (result == SRT_ERROR) {
Napi::Error::New(env, srt_getlasterror_str()).ThrowAsJavaScriptException();
return Napi::Number::New(env, SRT_ERROR);
}
}
return Napi::Number::New(env, result);
}
@ -349,6 +358,7 @@ Napi::Value NodeSRT::GetSockOpt(const Napi::CallbackInfo& info) {
char optValue[512];
int optSize = sizeof(optValue);
result = srt_getsockflag(socketValue, (SRT_SOCKOPT)optName, (void *)&optValue, &optSize);
returnVal = Napi::Value::From(env, std::string(optValue));
break;
}

View file

@ -27,7 +27,6 @@
ENUM(SRTO_INPUTBW), \
ENUM(SRTO_OHEADBW), \
ENUM(SRTO_PASSPHRASE), \
ENUM(SRTO_STREAMID), \
ENUM(SRTO_PBKEYLEN), \
ENUM(SRTO_KMSTATE), \
ENUM(SRTO_IPTTL), \