JUCE v8.0.9
JUCE API
 
Loading...
Searching...
No Matches
CameraDevice::Pimpl Struct Reference

#include <juce_CameraDevice_windows.h>

Inheritance diagram for CameraDevice::Pimpl:
Collaboration diagram for CameraDevice::Pimpl:

Classes

struct  CaptureLayerAngleTrait
 
class  CaptureSession
 
struct  CaptureSessionMode
 
struct  CaptureSessionModeBase
 
struct  CaptureSessionPreviewMode
 
struct  CaptureSessionVideoRecordingMode
 
struct  DelegateClass
 
class  DeviceOrientationChangeListener
 
struct  GrabberCallback
 
struct  ImageOutputBase
 
class  ImageReader
 
class  MediaRecorder
 
class  PreviewDisplay
 
struct  PreviewLayerAngleTrait
 
class  ScopedCameraDevice
 
class  StreamConfigurationMap
 

Public Types

using InternalOpenCameraResultCallback = std::function< void(const String &, const String &)>
 
using InternalOpenCameraResultCallback = std::function< void(const String &, const String &)>
 

Public Member Functions

 Pimpl (CameraDevice &ownerToUse, const String &, int index, int minWidth, int minHeight, int maxWidth, int maxHeight, bool)
 
 Pimpl (CameraDevice &ownerToUse, const String &cameraIdToUse, int, int minWidthToUse, int minHeightToUse, int maxWidthToUse, int maxHeightToUse, bool)
 
 Pimpl (CameraDevice &ownerToUse, const String &cameraIdToUse, int, int, int, int, int, bool useHighQuality)
 
 Pimpl (CameraDevice &ownerToUse, const String &deviceNameToUse, int, int, int, int, int, bool useHighQuality)
 
 ~Pimpl ()
 
 ~Pimpl ()
 
 ~Pimpl () override
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addUser ()
 
void callListeners (const Image &image)
 
void continueOpenRequest (bool granted)
 
bool createFileCaptureFilter (const File &file, int quality)
 
NSView * createVideoCapturePreview ()
 
void drawCurrentImage (Graphics &g, Rectangle< int > area)
 
String getCameraId () const noexcept
 
String getCameraId () const noexcept
 
AVCaptureSession * getCaptureSession ()
 
Time getTimeOfFirstRecordedFrame () const
 
Time getTimeOfFirstRecordedFrame () const
 
Time getTimeOfFirstRecordedFrame () const
 
Time getTimeOfFirstRecordedFrame () const
 
void handleFrame (double, BYTE *buffer, long)
 
void notifyPictureTakenIfNeeded (const Image &image)
 
void open (InternalOpenCameraResultCallback cameraOpenCallbackToUse)
 
void open (InternalOpenCameraResultCallback cameraOpenCallbackToUse)
 
bool openedOk () const noexcept
 
bool openedOk () const noexcept
 
bool openedOk () const noexcept
 
bool openedOk () const noexcept
 
void removeFileCaptureFilter ()
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeUser ()
 
void startRecordingToFile (const File &file, int quality)
 
void startRecordingToFile (const File &file, int)
 
void startRecordingToFile (const File &file, int)
 
void startRecordingToFile (const File &file, int)
 
void startSession ()
 
void stopRecording ()
 
void stopRecording ()
 
void stopRecording ()
 
void stopRecording ()
 
void takeStillPicture (std::function< void(const Image &)> pictureTakenCallbackToUse)
 
void takeStillPicture (std::function< void(const Image &)> pictureTakenCallbackToUse)
 
void takeStillPicture (std::function< void(const Image &)> pictureTakenCallbackToUse)
 
void takeStillPicture (std::function< void(const Image &)> pictureTakenCallbackToUse)
 

Static Public Member Functions

static void applyDeviceOrientation (AVCaptureDevice *, AVCaptureVideoPreviewLayer *, AVCaptureConnection *outputConnection)
 
static ComSmartPtr< IBaseFilter > enumerateCameras (StringArray *names, const int deviceIndexToOpen)
 
