Package com.banuba.sdk.effect_player
Class EffectPlayer.CppProxy
java.lang.Object
com.banuba.sdk.effect_player.EffectPlayer.CppProxy
- All Implemented Interfaces:
- EffectPlayer
- Enclosing interface:
- EffectPlayer
- 
Nested Class SummaryNested classes/interfaces inherited from interface com.banuba.sdk.effect_player.EffectPlayerEffectPlayer.CppProxy
- 
Method SummaryModifier and TypeMethodDescriptionvoidvoidaddCameraPoiListener(CameraPoiListener cameraPoiListener) Add callback to receive center of the face in frame relative to top-left corner in [0, 1] space.voidaddEffectActivationCompletionListener(EffectActivationCompletionListener effectActivationCompletionListener) Add callback to receive current effect activation notification from Effect Player.voidaddEffectInfoListener(EffectInfoListener effectInfoListener) Add callback to receive current effect info from Effect Player.voidaddFaceNumberListener(FaceNumberListener faceNumberListener) Add callback to receive faces count in frame.voidaddFrameDataListener(FrameDataListener frameDataListener) Add callback to receive frame data right after processing in recognizer.voidaddFrameDurationListener(FrameDurationListener frameDurationListener) Add callback to receive FPS information.voidcaptureBlit(int captureWidth, int captureHeight) Record last rendering ("draw_()") result into current OpenGL framebuffer.static EffectPlayercreate(EffectPlayerConfiguration configuration) longdraw()Draw the current effect into the current OpenGL framebuffer.drawVideoFrame(FrameData inputFrameData, long timeNs, PixelFormat outputPixelFormat) Draw processed frame to image buffer.drawVideoFrameAllocated(FrameData inputFrameData, long timeNs, PixelFormat outputPixelFormat, Data allocatedBuffer) The same as *draw_video_frame* but accepts preallocated buffer to avoid recreation for every frame.longdrawWithExternalFrameData(FrameData frameData) Draw the current effect into the current OpenGL framebuffer.Get effect manager object Thread-safe.protected voidfinalize()Get current frame processor Thread-safe.static RenderBackendTypeGet interface to control user iterations.Thread-safe.voidTriggers record stop events in EP and Effect.voidonVideoRecordStart(boolean playAudioWhileRecording) Trigger record start events in EP and Effect.voidvoidMUST be called from the main(render) threadvoidprocessImage(FullImageData inputImage, PixelFormat outputPixelFormat) Process an image with current effect.byte[]processImageData(byte[] inputImage, int width, int height, CameraOrientation orientation, boolean isMirrored, PixelFormat inputPixelFormat, PixelFormat outputPixelFormat) Process image with current effect.processImageFrameData(FrameData inputFrameData, PixelFormat outputPixelFormat) Process an image with current effect.processVideoFrame(FullImageData inputImage, Integer recognizerIterations) Provide frame to evaluate video processing.processVideoFrameData(FrameData inputFrameData, Integer recognizerIterations) Provide frame data to evaluate video processing.voidpushFrame(FullImageData fullImage) Provides image to process and to play effect.voidpushFrameData(FrameData frameData) Provides FrameData to process and to play effect.voidpushFrameDataWithNumber(FrameData frameData, long frameNumber) Provides FrameData with frame number to process and to play effect.voidpushFrameWithNumber(FullImageData fullImage, long frameNumber) Provides image to process and to play effect.Receive the last rendered frame in binary form.voidremoveCameraPoiListener(CameraPoiListener cameraPoiListener) Remove callback to receive center of the face in frame relative to top-left Thread-safe.voidremoveEffectActivationCompletionListener(EffectActivationCompletionListener effectActivationCompletionListener) Remove callback to receive current effect activation notification from Effect Player.voidremoveEffectInfoListener(EffectInfoListener effectInfoListener) Remove callback to receive current effect info from Effect Player.voidremoveFaceNumberListener(FaceNumberListener faceNumberListener) Remove callback to receive faces count in frame.voidremoveFrameDataListener(FrameDataListener frameDataListener) Remove callback to receive frame data right after processing in recognizer.voidremoveFrameDurationListener(FrameDurationListener frameDurationListener) Remove callback to receive FPS information.voidsetExternalCameraTexture(int name, int width, int height) Set OpenGL name of input external texture.voidsetFrameProcessor(FrameProcessor processor) Set frame processor as current Thread-safe.voidsetMaxFaces(int maxFaces) Sets maximum allowed face results, if face tracking feature is present.voidsetRecognizerOfflineMode(boolean on) Force recognizer offline mode Thread-safe.voidsetRecognizerUseFutureFilter(boolean on) Set future frame filtrarion mode.voidsetRecognizerUseFutureInterpolate(boolean on) Set future frame interpolation mode.voidsetRecognizerUseNewFaceTracking(boolean on) Set new face tracking mode.static voidsetRenderBackend(RenderBackendType backendType) voidThread-safe.voidsetUseExtCamTex(boolean value) Use external texture as input source.voidstartVideoProcessing(long screenWidth, long screenHeight, CameraOrientation orientation, boolean resetEffect, boolean offlineMode) Initialize video processing.voidstopVideoProcessing(boolean resetEffect) Finish processing and return renderer to normal state.voidsurfaceChanged(int width, int height) Notify about rendering surface being resized.voidsurfaceCreated(int width, int height) Use to notify the EffectPlayer that the surface exists and effect can be played. 0, 0 for width and height are valid values.voidThis method should be called right before an active context will become invalid.voidwriteRecordedAudio(String filename, long lengthMs) Save recorded audio.
- 
Method Details- 
_djinni_private_destroypublic void _djinni_private_destroy()
- 
finalize
- 
addFrameDurationListenerDescription copied from interface:EffectPlayerAdd callback to receive FPS information. Thread-safe. May be called from any thread- Specified by:
- addFrameDurationListenerin interface- EffectPlayer
 
