JUCE  v5.4.1-191-g0ab5e696f
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
CameraDevice::Pimpl Struct Reference

#include <juce_win32_CameraDevice.h>

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

Classes

class  CaptureSession
 
class  CaptureSession
 
class  CaptureSession
 
class  CaptureSession
 
class  CaptureSession
 
class  CaptureSession
 
struct  CaptureSessionMode
 
struct  CaptureSessionModeBase
 
struct  CaptureSessionPreviewMode
 
struct  CaptureSessionVideoRecordingMode
 
struct  DelegateClass
 
class  DeviceOrientationChangeListener
 
struct  GrabberCallback
 
class  ImageReader
 
class  ImageReader
 
struct  IOSVersion
 
class  MediaRecorder
 
class  PreviewDisplay
 
class  PreviewDisplay
 
class  ScopedCameraDevice
 
class  ScopedCameraDevice
 
class  ScopedCameraDevice
 
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, int, int, int, int, bool useHighQuality)
 
 Pimpl (CameraDevice &ownerToUse, const String &cameraIdToUse, int, int, int, int, int, bool useHighQuality)
 
 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 ()
 
 ~Pimpl ()
 
 ~Pimpl ()
 
void addImageCapture ()
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addListener (CameraDevice::Listener *listenerToAdd)
 
void addMovieCapture ()
 
void addUser ()
 
void callListeners (const Image &image)
 
void cameraSessionRuntimeError (const String &error)
 
void continueOpenRequest (bool granted)
 
bool createFileCaptureFilter (const File &file, int quality)
 
void drawCurrentImage (Graphics &g, Rectangle< int > area)
 
String getCameraId () const noexcept
 
String getCameraId () const noexcept
 
Time getTimeOfFirstRecordedFrame () const
 
Time getTimeOfFirstRecordedFrame () const
 
Time getTimeOfFirstRecordedFrame () const
 
Time getTimeOfFirstRecordedFrame () const
 
AVCaptureConnection * getVideoConnection () const
 
void handleFrame (double, BYTE *buffer, long)
 
void handleImageCapture (const Image &image)
 
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 refreshConnections ()
 
void refreshIfNeeded ()
 
void removeFileCaptureFilter ()
 
void removeImageCapture ()
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeListener (CameraDevice::Listener *listenerToRemove)
 
void removeMovieCapture ()
 
void removeUser ()
 
void startRecordingToFile (const File &file, int)
 
void startRecordingToFile (const File &file, int)
 
void startRecordingToFile (const File &file, int quality)
 
void startRecordingToFile (const File &file, int)
 
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)
 
void triggerImageCapture ()
 

Static Public Member Functions

static ComSmartPtr< IBaseFilter > enumerateCameras (StringArray *names, const int deviceIndexToOpen)
 
static StringArray getAvailableDevices ()
 
static StringArray getAvailableDevices ()
 
static StringArray getAvailableDevices ()
 
static StringArray getAvailableDevices ()
 

Public Attributes

Image activeImage
 
int activeUsers = 0
 
ComSmartPtr< IBaseFilter > asfWriter
 
ComSmartPtr< GrabberCallbackcallback
 
id< AVCaptureFileOutputRecordingDelegate > callbackDelegate = nil
 
ComSmartPtr< ICaptureGraphBuilder2 > captureGraphBuilder
 
AVCaptureView * captureView = nil
 
AVCaptureMovieFileOutput * fileOutput = nil
 
ComSmartPtr< IBaseFilter > filter
 
Time firstPresentationTime
 
Time firstRecordedTime
 
ComSmartPtr< IGraphBuilder > graphBuilder
 
DWORD graphRegistrationID
 
int height = 0
 
Array< intheights
 
bool imageNeedsFlipping = false
 
AVCaptureStillImageOutput * imageOutput = nil
 
CriticalSection imageSwapLock
 
bool isRecording = false
 
Image loadingImage
 
ComSmartPtr< IMediaControl > mediaControl
 