static StringArray getAvailableDevices ()
 
static StringArray getAvailableDevices ()
 
static StringArray getAvailableDevices ()
 
static StringArray getAvailableDevices ()
 
static NSArray * getCaptureDevices ()
 

Public Attributes

int activeUsers = 0
 
ComSmartPtr< IBaseFilter > asfWriter
 
ComSmartPtr< GrabberCallbackcallback
 
ComSmartPtr< ICaptureGraphBuilder2 > captureGraphBuilder
 
ComSmartPtr< IBaseFilter > filter
 
Time firstRecordedTime
 
ComSmartPtr< IGraphBuilder > graphBuilder
 
DWORD graphRegistrationID
 
int height = 0
 
Array< int > heights
 
bool isRecording = false
 
ComSmartPtr< IMediaControl > mediaControl
 
bool openedSuccessfully = false
 
CriticalSection pictureTakenCallbackLock
 
int previewMaxFPS = 60
 
bool recordNextFrameTime = false
 
ComSmartPtr< ISampleGrabber > sampleGrabber
 
ComSmartPtr< IBaseFilter > smartTee
 
ComSmartPtr< IPin > smartTeeCaptureOutputPin
 
ComSmartPtr< IPin > smartTeePreviewOutputPin
 
Array< ViewerComponent * > viewerComps
 
int width = 0
 
Array< int > widths
 

Private Types

enum  {
  ERROR_CAMERA_IN_USE = 1 ,
  ERROR_MAX_CAMERAS_IN_USE = 2 ,
  ERROR_CAMERA_DISABLED = 3 ,
  ERROR_CAMERA_DEVICE = 4 ,
  ERROR_CAMERA_SERVICE = 5
}
 

Private Member Functions

bool addGraphToRot ()
 
void callListeners (const Image &image)
 
void callListeners (const Image &image)
 
void cameraDeviceError (const String &error)
 
void cameraOpenFinished (const String &error)
 
void cameraSessionRuntimeError (const String &error)
 
void cameraSessionStarted ()
 
bool connectFilters (IBaseFilter *const first, IBaseFilter *const second) const
 
void disconnectAnyViewers ()
 
int getAutoFocusModeToUse () const
 
int getCameraCharacteristicsIntegerKeyValue (jfieldID key) const
 
int getCameraLensFacing () const
 
int getCameraSensorOrientation () const
 
Array< int > getSupportedAutoFocusModes () const
 
void getVideoSizes (IAMStreamConfig *const streamConfig)
 
void invokeCameraOpenCallback (const String &error)
 
void notifyPictureTaken (const Image &image)
 
void notifyPictureTaken (const Image &image)
 
void onActivityPaused (jobject) override
 
void onActivityResumed (jobject) override
 
void removeGraphFromRot ()
 
bool selectVideoSize (IAMStreamConfig *const streamConfig, const int minWidth, const int minHeight, const int maxWidth, const int maxHeight)
 
void setupStillImageSize ()
 
void startBackgroundThread ()
 
void startPreviewMode (ImageReader &ir)
 
void startVideoRecordingMode (MediaRecorder &mr)
 
void stopBackgroundThread ()
 
void triggerStillPictureCapture ()
 
void triggerStillPictureCapture ()
 

Static Private Member Functions

static String cameraErrorCodeToString (int errorCode)
 
static Rectangle< int > chooseBestSize (int minWidth, int minHeight, int maxWidth, int maxHeight, Array< Rectangle< int > > supportedSizes)
 
static String cmTimeToString (CMTime time)
 
static void deleteMediaType (AM_MEDIA_TYPE *const pmt)
 
static String frameRateRangeToString (AVFrameRateRange *range)
 
static NSArray< AVCaptureDevice * > * getDevices ()
 
static String getHighResStillImgDimensionsString (CMVideoDimensions d)
 
static bool getPin (IBaseFilter *filter, const PIN_DIRECTION wantedDirection, ComSmartPtr< IPin > &result, const char *pinName=nullptr)
 
static LocalRef< jobjectinitialiseCameraCharacteristics (const GlobalRef &cameraManager, const String &cameraId)
 
