@scrypted/libav 1.0.138 → 1.0.140
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.
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/formatcontext.cpp +35 -0
- package/src/index.ts +4 -0
package/lib/index.d.ts
CHANGED
|
@@ -118,6 +118,7 @@ export declare function createAVFilter(options: {
|
|
|
118
118
|
export declare function createAVFrame(width: number, height: number, pixelFormat: string, fillBlack?: boolean): AVFrame;
|
|
119
119
|
export declare function createAVBitstreamFilter(filter: string): AVBitstreamFilter;
|
|
120
120
|
export declare function getBinaryUrl(): string;
|
|
121
|
+
export declare function createSdp(formatContexts: AVFormatContext[]): any;
|
|
121
122
|
export declare function toJpeg(frame: AVFrame, quality: number): Promise<Buffer<ArrayBufferLike>>;
|
|
122
123
|
export declare function toBuffer(frame: AVFrame): Promise<Buffer<ArrayBufferLike>>;
|
|
123
124
|
export declare const version: string;
|
package/lib/index.js
CHANGED
|
@@ -82,6 +82,7 @@ exports.createAVFilter = createAVFilter;
|
|
|
82
82
|
exports.createAVFrame = createAVFrame;
|
|
83
83
|
exports.createAVBitstreamFilter = createAVBitstreamFilter;
|
|
84
84
|
exports.getBinaryUrl = getBinaryUrl;
|
|
85
|
+
exports.createSdp = createSdp;
|
|
85
86
|
exports.toJpeg = toJpeg;
|
|
86
87
|
exports.toBuffer = toBuffer;
|
|
87
88
|
const detect_libc_1 = __importDefault(require("detect-libc"));
|
|
@@ -229,6 +230,9 @@ async function encodeJpeg(softwareFrame, quality) {
|
|
|
229
230
|
__disposeResources(env_1);
|
|
230
231
|
}
|
|
231
232
|
}
|
|
233
|
+
function createSdp(formatContexts) {
|
|
234
|
+
return loadAddon().createSdp(formatContexts);
|
|
235
|
+
}
|
|
232
236
|
async function toJpeg(frame, quality) {
|
|
233
237
|
const env_2 = { stack: [], error: void 0, hasError: false };
|
|
234
238
|
try {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,4BAEC;AAOD,oCAEC;AAED,sCAEC;AAED,8BAKC;AAGD,0BAgCC;AAED,sCA2BC;AA+GD,sCAEC;AAED,sDAEC;AAED,wCAcC;AAED,sCAOC;AAED,0DAEC;AAED,oCAeC;AA4BD,wBA2BC;AAED,4BAqBC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/formatcontext.cpp
CHANGED
|
@@ -786,6 +786,40 @@ Napi::Value AVFormatContextObject::CreateSDP(const Napi::CallbackInfo &info)
|
|
|
786
786
|
return sdpString;
|
|
787
787
|
}
|
|
788
788
|
|
|
789
|
+
Napi::Value createSDP(const Napi::CallbackInfo &info) {
|
|
790
|
+
Napi::Env env = info.Env();
|
|
791
|
+
|
|
792
|
+
if (info.Length() < 1 || !info[0].IsArray()) {
|
|
793
|
+
Napi::TypeError::New(env, "Array of AVFormatContext expected for argument 0").ThrowAsJavaScriptException();
|
|
794
|
+
return env.Undefined();
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
Napi::Array formatContextArray = info[0].As<Napi::Array>();
|
|
798
|
+
size_t length = formatContextArray.Length();
|
|
799
|
+
AVFormatContext *ctx[100];
|
|
800
|
+
|
|
801
|
+
if (length > 100) {
|
|
802
|
+
Napi::Error::New(env, "Array length must be less than 100").ThrowAsJavaScriptException();
|
|
803
|
+
return env.Undefined();
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
for (size_t i = 0; i < length; i++) {
|
|
807
|
+
Napi::Object formatContextObject = formatContextArray.Get(i).As<Napi::Object>();
|
|
808
|
+
AVFormatContextObject *avFormatContextObject = Napi::ObjectWrap<AVFormatContextObject>::Unwrap(formatContextObject);
|
|
809
|
+
ctx[i] = avFormatContextObject->fmt_ctx_;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
char sdp[65536];
|
|
813
|
+
int ret = av_sdp_create(ctx, length, sdp, sizeof(sdp));
|
|
814
|
+
if (ret < 0) {
|
|
815
|
+
Napi::Error::New(env, AVErrorString(ret)).ThrowAsJavaScriptException();
|
|
816
|
+
return env.Undefined();
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
Napi::String sdpString = Napi::String::New(env, sdp);
|
|
820
|
+
return sdpString;
|
|
821
|
+
}
|
|
822
|
+
|
|
789
823
|
Napi::Object Init(Napi::Env env, Napi::Object exports)
|
|
790
824
|
{
|
|
791
825
|
av_log_set_level(AV_LOG_QUIET);
|
|
@@ -799,6 +833,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports)
|
|
|
799
833
|
AVBitstreamFilter::Init(env, exports);
|
|
800
834
|
|
|
801
835
|
exports.Set(Napi::String::New(env, "setLogLevel"), Napi::Function::New(env, setLogLevel));
|
|
836
|
+
exports.Set(Napi::String::New(env, "createSdp"), Napi::Function::New(env, createSDP));
|
|
802
837
|
return exports;
|
|
803
838
|
}
|
|
804
839
|
|
package/src/index.ts
CHANGED
|
@@ -287,6 +287,10 @@ async function encodeJpeg(softwareFrame: AVFrame, quality: number) {
|
|
|
287
287
|
return transcodePacket.getData();
|
|
288
288
|
}
|
|
289
289
|
|
|
290
|
+
export function createSdp(formatContexts: AVFormatContext[]) {
|
|
291
|
+
return loadAddon().createSdp(formatContexts);
|
|
292
|
+
}
|
|
293
|
+
|
|
290
294
|
export async function toJpeg(frame: AVFrame, quality: number) {
|
|
291
295
|
if (frame.pixelFormat === 'yuvj420p')
|
|
292
296
|
return await encodeJpeg(frame, quality);
|