- 
removeFrameDurationListenerDescription copied from interface:EffectPlayerRemove callback to receive FPS information. Thread-safe. May be called from any thread- Specified by:
- removeFrameDurationListenerin interface- EffectPlayer
 
- 
addFaceNumberListenerDescription copied from interface:EffectPlayerAdd callback to receive faces count in frame. Thread-safe. May be called from any thread- Specified by:
- addFaceNumberListenerin interface- EffectPlayer
 
- 
removeFaceNumberListenerDescription copied from interface:EffectPlayerRemove callback to receive faces count in frame. Thread-safe. May be called from any thread- Specified by:
- removeFaceNumberListenerin interface- EffectPlayer
 
- 
addFrameDataListenerDescription copied from interface:EffectPlayerAdd callback to receive frame data right after processing in recognizer. Thread-safe. May be called from any thread- Specified by:
- addFrameDataListenerin interface- EffectPlayer
 
- 
removeFrameDataListenerDescription copied from interface:EffectPlayerRemove callback to receive frame data right after processing in recognizer. Thread-safe. May be called from any thread- Specified by:
- removeFrameDataListenerin interface- EffectPlayer
 
- 
addCameraPoiListenerDescription copied from interface:EffectPlayerAdd callback to receive center of the face in frame relative to top-left corner in [0, 1] space. Thread-safe. May be called from any thread- Specified by:
- addCameraPoiListenerin interface- EffectPlayer
 
- 
removeCameraPoiListenerDescription copied from interface:EffectPlayerRemove callback to receive center of the face in frame relative to top-left Thread-safe. May be called from any thread- Specified by:
- removeCameraPoiListenerin interface- EffectPlayer
 
- 
addEffectInfoListenerDescription copied from interface:EffectPlayerAdd callback to receive current effect info from Effect Player. Thread-safe. May be called from any thread- Specified by:
- addEffectInfoListenerin interface- EffectPlayer
 
- 
removeEffectInfoListenerDescription copied from interface:EffectPlayerRemove callback to receive current effect info from Effect Player. Thread-safe. May be called from any thread- Specified by:
- removeEffectInfoListenerin interface- EffectPlayer
 
- 
addEffectActivationCompletionListenerpublic void addEffectActivationCompletionListener(EffectActivationCompletionListener effectActivationCompletionListener) Description copied from interface:EffectPlayerAdd callback to receive current effect activation notification from Effect Player. Thread-safe. May be called from any thread- Specified by:
- addEffectActivationCompletionListenerin interface- EffectPlayer
 