static LocalRef< jobjectinitialiseCameraManager ()
 
static Array< int > jintArrayToJuceArray (const LocalRef< jintArray > &jArray)
 
static void printDebugCameraFormatInfo (AVCaptureDeviceFormat *format)
 
static void printDebugCameraInfo (AVCaptureDevice *device)
 
static void printDebugCameraInfo (const LocalRef< jobject > &cameraManagerToUse, const String &cameraId)
 
static void printPrimitiveArrayElements (const LocalRef< jobject > &keyValue, const String &keyName, const String &keyValueString)
 
static void printRangeArrayElements (const LocalRef< jobject > &rangeArray, const String &keyName)
 

Private Attributes

Image activeImage
 
bool appWasPaused = false
 
std::optional< ActivityLifecycleCallbackForwarder > callbackForwarder
 
GlobalRef cameraCharacteristics
 
String cameraId
 
GlobalRef cameraManager
 
InternalOpenCameraResultCallback cameraOpenCallback
 
CaptureSession captureSession
 
std::unique_ptr< CaptureSessionModeBasecurrentCaptureSessionMode
 
DeviceOrientationChangeListener deviceOrientationChangeListener
 
Time firstRecordedFrameTimeMs
 
GlobalRef handler
 
GlobalRef handlerThread
 
std::unique_ptr< ImageReaderimageReader
 
CriticalSection imageSwapLock
 
CriticalSection listenerLock
 
ListenerList< Listener > listeners
 
int maxHeight
 
int maxWidth
 
std::unique_ptr< MediaRecordermediaRecorder
 
int minHeight
 
int minWidth
 
bool notifiedOfCameraOpening = false
 
CameraDevice & owner
 
std::function< void(const Image &)> pictureTakenCallback
 
PreviewDisplay previewDisplay
 
std::unique_ptr< ScopedCameraDevicescopedCameraDevice
 
StreamConfigurationMap streamConfigurationMap
 

Friends

struct CameraDevice::ViewerComponent
 

Member Typedef Documentation

◆ InternalOpenCameraResultCallback [1/2]

using CameraDevice::Pimpl::InternalOpenCameraResultCallback = std::function<void (const String& , const String& )>

◆ InternalOpenCameraResultCallback [2/2]

using CameraDevice::Pimpl::InternalOpenCameraResultCallback = std::function<void (const String& , const String& )>

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
ERROR_CAMERA_IN_USE 
ERROR_MAX_CAMERAS_IN_USE 
ERROR_CAMERA_DISABLED 
ERROR_CAMERA_DEVICE 
ERROR_CAMERA_SERVICE 

Constructor & Destructor Documentation

◆ Pimpl() [1/4]

CameraDevice::Pimpl::Pimpl ( CameraDevice &  ownerToUse,
const String &  cameraIdToUse,
int  ,
int  minWidthToUse,
int  minHeightToUse,
int  maxWidthToUse,
int  maxHeightToUse,
bool   
)
inline

◆ ~Pimpl() [1/3]

CameraDevice::Pimpl::~Pimpl ( )
inlineoverride

References callbackForwarder.

◆ Pimpl() [2/4]

CameraDevice::Pimpl::Pimpl ( CameraDevice &  ownerToUse,
const String &  cameraIdToUse,
int  ,
int  ,
int  ,
int  ,
int  ,
bool  useHighQuality 
)
inline

◆ Pimpl() [3/4]

CameraDevice::Pimpl::Pimpl ( CameraDevice &  ownerToUse,
const String &  deviceNameToUse,
int  ,
int  ,
int  ,
int  ,
int  ,
bool  useHighQuality 
)
inline

◆ ~Pimpl() [2/3]

CameraDevice::Pimpl::~Pimpl ( )
inline

◆ Pimpl() [4/4]

◆ ~Pimpl() [3/3]

Member Function Documentation

◆ addGraphToRot()

bool CameraDevice::Pimpl::addGraphToRot ( )
inlineprivate

References graphBuilder, and graphRegistrationID.

