diff --git a/packages/rtl/src/web.pas b/packages/rtl/src/web.pas index a8e0144..b571cf3 100644 --- a/packages/rtl/src/web.pas +++ b/packages/rtl/src/web.pas @@ -3281,7 +3281,63 @@ Type end; + TJSVideoFrameMetaData = class external name 'Object' (TJSObject) + expectedDisplayTime : TJSDOMHighResTimeStamp; + height : NativeInt; + mediaTime : NativeInt; + presentationTime : TJSDOMHighResTimeStamp; + presentedFrames : NativeInt; + processingDuration : NativeInt; + width : NativeInt; + // WebRTC only + captureTime : TJSDOMHighResTimeStamp; + receiveTime : TJSDOMHighResTimeStamp; + rtpTimestamp : NativeInt; + end; + + { TJSHTMLVideoElement } + + { TJSPictureInPictureWindow } + + TJSPictureInPictureWindow = class external name 'PictureInPictureWindow' (TJSEventTarget) + private + FHeigth: NativeInt; external name 'height'; + FWidth: NativeInt; external name 'width'; + Public + property height : NativeInt read FHeigth; + property width : NativeInt read FWidth; + end; + + { TJSVideoPlaybackQuality } + + TJSVideoPlaybackQuality = class external name 'VideoPlaybackQuality' (TJSObject) + private + FCreationTime: TJSDOMHighResTimeStamp; external name 'creationTime'; + FdroppedVideoFrames: NativeInt; external name 'droppedVideoFrames'; + FtotalVideoFrames: NativeInt; external name 'totalVideoFrames'; + Public + property creationTime : TJSDOMHighResTimeStamp Read FCreationTime; + property droppedVideoFrames : NativeInt Read FdroppedVideoFrames; + property totalVideoFrames : NativeInt Read FtotalVideoFrames; + end; + + TRequestVideoFrameCallback = reference to procedure(aNow : TJSDOMHighResTimeStamp; metaData : TJSVideoFrameMetaData); + TJSHTMLVideoElement = Class external name 'HTMLVideoElement' (TJSHTMLMediaElement) + private + FvideoHeight: NativeInt; external name 'videoHeight'; + FvideoWidth: NativeInt; external name 'videoWidth'; + public + disablePictureInPicture : boolean; + height : NativeInt; + width : NativeInt; + poster : string; + procedure cancelVideoFrameCallback(id : NativeInt); + function getVideoPlaybackQuality : TJSVideoPlaybackQuality; + function requestVideoFrameCallback(aCallback : TRequestVideoFrameCallback) : NativeInt; + function requestPictureInPicture : TJSPictureInPictureWindow; async; + property videoWidth : NativeInt read FvideoWidth; + property videoHeight : NativeInt read FvideoHeight; end; { TJSHTMLStyleElement }