- 
removeEffectActivationCompletionListenerpublic void removeEffectActivationCompletionListener(EffectActivationCompletionListener effectActivationCompletionListener) Description copied from interface:EffectPlayerRemove callback to receive current effect activation notification from Effect Player. Thread-safe. May be called from any thread- Specified by:
- removeEffectActivationCompletionListenerin interface- EffectPlayer
 
- 
setMaxFacespublic void setMaxFaces(int maxFaces) Description copied from interface:EffectPlayerSets maximum allowed face results, if face tracking feature is present. Thread-safe. May be called from any thread This option is relevant only for GLFX effects.- Specified by:
- setMaxFacesin interface- EffectPlayer
 
- 
setExternalCameraTexturepublic void setExternalCameraTexture(int name, int width, int height) Description copied from interface:EffectPlayerSet OpenGL name of input external texture. https://developer.android.com/reference/android/graphics/SurfaceTexture . MUST be called from the render thread- Specified by:
- setExternalCameraTexturein interface- EffectPlayer
- Parameters:
- name- Texture name
- width- Textute width
- height- Texture height
- See Also:
 
- 
setUseExtCamTexpublic void setUseExtCamTex(boolean value) Description copied from interface:EffectPlayerUse external texture as input source. MUST be called from the render thread- Specified by:
- setUseExtCamTexin interface- EffectPlayer
- See Also:
 
- 
surfaceCreatedpublic void surfaceCreated(int width, int height) Description copied from interface:EffectPlayerUse to notify the EffectPlayer that the surface exists and effect can be played. 0, 0 for width and height are valid values. MUST be called from the render thread- Specified by:
- surfaceCreatedin interface- EffectPlayer
 
- 
surfaceChangedpublic void surfaceChanged(int width, int height) Description copied from interface:EffectPlayerNotify about rendering surface being resized. MUST be called from the render thread- Specified by:
- surfaceChangedin interface- EffectPlayer
 
- 
surfaceDestroyedpublic void surfaceDestroyed()Description copied from interface:EffectPlayerThis method should be called right before an active context will become invalid. Switches playback state to inactive state. If it's not done an application will be crashed on next draw iteration. After losing the surface effect playback can't be resumed from last position. MUST be called from the render thread- Specified by:
- surfaceDestroyedin interface- EffectPlayer
 
- 
drawpublic long draw()Description copied from interface:EffectPlayerDraw the current effect into the current OpenGL framebuffer. Uses internal frame_data object obtained from latest push_frame recognition result. Return current frame number if drawing was performed and caller should swap buffers otherwise `DRAW_SKIPPED`(-1) MUST be called from the render thread- Specified by:
- drawin interface- EffectPlayer
 
- 
drawWithExternalFrameDataDescription copied from interface:EffectPlayerDraw the current effect into the current OpenGL framebuffer. Uses externally provided frameData object instead of internal one obtained from latest push_frame recognition result. Return frame number from provided frameData if drawing was performed and caller should swap buffers otherwise `DRAW_SKIPPED`(-1) MUST be called from the render thread- Specified by:
- drawWithExternalFrameDatain interface- EffectPlayer
 
- 
captureBlitpublic void captureBlit(int captureWidth, int captureHeight) Description copied from interface:EffectPlayerRecord last rendering ("draw_()") result into current OpenGL framebuffer. Content is cropped to maintain effect_size() aspect ratio MUST be called from the render thread- Specified by:
- captureBlitin interface- EffectPlayer
 
- 
readPixelsDescription copied from interface:EffectPlayerReceive the last rendered frame in binary form.- Specified by:
- readPixelsin interface- EffectPlayer
- Returns:
- 4-byte per pixel data, size is `fx_width * fx_height * 4` MUST be called from the render thread
 
- 
setRenderConsistencyModeDescription copied from interface:EffectPlayerThread-safe. May be called from any thread- Specified by:
- setRenderConsistencyModein interface- EffectPlayer
 
- 
processImageDescription copied from interface:EffectPlayerProcess an image with current effect. Must be called from the render thread.- Specified by:
- processImagein interface- EffectPlayer
- Parameters:
- inputImage- to avoid conversion recommended to use YUV image
- outputPixelFormat- to avoid conversion recommended to use RGBA
 