Referenced by Pimpl().

◆ addListener() [1/4]

void CameraDevice::Pimpl::addListener ( CameraDevice::Listener *  listenerToAdd)
inline

◆ addListener() [2/4]

void CameraDevice::Pimpl::addListener ( CameraDevice::Listener *  listenerToAdd)
inline

◆ addListener() [3/4]

void CameraDevice::Pimpl::addListener ( CameraDevice::Listener *  listenerToAdd)
inline

References listenerLock, and listeners.

◆ addListener() [4/4]

void CameraDevice::Pimpl::addListener ( CameraDevice::Listener *  listenerToAdd)
inline

References addUser(), listenerLock, and listeners.

◆ addUser()

◆ applyDeviceOrientation()

static void CameraDevice::Pimpl::applyDeviceOrientation ( AVCaptureDevice *  ,
AVCaptureVideoPreviewLayer *  ,
AVCaptureConnection *  outputConnection 
)
inlinestatic

◆ callListeners() [1/3]

void CameraDevice::Pimpl::callListeners ( const Image &  image)
inlineprivate

◆ callListeners() [2/3]

void CameraDevice::Pimpl::callListeners ( const Image &  image)
inlineprivate

◆ callListeners() [3/3]

void CameraDevice::Pimpl::callListeners ( const Image &  image)
inline

References listenerLock, and listeners.

◆ cameraDeviceError()

void CameraDevice::Pimpl::cameraDeviceError ( const String &  error)
inlineprivate

◆ cameraErrorCodeToString()

static String CameraDevice::Pimpl::cameraErrorCodeToString ( int  errorCode)
inlinestaticprivate

◆ cameraOpenFinished()

void CameraDevice::Pimpl::cameraOpenFinished ( const String &  error)
inlineprivate

◆ cameraSessionRuntimeError()

void CameraDevice::Pimpl::cameraSessionRuntimeError ( const String &  error)
inlineprivate

◆ cameraSessionStarted()

void CameraDevice::Pimpl::cameraSessionStarted ( )
inlineprivate

◆ chooseBestSize()

static Rectangle< int > CameraDevice::Pimpl::chooseBestSize ( int  minWidth,
int  minHeight,
int  maxWidth,
int  maxHeight,
Array< Rectangle< int > >  supportedSizes 
)
inlinestaticprivate

◆ cmTimeToString()

static String CameraDevice::Pimpl::cmTimeToString ( CMTime  time)
inlinestaticprivate

◆ connectFilters()

bool CameraDevice::Pimpl::connectFilters ( IBaseFilter *const  first,
IBaseFilter *const  second 
) const
inlineprivate

References getPin(), and graphBuilder.

Referenced by Pimpl().

◆ continueOpenRequest()

void CameraDevice::Pimpl::continueOpenRequest ( bool  granted)
inline

◆ createFileCaptureFilter()

bool CameraDevice::Pimpl::createFileCaptureFilter ( const File &  file,
int  quality 
)
inline

◆ createVideoCapturePreview()

NSView * CameraDevice::Pimpl::createVideoCapturePreview ( )
inline

◆ deleteMediaType()

static void CameraDevice::Pimpl::deleteMediaType ( AM_MEDIA_TYPE *const  pmt)
inlinestaticprivate

Referenced by getVideoSizes(), and selectVideoSize().

◆ disconnectAnyViewers()

void CameraDevice::Pimpl::disconnectAnyViewers ( )
private

References viewerComps.

Referenced by ~Pimpl().

◆ drawCurrentImage()

void CameraDevice::Pimpl::drawCurrentImage ( Graphics &  g,
Rectangle< int >  area 
)
inline

◆ enumerateCameras()

static ComSmartPtr< IBaseFilter > CameraDevice::Pimpl::enumerateCameras ( StringArray *  names,
const int  deviceIndexToOpen 
)
inlinestatic

◆ frameRateRangeToString()

static String CameraDevice::Pimpl::frameRateRangeToString ( AVFrameRateRange *  range)
inlinestaticprivate

References cmTimeToString().

