Class JavaCVMediaBackend
java.lang.Object
org.episteme.core.media.backends.JavaCVMediaBackend
- All Implemented Interfaces:
AudioAlgorithmProvider<AudioBuffer>, AudioBackend, VideoAlgorithmProvider, VideoBackend, VisionAlgorithmProvider<BufferedImage>, VisionBackend, AlgorithmProvider, Backend, ComputeBackend, CPUBackend
@AutoService({Backend.class,ComputeBackend.class,VideoBackend.class,AudioBackend.class,VisionBackend.class,CPUBackend.class})
public class JavaCVMediaBackend
extends Object
implements VideoBackend, AudioBackend, VisionBackend, CPUBackend
JavaCV (FFmpeg) Media Backend for multi-purpose usage (audio/video/vision).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionapply(BufferedImage image, ImageOp<BufferedImage> op) Applies a generic operation to an image.Creates and returns the backend instance (or returns self if it is the backend).Creates an execution context for running operations.createImage(Object data, int width, int height) Creates a new image from the given data.Returns the type of hardware accelerator used by this backend.Returns the unique category of the algorithm.Returns the friendly name of this backend instance.Returns a description of the backend.doublegetId()Returns the unique identifier for this backend (e.g., "javafx", "jmol", "cuda").getName()Returns the display name for UI presentation.intReturns the priority for auto-selection (higher = preferred).float[]Returns the current frequency spectrum.doublegetTime()getType()Returns the backend type category (e.g., "plotting", "molecular", "tensor", "math").<T> TGrabs the current frame as an image.booleanChecks if this backend is currently available (libraries loaded, etc.).voidLoads a video resource.voidpause()voidplay()voidshutdown()Called when the application is shutting down or the backend is being replaced.voidstop()Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AlgorithmProvider
description, getMetadata, scoreMethods inherited from interface AudioBackend
apply, createAudioMethods inherited from interface Backend
getAlgorithmProviders, getStatusMessage, isExplicitlyDisabledMethods inherited from interface CPUBackend
supportsComplexNumbers, supportsFloatingPoint, supportsParallelOpsMethods inherited from interface VideoAlgorithmProvider
detectMotion, detectTransitions
-
Constructor Details
-
JavaCVMediaBackend
public JavaCVMediaBackend()
-
-
Method Details
-
getAlgorithmType
Description copied from interface:AlgorithmProviderReturns the unique category of the algorithm.- Specified by:
getAlgorithmTypein interfaceAlgorithmProvider- Specified by:
getAlgorithmTypein interfaceAudioAlgorithmProvider<AudioBuffer>- Specified by:
getAlgorithmTypein interfaceVideoAlgorithmProvider- Specified by:
getAlgorithmTypein interfaceVisionAlgorithmProvider<BufferedImage>
-
getAcceleratorType
Description copied from interface:ComputeBackendReturns the type of hardware accelerator used by this backend.- Specified by:
getAcceleratorTypein interfaceAudioBackend- Specified by:
getAcceleratorTypein interfaceComputeBackend- Specified by:
getAcceleratorTypein interfaceCPUBackend- Specified by:
getAcceleratorTypein interfaceVideoBackend- Specified by:
getAcceleratorTypein interfaceVisionBackend- Returns:
- the accelerator type
-
createContext
Description copied from interface:ComputeBackendCreates an execution context for running operations.The context should be used within a try-with-resources block to ensure proper cleanup of resources.
- Specified by:
createContextin interfaceAudioBackend- Specified by:
createContextin interfaceComputeBackend- Specified by:
createContextin interfaceVideoBackend- Specified by:
createContextin interfaceVisionBackend- Returns:
- new execution context
-
getType
Description copied from interface:BackendReturns the backend type category (e.g., "plotting", "molecular", "tensor", "math").- Specified by:
getTypein interfaceAudioBackend- Specified by:
getTypein interfaceBackend- Specified by:
getTypein interfaceComputeBackend- Specified by:
getTypein interfaceCPUBackend- Specified by:
getTypein interfaceVideoBackend- Specified by:
getTypein interfaceVisionBackend
-
getId
Description copied from interface:BackendReturns the unique identifier for this backend (e.g., "javafx", "jmol", "cuda").- Specified by:
getIdin interfaceAudioBackend- Specified by:
getIdin interfaceBackend- Specified by:
getIdin interfaceComputeBackend- Specified by:
getIdin interfaceVideoBackend- Specified by:
getIdin interfaceVisionBackend
-
getName
Description copied from interface:BackendReturns the display name for UI presentation.- Specified by:
getNamein interfaceAlgorithmProvider- Specified by:
getNamein interfaceAudioAlgorithmProvider<AudioBuffer>- Specified by:
getNamein interfaceAudioBackend- Specified by:
getNamein interfaceBackend- Specified by:
getNamein interfaceVideoAlgorithmProvider- Specified by:
getNamein interfaceVideoBackend- Specified by:
getNamein interfaceVisionAlgorithmProvider<BufferedImage>- Specified by:
getNamein interfaceVisionBackend
-
getDescription
Description copied from interface:BackendReturns a description of the backend.- Specified by:
getDescriptionin interfaceAudioBackend- Specified by:
getDescriptionin interfaceBackend- Specified by:
getDescriptionin interfaceComputeBackend- Specified by:
getDescriptionin interfaceVideoBackend- Specified by:
getDescriptionin interfaceVisionBackend
-
isAvailable
public boolean isAvailable()Description copied from interface:BackendChecks if this backend is currently available (libraries loaded, etc.).Default implementation checks
Backend.isExplicitlyDisabled()and returns false if it is.- Specified by:
isAvailablein interfaceAlgorithmProvider- Specified by:
isAvailablein interfaceAudioBackend- Specified by:
isAvailablein interfaceBackend- Specified by:
isAvailablein interfaceVideoBackend- Specified by:
isAvailablein interfaceVisionBackend
-
getPriority
public int getPriority()Description copied from interface:BackendReturns the priority for auto-selection (higher = preferred). Used when multiple backends are available.- Specified by:
getPriorityin interfaceAlgorithmProvider- Specified by:
getPriorityin interfaceAudioBackend- Specified by:
getPriorityin interfaceBackend- Specified by:
getPriorityin interfaceVideoBackend- Specified by:
getPriorityin interfaceVisionBackend
-
createBackend
Description copied from interface:BackendCreates and returns the backend instance (or returns self if it is the backend).- Specified by:
createBackendin interfaceAudioBackend- Specified by:
createBackendin interfaceBackend- Specified by:
createBackendin interfaceComputeBackend- Specified by:
createBackendin interfaceVideoBackend- Specified by:
createBackendin interfaceVisionBackend- Returns:
- The backend implementation object
-
load
Description copied from interface:VideoBackendLoads a video resource.- Specified by:
loadin interfaceAudioBackend- Specified by:
loadin interfaceVideoBackend- Parameters:
path- File path or URL- Throws:
Exception
-
play
public void play()- Specified by:
playin interfaceAudioBackend- Specified by:
playin interfaceVideoBackend
-
pause
public void pause()- Specified by:
pausein interfaceAudioBackend- Specified by:
pausein interfaceVideoBackend
-
stop
public void stop()- Specified by:
stopin interfaceAudioBackend- Specified by:
stopin interfaceVideoBackend
-
getTime
public double getTime()- Specified by:
getTimein interfaceAudioBackend- Specified by:
getTimein interfaceVideoBackend
-
getDuration
public double getDuration()- Specified by:
getDurationin interfaceAudioBackend- Specified by:
getDurationin interfaceVideoBackend
-
getSpectrum
public float[] getSpectrum()Description copied from interface:AudioBackendReturns the current frequency spectrum.- Specified by:
getSpectrumin interfaceAudioBackend- Returns:
- Array of magnitudes (usually 128 or 256 bands)
-
grabFrame
public <T> T grabFrame()Description copied from interface:VideoBackendGrabs the current frame as an image.- Specified by:
grabFramein interfaceVideoBackend- Type Parameters:
T- the image type- Returns:
- the current frame
-
apply
Description copied from interface:VisionAlgorithmProviderApplies a generic operation to an image.- Specified by:
applyin interfaceVisionAlgorithmProvider<BufferedImage>
-
createImage
Description copied from interface:VisionAlgorithmProviderCreates a new image from the given data.- Specified by:
createImagein interfaceVisionAlgorithmProvider<BufferedImage>
-
getBackendName
Description copied from interface:VideoBackendReturns the friendly name of this backend instance.- Specified by:
getBackendNamein interfaceAudioBackend- Specified by:
getBackendNamein interfaceVideoBackend- Specified by:
getBackendNamein interfaceVisionBackend
-
shutdown
public void shutdown()Description copied from interface:BackendCalled when the application is shutting down or the backend is being replaced. Use this to release hardware resources, close file handles, or stop background threads.- Specified by:
shutdownin interfaceAlgorithmProvider- Specified by:
shutdownin interfaceAudioBackend- Specified by:
shutdownin interfaceBackend- Specified by:
shutdownin interfaceVideoBackend- Specified by:
shutdownin interfaceVisionBackend
-