- 
processImageFrameDataDescription copied from interface:EffectPlayerProcess an image with current effect. Prefer this method over `processImage` when you have extra input data besides just an input image. Must be called from render thread.- Specified by:
- processImageFrameDatain interface- EffectPlayer
- Parameters:
- inputFrameData- `FrameData` with an image
- outputPixelFormat- to avoid conversion recommended to use RGBA
 
- 
processImageDatapublic byte[] processImageData(byte[] inputImage, int width, int height, CameraOrientation orientation, boolean isMirrored, PixelFormat inputPixelFormat, PixelFormat outputPixelFormat) Description copied from interface:EffectPlayerProcess image with current effect. Must be called from render thread. NOTE: inputImage have copy overhead, preferable to use process_image method MUST be called from the render thread- Specified by:
- processImageDatain interface- EffectPlayer
- Parameters:
- inputImage- input image with `width * height * 4` size
- outputPixelFormat- to avoid conversion recommended to use RGBA
 
- 
pushFrameDescription copied from interface:EffectPlayerProvides image to process and to play effect. Thread-safe. May be called from any thread- Specified by:
- pushFramein interface- EffectPlayer
 
- 
pushFrameWithNumberDescription copied from interface:EffectPlayerProvides image to process and to play effect. Thread-safe. May be called from any thread- Specified by:
- pushFrameWithNumberin interface- EffectPlayer
 
- 
pushFrameDataDescription copied from interface:EffectPlayerProvides FrameData to process and to play effect. Must contain full image. Thread-safe. May be called from any thread- Specified by:
- pushFrameDatain interface- EffectPlayer
 
- 
pushFrameDataWithNumberDescription copied from interface:EffectPlayerProvides FrameData with frame number to process and to play effect. Must contain full image. Thread-safe. May be called from any thread- Specified by:
- pushFrameDataWithNumberin interface- EffectPlayer
 
- 
playbackPlaypublic void playbackPlay()Description copied from interface:EffectPlayerMUST be called from the main(render) thread- Specified by:
- playbackPlayin interface- EffectPlayer
 
- 
playbackPausepublic void playbackPause()- Specified by:
- playbackPausein interface- EffectPlayer
 
- 
playbackStoppublic void playbackStop()- Specified by:
- playbackStopin interface- EffectPlayer
 
- 
getPlaybackStateDescription copied from interface:EffectPlayerThread-safe. May be called from any thread- Specified by:
- getPlaybackStatein interface- EffectPlayer
 
- 
getInputManagerDescription copied from interface:EffectPlayerGet interface to control user iterations. This events will be passed to effect. Thread-safe. May be called from any thread- Specified by:
- getInputManagerin interface- EffectPlayer
 
- 
startVideoProcessingpublic void startVideoProcessing(long screenWidth, long screenHeight, CameraOrientation orientation, boolean resetEffect, boolean offlineMode) Description copied from interface:EffectPlayerInitialize video processing. To provide frames use *process_video_frame* methods. Effect audio is recorded as well and can be accessed using *process_recorded_audio* and *write_recorded_audio*. *push_frame* should not be called during processing. MUST be called from the render thread- Specified by:
- startVideoProcessingin interface- EffectPlayer
 
- 
stopVideoProcessingpublic void stopVideoProcessing(boolean resetEffect) Description copied from interface:EffectPlayerFinish processing and return renderer to normal state. MUST be called from the render thread- Specified by:
- stopVideoProcessingin interface- EffectPlayer
 
- 
processVideoFrameDataDescription copied from interface:EffectPlayerProvide frame data to evaluate video processing. MUST be called from the render thread- Specified by:
- processVideoFrameDatain interface- EffectPlayer
- Parameters:
- inputFrameData- Frame Data to process.
- recognizerIterations- Number of processing iterations. Higher number means higher processing quality, but lower speed. Must be greater than 1. Pass null value for default number.
- Returns:
- Frame data with frame processing results.
 
- 
processVideoFrameDescription copied from interface:EffectPlayerProvide frame to evaluate video processing. MUST be called from the render thread- Specified by:
- processVideoFramein interface- EffectPlayer
- Parameters:
- inputImage- Image to process.
- recognizerIterations- Number of processing iterations. Higher number means higher processing quality, but lower speed. Must be greater than 1. Pass null value for default number.
- Returns:
- Frame data with frame processing results.
 