Referenced by printDebugCameraFormatInfo().

◆ getAutoFocusModeToUse()

int CameraDevice::Pimpl::getAutoFocusModeToUse ( ) const
inlineprivate

◆ getAvailableDevices() [1/4]

static StringArray CameraDevice::Pimpl::getAvailableDevices ( )
inlinestatic

◆ getAvailableDevices() [2/4]

static StringArray CameraDevice::Pimpl::getAvailableDevices ( )
inlinestatic

◆ getAvailableDevices() [3/4]

static StringArray CameraDevice::Pimpl::getAvailableDevices ( )
inlinestatic

References getCaptureDevices().

◆ getAvailableDevices() [4/4]

static StringArray CameraDevice::Pimpl::getAvailableDevices ( )
inlinestatic

References enumerateCameras().

◆ getCameraCharacteristicsIntegerKeyValue()

int CameraDevice::Pimpl::getCameraCharacteristicsIntegerKeyValue ( jfieldID  key) const
inlineprivate

◆ getCameraId() [1/2]

String CameraDevice::Pimpl::getCameraId ( ) const
inlinenoexcept

References cameraId.

◆ getCameraId() [2/2]

String CameraDevice::Pimpl::getCameraId ( ) const
inlinenoexcept

References cameraId.

◆ getCameraLensFacing()

int CameraDevice::Pimpl::getCameraLensFacing ( ) const
inlineprivate

◆ getCameraSensorOrientation()

int CameraDevice::Pimpl::getCameraSensorOrientation ( ) const
inlineprivate

◆ getCaptureDevices()

static NSArray * CameraDevice::Pimpl::getCaptureDevices ( )
inlinestatic

◆ getCaptureSession()

AVCaptureSession * CameraDevice::Pimpl::getCaptureSession ( )
inline

◆ getDevices()

static NSArray< AVCaptureDevice * > * CameraDevice::Pimpl::getDevices ( )
inlinestaticprivate

Referenced by getAvailableDevices().

◆ getHighResStillImgDimensionsString()

static String CameraDevice::Pimpl::getHighResStillImgDimensionsString ( CMVideoDimensions  d)
inlinestaticprivate

◆ getPin()

static bool CameraDevice::Pimpl::getPin ( IBaseFilter *  filter,
const PIN_DIRECTION  wantedDirection,
ComSmartPtr< IPin > &  result,
const char *  pinName = nullptr 
)
inlinestaticprivate

◆ getSupportedAutoFocusModes()

Array< int > CameraDevice::Pimpl::getSupportedAutoFocusModes ( ) const
inlineprivate

◆ getTimeOfFirstRecordedFrame() [1/4]

Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame ( ) const
inline

◆ getTimeOfFirstRecordedFrame() [2/4]

Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame ( ) const
inline

References captureSession.

◆ getTimeOfFirstRecordedFrame() [3/4]

Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame ( ) const
inline

◆ getTimeOfFirstRecordedFrame() [4/4]

Time CameraDevice::Pimpl::getTimeOfFirstRecordedFrame ( ) const
inline

References firstRecordedTime.

◆ getVideoSizes()

void CameraDevice::Pimpl::getVideoSizes ( IAMStreamConfig *const  streamConfig)
inlineprivate

References deleteMediaType(), heights, and widths.

Referenced by Pimpl().

◆ handleFrame()

void CameraDevice::Pimpl::handleFrame ( double  ,
BYTE *  buffer,
long   
)
inline

◆ initialiseCameraCharacteristics()

static LocalRef< jobject > CameraDevice::Pimpl::initialiseCameraCharacteristics ( const GlobalRef &  cameraManager,
const String &  cameraId 
)
inlinestaticprivate

References cameraId, and cameraManager.

◆ initialiseCameraManager()

static LocalRef< jobject > CameraDevice::Pimpl::initialiseCameraManager ( )
inlinestaticprivate

Referenced by getAvailableDevices().

◆ invokeCameraOpenCallback()

void CameraDevice::Pimpl::invokeCameraOpenCallback ( const String &  error)
inlineprivate