bool openedSuccessfully = false
 
String openingError
 
CriticalSection pictureTakenCallbackLock
 
int previewMaxFPS = 60
 
bool recordNextFrameTime = false
 
ComSmartPtr< ISampleGrabber > sampleGrabber
 
AVCaptureSession * session = nil
 
ComSmartPtr< IBaseFilter > smartTee
 
ComSmartPtr< IPin > smartTeeCaptureOutputPin
 
ComSmartPtr< IPin > smartTeePreviewOutputPin
 
Array< ViewerComponent * > viewerComps
 
int width = 0
 
Array< intwidths
 

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< intgetSupportedAutoFocusModes () 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< intchooseBestSize (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 IOSVersion getIOSVersion ()
 
static bool getPin (IBaseFilter *filter, const PIN_DIRECTION wantedDirection, ComSmartPtr< IPin > &result, const char *pinName=nullptr)
 
static LocalRef< jobject > initialiseCameraCharacteristics (const GlobalRef &cameraManager, const String &cameraId)
 
static LocalRef< jobject > initialiseCameraManager ()
 
static Array< intjintArrayToJuceArray (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

GlobalRef activityLifeListener
 
bool appWasPaused = false
 
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 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
 

Static Private Attributes

static IOSVersion iosVersion = CameraDevice::Pimpl::getIOSVersion()
 

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 ( )
inline

◆ 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 &  ,
int  ,
int  ,
int  ,
int  ,
int  ,
bool  useHighQuality 
)
inline

◆ ~Pimpl() [2/3]

CameraDevice::Pimpl::~Pimpl ( )
inline

◆ Pimpl() [4/4]

CameraDevice::Pimpl::Pimpl ( CameraDevice &  ownerToUse,
const String &  ,
int  index,
int  minWidth,
int  minHeight,
int  maxWidth,
int  maxHeight,
bool   
)
inline

◆ ~Pimpl() [3/3]

CameraDevice::Pimpl::~Pimpl ( )
inline

Member Function Documentation

◆ addGraphToRot()

bool CameraDevice::Pimpl::addGraphToRot ( )
inlineprivate

◆ addImageCapture()

void CameraDevice::Pimpl::addImageCapture ( )
inline

References imageOutput, and session.

Referenced by refreshConnections().

◆ 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

◆ addListener() [4/4]

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

◆ addMovieCapture()

void CameraDevice::Pimpl::addMovieCapture ( )
inline

References fileOutput, and session.

Referenced by refreshConnections().

◆ addUser()

void CameraDevice::Pimpl::addUser ( )
inline

◆ callListeners() [1/3]

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

◆ callListeners() [2/3]

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

References listenerLock, and listeners.

◆ callListeners() [3/3]

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

◆ cameraDeviceError()

◆ cameraErrorCodeToString()

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

◆ cameraOpenFinished()

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

◆ cameraSessionRuntimeError() [1/2]

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

References JUCE_CAMERA_LOG, and owner.

◆ cameraSessionRuntimeError() [2/2]

◆ 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

◆ continueOpenRequest()

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

◆ createFileCaptureFilter()

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

◆ deleteMediaType()

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

◆ disconnectAnyViewers()

void CameraDevice::Pimpl::disconnectAnyViewers ( )
private

◆ 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

◆ getAvailableDevices() [4/4]

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

◆ getCameraCharacteristicsIntegerKeyValue()

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

References juce::getEnv().

◆ getCameraId() [1/2]

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

References cameraId.

◆ getCameraId() [2/2]

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

◆ getCameraLensFacing()

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

◆ getCameraSensorOrientation()

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

◆ getDevices()

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

◆ getHighResStillImgDimensionsString()

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

◆ getIOSVersion()

◆ 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

References juce::getEnv().

◆ getTimeOfFirstRecordedFrame() [1/4]

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

◆ getTimeOfFirstRecordedFrame() [2/4]

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

References firstPresentationTime.

◆ getTimeOfFirstRecordedFrame() [3/4]

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

◆ getTimeOfFirstRecordedFrame() [4/4]

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

◆ getVideoConnection()

AVCaptureConnection* CameraDevice::Pimpl::getVideoConnection ( ) const
inline

References imageOutput.

Referenced by refreshIfNeeded(), and triggerImageCapture().

◆ getVideoSizes()

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

◆ handleFrame()

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

◆ handleImageCapture()

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

◆ initialiseCameraCharacteristics()

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

◆ initialiseCameraManager()

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

◆ invokeCameraOpenCallback()

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

References JUCE_CAMERA_LOG.

◆ jintArrayToJuceArray()

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

References juce::getEnv().

◆ 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()

void CameraDevice::Pimpl::onActivityPaused ( jobject  )
inlineoverrideprivate

◆ onActivityResumed()

void CameraDevice::Pimpl::onActivityResumed ( jobject  )
inlineoverrideprivate

◆ open() [1/2]

◆ open() [2/2]

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

References jassert.

◆ openedOk() [1/4]

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

References openingError.

◆ openedOk() [2/4]

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

◆ openedOk() [3/4]

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

◆ openedOk() [4/4]

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

◆ 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

◆ printRangeArrayElements()

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

◆ refreshConnections()

void CameraDevice::Pimpl::refreshConnections ( )
inline

◆ refreshIfNeeded()

void CameraDevice::Pimpl::refreshIfNeeded ( )
inline

◆ removeFileCaptureFilter()

void CameraDevice::Pimpl::removeFileCaptureFilter ( )
inline

◆ removeGraphFromRot()

void CameraDevice::Pimpl::removeGraphFromRot ( )
inlineprivate

◆ removeImageCapture()

void CameraDevice::Pimpl::removeImageCapture ( )
inline

References imageOutput, and session.

Referenced by refreshConnections(), and ~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

◆ removeListener() [4/4]

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

◆ removeMovieCapture()

void CameraDevice::Pimpl::removeMovieCapture ( )
inline

References fileOutput, and session.

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

◆ 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

◆ setupStillImageSize()

void CameraDevice::Pimpl::setupStillImageSize ( )
inlineprivate

◆ startBackgroundThread()

void CameraDevice::Pimpl::startBackgroundThread ( )
inlineprivate

◆ startPreviewMode()

void CameraDevice::Pimpl::startPreviewMode ( ImageReader ir)
inlineprivate

References jassert.

◆ startRecordingToFile() [1/4]

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

◆ startRecordingToFile() [2/4]

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

◆ startRecordingToFile() [3/4]

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

◆ startRecordingToFile() [4/4]

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

References jassert, jassertfalse, and juce::jmin().

◆ startVideoRecordingMode()

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

References jassert.

◆ stopBackgroundThread()

void CameraDevice::Pimpl::stopBackgroundThread ( )
inlineprivate

◆ stopRecording() [1/4]

void CameraDevice::Pimpl::stopRecording ( )
inline

◆ stopRecording() [2/4]

void CameraDevice::Pimpl::stopRecording ( )
inline

◆ stopRecording() [3/4]

void CameraDevice::Pimpl::stopRecording ( )
inline

◆ 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

References jassert.

◆ takeStillPicture() [4/4]

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

References jassertfalse.

◆ triggerImageCapture()

◆ triggerStillPictureCapture() [1/2]

◆ triggerStillPictureCapture() [2/2]

void CameraDevice::Pimpl::triggerStillPictureCapture ( )
inlineprivate

Referenced by addListener(), and takeStillPicture().

Friends And Related Function Documentation

◆ CameraDevice::ViewerComponent

Member Data Documentation

◆ activeImage

Image CameraDevice::Pimpl::activeImage

◆ activeUsers

int CameraDevice::Pimpl::activeUsers = 0

◆ activityLifeListener

GlobalRef CameraDevice::Pimpl::activityLifeListener
private

◆ appWasPaused

bool CameraDevice::Pimpl::appWasPaused = false
private

◆ asfWriter

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::asfWriter

◆ callback

ComSmartPtr<GrabberCallback> CameraDevice::Pimpl::callback

◆ callbackDelegate

id<AVCaptureFileOutputRecordingDelegate> CameraDevice::Pimpl::callbackDelegate = nil

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

◆ cameraCharacteristics

GlobalRef CameraDevice::Pimpl::cameraCharacteristics
private

◆ cameraId

String CameraDevice::Pimpl::cameraId
private

◆ cameraManager

GlobalRef CameraDevice::Pimpl::cameraManager
private

◆ cameraOpenCallback

◆ captureGraphBuilder

ComSmartPtr<ICaptureGraphBuilder2> CameraDevice::Pimpl::captureGraphBuilder

◆ captureSession

CaptureSession CameraDevice::Pimpl::captureSession
private

◆ captureView

AVCaptureView* CameraDevice::Pimpl::captureView = nil

Referenced by Pimpl().

◆ currentCaptureSessionMode

std::unique_ptr<CaptureSessionModeBase> CameraDevice::Pimpl::currentCaptureSessionMode
private

◆ deviceOrientationChangeListener

DeviceOrientationChangeListener CameraDevice::Pimpl::deviceOrientationChangeListener
private

◆ fileOutput

AVCaptureMovieFileOutput* CameraDevice::Pimpl::fileOutput = nil

◆ filter

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::filter

◆ firstPresentationTime

Time CameraDevice::Pimpl::firstPresentationTime

◆ firstRecordedFrameTimeMs

Time CameraDevice::Pimpl::firstRecordedFrameTimeMs
private

◆ firstRecordedTime

Time CameraDevice::Pimpl::firstRecordedTime

◆ graphBuilder

ComSmartPtr<IGraphBuilder> CameraDevice::Pimpl::graphBuilder

◆ graphRegistrationID

DWORD CameraDevice::Pimpl::graphRegistrationID

◆ handler

GlobalRef CameraDevice::Pimpl::handler
private

◆ handlerThread

GlobalRef CameraDevice::Pimpl::handlerThread
private

◆ height

◆ heights

Array<int> CameraDevice::Pimpl::heights

◆ imageNeedsFlipping

bool CameraDevice::Pimpl::imageNeedsFlipping = false

◆ imageOutput

AVCaptureStillImageOutput* CameraDevice::Pimpl::imageOutput = nil

◆ imageReader

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

◆ imageSwapLock

CriticalSection CameraDevice::Pimpl::imageSwapLock

◆ iosVersion

◆ isRecording

bool CameraDevice::Pimpl::isRecording = false

◆ listenerLock

CriticalSection CameraDevice::Pimpl::listenerLock
private

◆ listeners

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

◆ loadingImage

Image CameraDevice::Pimpl::loadingImage

◆ 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

◆ openingError

String CameraDevice::Pimpl::openingError

Referenced by openedOk().

◆ 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

int CameraDevice::Pimpl::previewMaxFPS = 60

◆ recordNextFrameTime

bool CameraDevice::Pimpl::recordNextFrameTime = false

◆ sampleGrabber

ComSmartPtr<ISampleGrabber> CameraDevice::Pimpl::sampleGrabber

◆ scopedCameraDevice

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

◆ session

AVCaptureSession* CameraDevice::Pimpl::session = nil

◆ smartTee

ComSmartPtr<IBaseFilter> CameraDevice::Pimpl::smartTee

◆ smartTeeCaptureOutputPin

ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeeCaptureOutputPin

◆ smartTeePreviewOutputPin

ComSmartPtr<IPin> CameraDevice::Pimpl::smartTeePreviewOutputPin

◆ streamConfigurationMap

StreamConfigurationMap CameraDevice::Pimpl::streamConfigurationMap
private

◆ viewerComps

Array<ViewerComponent*> CameraDevice::Pimpl::viewerComps

◆ width

◆ widths

Array<int> CameraDevice::Pimpl::widths

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