- 
drawVideoFrameDescription copied from interface:EffectPlayerDraw processed frame to image buffer. MUST be called from the render thread- Specified by:
- drawVideoFramein interface- EffectPlayer
- Parameters:
- inputFrameData- FrameData to draw.
- timeNs- Frame position on timeline.
- outputPixelFormat- Output image format.
- Returns:
- Buffer with processed image in selected format.
 
- 
drawVideoFrameAllocatedpublic Data drawVideoFrameAllocated(FrameData inputFrameData, long timeNs, PixelFormat outputPixelFormat, Data allocatedBuffer) Description copied from interface:EffectPlayerThe same as *draw_video_frame* but accepts preallocated buffer to avoid recreation for every frame. MUST be called from the render thread- Specified by:
- drawVideoFrameAllocatedin interface- EffectPlayer
 
- 
writeRecordedAudioDescription copied from interface:EffectPlayerSave recorded audio. Not thread-safe but can be called from any thread.- Specified by:
- writeRecordedAudioin interface- EffectPlayer
- Parameters:
- filename- ".wav" extension must be used.
- lengthMs- Track length. Set to '0' to use full duration.
 
- 
onVideoRecordStartpublic void onVideoRecordStart(boolean playAudioWhileRecording) Description copied from interface:EffectPlayerTrigger record start events in EP and Effect. Records all sounds during recording to be replayed by `processRecordedAudio`. If @param playAudioWhileRecording is true, the audio will continue to play. Otherwise, the audio will be muted. Thread-safe. May be called from any thread- Specified by:
- onVideoRecordStartin interface- EffectPlayer
 
- 
onVideoRecordEndpublic void onVideoRecordEnd()Description copied from interface:EffectPlayerTriggers record stop events in EP and Effect. Thread-safe. May be called from any thread- Specified by:
- onVideoRecordEndin interface- EffectPlayer
 
- 
effectManagerDescription copied from interface:EffectPlayerGet effect manager object Thread-safe. May be called from any thread- Specified by:
- effectManagerin interface- EffectPlayer
 
- 
setRecognizerOfflineModepublic void setRecognizerOfflineMode(boolean on) Description copied from interface:EffectPlayerForce recognizer offline mode Thread-safe. May be called from any thread- Specified by:
- setRecognizerOfflineModein interface- EffectPlayer
 
- 
setRecognizerUseFutureFilterpublic void setRecognizerUseFutureFilter(boolean on) Description copied from interface:EffectPlayerSet future frame filtrarion mode. Produce smoother recognition result (anti jitter), however adds inconsistency in push'ed/draw'ed frames (one frame lag) Example: push frame 1 - draw frame 1, push frame 2 - draw frame 1, push frame 3 - draw frame 2, ...- Specified by:
- setRecognizerUseFutureFilterin interface- EffectPlayer
 
- 
setRecognizerUseFutureInterpolatepublic void setRecognizerUseFutureInterpolate(boolean on) Description copied from interface:EffectPlayerSet future frame interpolation mode. Produce faster recognition result (skip even frames), however adds inconsistency in push'ed/pop'ed frames (one frame lag) Example: push frame 1 - pop frame 1, push frame 2 - pop frame 1, push frame 3 - pop frame 2, ...- Specified by:
- setRecognizerUseFutureInterpolatein interface- EffectPlayer
 
- 
setRecognizerUseNewFaceTrackingpublic void setRecognizerUseNewFaceTracking(boolean on) Description copied from interface:EffectPlayerSet new face tracking mode.- Specified by:
- setRecognizerUseNewFaceTrackingin interface- EffectPlayer
 
- 
setFrameProcessorDescription copied from interface:EffectPlayerSet frame processor as current Thread-safe. May be called from any thread- Specified by:
- setFrameProcessorin interface- EffectPlayer
 
- 
frameProcessorDescription copied from interface:EffectPlayerGet current frame processor Thread-safe. May be called from any thread- Specified by:
- frameProcessorin interface- EffectPlayer
 
- 
create
- 
setRenderBackend
- 
getCurrentRenderBackendType
 
-