◆ jintArrayToJuceArray()

static Array< int > CameraDevice::Pimpl::jintArrayToJuceArray ( const LocalRef< jintArray > &  jArray)
inlinestaticprivate

◆ notifyPictureTaken() [1/2]

void CameraDevice::Pimpl::notifyPictureTaken ( const Image &  image)
inlineprivate

◆ notifyPictureTaken() [2/2]

void CameraDevice::Pimpl::notifyPictureTaken ( const Image &  image)
inlineprivate

◆ notifyPictureTakenIfNeeded()

void CameraDevice::Pimpl::notifyPictureTakenIfNeeded ( const Image &  image)
inline

◆ onActivityPaused()

◆ onActivityResumed()

◆ open() [1/2]

void CameraDevice::Pimpl::open ( InternalOpenCameraResultCallback  cameraOpenCallbackToUse)
inline

◆ open() [2/2]

void CameraDevice::Pimpl::open ( InternalOpenCameraResultCallback  cameraOpenCallbackToUse)
inline

◆ openedOk() [1/4]

bool CameraDevice::Pimpl::openedOk ( ) const
inlinenoexcept

References scopedCameraDevice.

Referenced by startRecordingToFile().

◆ openedOk() [2/4]

bool CameraDevice::Pimpl::openedOk ( ) const
inlinenoexcept

References captureSession.

◆ openedOk() [3/4]

bool CameraDevice::Pimpl::openedOk ( ) const
inlinenoexcept

◆ openedOk() [4/4]

bool CameraDevice::Pimpl::openedOk ( ) const
inlinenoexcept

References openedSuccessfully.

◆ printDebugCameraFormatInfo()

static void CameraDevice::Pimpl::printDebugCameraFormatInfo ( AVCaptureDeviceFormat *  format)
inlinestaticprivate

◆ printDebugCameraInfo() [1/2]

static void CameraDevice::Pimpl::printDebugCameraInfo ( AVCaptureDevice *  device)
inlinestaticprivate

◆ printDebugCameraInfo() [2/2]

static void CameraDevice::Pimpl::printDebugCameraInfo ( const LocalRef< jobject > &  cameraManagerToUse,
const String &  cameraId 
)
inlinestaticprivate

◆ printPrimitiveArrayElements()

static void CameraDevice::Pimpl::printPrimitiveArrayElements ( const LocalRef< jobject > &  keyValue,
const String &  keyName,
const String &  keyValueString 
)
inlinestaticprivate

References JUCE_CAMERA_LOG, and PRINT_ELEMENTS.

Referenced by printDebugCameraInfo().

◆ printRangeArrayElements()

static void CameraDevice::Pimpl::printRangeArrayElements ( const LocalRef< jobject > &  rangeArray,
const String &  keyName 
)
inlinestaticprivate

References JUCE_CAMERA_LOG.

Referenced by printDebugCameraInfo().

◆ removeFileCaptureFilter()

void CameraDevice::Pimpl::removeFileCaptureFilter ( )
inline

◆ removeGraphFromRot()

void CameraDevice::Pimpl::removeGraphFromRot ( )
inlineprivate

References graphRegistrationID.

Referenced by ~Pimpl().

◆ removeListener() [1/4]

void CameraDevice::Pimpl::removeListener ( CameraDevice::Listener *  listenerToRemove)
inline

References listenerLock, and listeners.

◆ removeListener() [2/4]

void CameraDevice::Pimpl::removeListener ( CameraDevice::Listener *  listenerToRemove)
inline

References listenerLock, and listeners.

◆ removeListener() [3/4]

void CameraDevice::Pimpl::removeListener ( CameraDevice::Listener *  listenerToRemove)
inline

References listenerLock, and listeners.

◆ removeListener() [4/4]

void CameraDevice::Pimpl::removeListener ( CameraDevice::Listener *  listenerToRemove)
inline

References listenerLock, listeners, and removeUser().

◆ removeUser()

void CameraDevice::Pimpl::removeUser ( )
inline

◆ selectVideoSize()

