* Video decoder

This commit is contained in:
Michael Van Canneyt 2025-04-18 16:56:42 +02:00
parent 716b69c145
commit c78cdfcf40

View File

@ -2007,7 +2007,7 @@ type
FencodeQueueSize: NativeInt; external name 'encodeQueueSize';
FState: string; external name 'state';
Public
class function isConfigSupported(aOptions : TJSNewVideoEncoderOptions) : boolean;
class function isConfigSupported(aOptions : TJSVideoEncoderConfiguration) : boolean;
constructor new(aOptions : TJSNewVideoEncoderOptions);
procedure close;
procedure configure(aConfig :TJSVideoEncoderConfiguration);
@ -2016,9 +2016,47 @@ type
procedure reset;
property encodeQueueSize : NativeInt Read FencodeQueueSize;
property State : string read FState;
end;
TJSVideoDecoderOutputCallBack = reference to procedure (aData : TJSVideoFrame);
TJSVideoDecoderErrorCallBack = reference to procedure (aError: TJSError);
TJSNewVideoDecoderOptions = class external name 'Object' (TJSObject)
output : TJSVideoDecoderOutputCallback;
error : TJSVideoDecoderErrorCallback;
end;
TJSVideoDecoderConfiguration = class external name 'Object' (TJSObject)
codec : string;
codedWidth : NativeInt;
codedHeight: NativeInt;
displayAspectWidth : NativeInt;
displayAspectHeight : NativeInt;
colorSpace : TJSVideoColorSpace;
hardwareAcceleration : string;
optimizeForLatency : Boolean;
end;
{ TJSVideoDecoder }
TJSVideoDecoder = class external name 'VideoDecoder' (TJSEventTarget)
private
FdecodeQueueSize: NativeInt; external name 'decodeQueueSize';
FState: string; external name 'state';
public
constructor new(aOptions : TJSNewVideoDecoderOptions);
class function isConfigSupported(aOptions : TJSVideoDecoderConfiguration) : boolean;
procedure close;
procedure configure(aConfig :TJSVideoEncoderConfiguration);
procedure decode(Frame : TJSEncodedVideoChunk);
procedure flush;
procedure reset;
procedure configure(aConfig :TJSVideoDecoderConfiguration);
property decodeQueueSize : NativeInt Read FdecodeQueueSize;
property State : string read FState;
end;
TJSScriptContext = (jscUnknown,jscMainBrowserThread,jscWebWorker,jscServiceWorker);