bool CameraDevice::Pimpl::selectVideoSize ( IAMStreamConfig *const  streamConfig,
const int  minWidth,
const int  minHeight,
const int  maxWidth,
const int  maxHeight 
)
inlineprivate

References deleteMediaType(), maxHeight, maxWidth, minHeight, and minWidth.

Referenced by Pimpl().

◆ setupStillImageSize()

◆ startBackgroundThread()

void CameraDevice::Pimpl::startBackgroundThread ( )
inlineprivate

References handler, and handlerThread.

Referenced by Pimpl(), and onActivityResumed().

◆ startPreviewMode()

◆ startRecordingToFile() [1/4]

void CameraDevice::Pimpl::startRecordingToFile ( const File &  file,
int  quality 
)
inline

◆ startRecordingToFile() [2/4]

◆ startRecordingToFile() [3/4]

void CameraDevice::Pimpl::startRecordingToFile ( const File &  file,
int   
)
inline

References captureSession.

◆ startRecordingToFile() [4/4]

void CameraDevice::Pimpl::startRecordingToFile ( const File &  file,
int   
)
inline

◆ startSession()

void CameraDevice::Pimpl::startSession ( )
inline

◆ startVideoRecordingMode()

void CameraDevice::Pimpl::startVideoRecordingMode ( MediaRecorder mr)
inlineprivate

◆ stopBackgroundThread()

void CameraDevice::Pimpl::stopBackgroundThread ( )
inlineprivate

References handler, handlerThread, and jassert.

Referenced by onActivityPaused().

◆ stopRecording() [1/4]

void CameraDevice::Pimpl::stopRecording ( )
inline

◆ stopRecording() [2/4]

void CameraDevice::Pimpl::stopRecording ( )
inline

References captureSession.

◆ stopRecording() [3/4]

void CameraDevice::Pimpl::stopRecording ( )
inline

References isRecording, and stopRecording().

◆ stopRecording() [4/4]

void CameraDevice::Pimpl::stopRecording ( )
inline

◆ takeStillPicture() [1/4]

void CameraDevice::Pimpl::takeStillPicture ( std::function< void(const Image &)>  pictureTakenCallbackToUse)
inline

◆ takeStillPicture() [2/4]

void CameraDevice::Pimpl::takeStillPicture ( std::function< void(const Image &)>  pictureTakenCallbackToUse)
inline

◆ takeStillPicture() [3/4]

void CameraDevice::Pimpl::takeStillPicture ( std::function< void(const Image &)>  pictureTakenCallbackToUse)
inline

◆ takeStillPicture() [4/4]

void CameraDevice::Pimpl::takeStillPicture ( std::function< void(const Image &)>  pictureTakenCallbackToUse)
inline

◆ triggerStillPictureCapture() [1/2]

void CameraDevice::Pimpl::triggerStillPictureCapture ( )
inlineprivate

◆ triggerStillPictureCapture() [2/2]

void CameraDevice::Pimpl::triggerStillPictureCapture ( )
inlineprivate

References captureSession.

Friends And Related Symbol Documentation

◆ CameraDevice::ViewerComponent

Member Data Documentation

◆ activeImage

Image CameraDevice::Pimpl::activeImage
private

Referenced by drawCurrentImage(), and handleFrame().

◆ activeUsers

int CameraDevice::Pimpl::activeUsers = 0

◆ appWasPaused

bool CameraDevice::Pimpl::appWasPaused = false
private

◆ asfWriter

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::asfWriter

◆ callback

ComSmartPtr<GrabberCallback> CameraDevice::Pimpl::callback

Referenced by Pimpl(), and ~Pimpl().

◆ callbackForwarder

std::optional<ActivityLifecycleCallbackForwarder> CameraDevice::Pimpl::callbackForwarder
private

Referenced by ~Pimpl(), and continueOpenRequest().

◆ cameraCharacteristics

GlobalRef CameraDevice::Pimpl::cameraCharacteristics
private

◆ cameraId

◆ cameraManager

GlobalRef CameraDevice::Pimpl::cameraManager
private

◆ cameraOpenCallback

InternalOpenCameraResultCallback CameraDevice::Pimpl::cameraOpenCallback
private

◆ captureGraphBuilder

ComSmartPtr<ICaptureGraphBuilder2> CameraDevice::Pimpl::captureGraphBuilder

Referenced by Pimpl(), and ~Pimpl().

◆ captureSession

◆ currentCaptureSessionMode

◆ deviceOrientationChangeListener

DeviceOrientationChangeListener CameraDevice::Pimpl::deviceOrientationChangeListener
private

◆ filter

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::filter

Referenced by Pimpl(), ~Pimpl(), getPin(), and handleFrame().

◆ firstRecordedFrameTimeMs

Time CameraDevice::Pimpl::firstRecordedFrameTimeMs
private

◆ firstRecordedTime

Time CameraDevice::Pimpl::firstRecordedTime

◆ graphBuilder

ComSmartPtr<IGraphBuilder> CameraDevice::Pimpl::graphBuilder

◆ graphRegistrationID

DWORD CameraDevice::Pimpl::graphRegistrationID

◆ handler

◆ handlerThread

GlobalRef CameraDevice::Pimpl::handlerThread
private

◆ height

◆ heights

Array<int> CameraDevice::Pimpl::heights

Referenced by getVideoSizes().

◆ imageReader

std::unique_ptr<ImageReader> CameraDevice::Pimpl::imageReader
private

◆ imageSwapLock

CriticalSection CameraDevice::Pimpl::imageSwapLock
private

Referenced by drawCurrentImage(), and handleFrame().

◆ isRecording

bool CameraDevice::Pimpl::isRecording = false

◆ listenerLock

CriticalSection CameraDevice::Pimpl::listenerLock
private

◆ listeners

ListenerList< Listener > CameraDevice::Pimpl::listeners
private

◆ maxHeight

int CameraDevice::Pimpl::maxHeight
private

◆ maxWidth

int CameraDevice::Pimpl::maxWidth
private

◆ mediaControl

ComSmartPtr<IMediaControl> CameraDevice::Pimpl::mediaControl

◆ mediaRecorder

std::unique_ptr<MediaRecorder> CameraDevice::Pimpl::mediaRecorder
private

◆ minHeight

int CameraDevice::Pimpl::minHeight
private

◆ minWidth

int CameraDevice::Pimpl::minWidth
private

◆ notifiedOfCameraOpening

bool CameraDevice::Pimpl::notifiedOfCameraOpening = false
private

◆ openedSuccessfully

bool CameraDevice::Pimpl::openedSuccessfully = false

◆ owner

CameraDevice & CameraDevice::Pimpl::owner
private

◆ pictureTakenCallback

std::function< void(const Image &)> CameraDevice::Pimpl::pictureTakenCallback
private

◆ pictureTakenCallbackLock

CriticalSection CameraDevice::Pimpl::pictureTakenCallbackLock

◆ previewDisplay

PreviewDisplay CameraDevice::Pimpl::previewDisplay
private

◆ previewMaxFPS

◆ recordNextFrameTime

bool CameraDevice::Pimpl::recordNextFrameTime = false

◆ sampleGrabber

ComSmartPtr<ISampleGrabber> CameraDevice::Pimpl::sampleGrabber

Referenced by Pimpl(), and ~Pimpl().

◆ scopedCameraDevice

std::unique_ptr<ScopedCameraDevice> CameraDevice::Pimpl::scopedCameraDevice
private

◆ smartTee

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::smartTee

Referenced by Pimpl(), and ~Pimpl().

◆ smartTeeCaptureOutputPin

ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeeCaptureOutputPin

◆ smartTeePreviewOutputPin

ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeePreviewOutputPin

Referenced by Pimpl(), and ~Pimpl().

◆ streamConfigurationMap

StreamConfigurationMap CameraDevice::Pimpl::streamConfigurationMap
private

◆ viewerComps

◆ width

◆ widths

Array<int> CameraDevice::Pimpl::widths

Referenced by getVideoSizes().


The documentation for this struct was generated from the following files: