4#ifndef AVFCAMERAUTILITY_H
5#define AVFCAMERAUTILITY_H
18#include <QtCore/qglobal.h>
19#include <QtCore/qdebug.h>
20#include <QtCore/qlist.h>
21#include <QtCore/qpair.h>
22#include <QtCore/qsize.h>
26#include <AVFoundation/AVFoundation.h>
29@class AVCaptureDeviceFormat;
37 : m_captureDevice(captureDevice),
42 m_locked = [m_captureDevice lockForConfiguration:&
error];
48 [m_captureDevice unlockForConfiguration];
59 AVCaptureDevice *m_captureDevice;
85 return static_cast<T *
>(
get());
90 return static_cast<T *
>(
release());
104 dispatch_release(m_queue);
107 operator dispatch_queue_t()
const
121 dispatch_release(m_queue);
126 dispatch_queue_t m_queue;
136 const std::function<
bool(uint32_t)> &cvFormatValidator =
nullptr);
138 FourCharCode preferredFormat);
144 FourCharCode preferredFormat,
bool stillImage =
true);
146 FourCharCode preferredFormat,
QSize qt_device_format_resolution(AVCaptureDeviceFormat *format)
bool qt_formats_are_equal(AVCaptureDeviceFormat *f1, AVCaptureDeviceFormat *f2)
QPair< qreal, qreal > AVFPSRange
AVFPSRange qt_current_framerates(AVCaptureDevice *captureDevice, AVCaptureConnection *videoConnection)
std::optional< QList< UInt32 > > qt_supported_channel_counts_for_format(int codecId)
AVCaptureDeviceFormat * qt_find_best_resolution_match(AVCaptureDevice *captureDevice, const QSize &res, FourCharCode preferredFormat, bool stillImage=true)
void qt_set_framerate_limits(AVCaptureDevice *captureDevice, AVCaptureConnection *videoConnection, qreal minFPS, qreal maxFPS)
QSize qt_device_format_high_resolution(AVCaptureDeviceFormat *format)
QList< AVCaptureDeviceFormat * > qt_unique_device_formats(AVCaptureDevice *captureDevice, FourCharCode preferredFormat)
AVFPSRange qt_connection_framerates(AVCaptureConnection *videoConnection)
QList< AudioValueRange > qt_supported_sample_rates_for_format(int codecId)
QList< UInt32 > qt_supported_channel_layout_tags_for_format(int codecId, int noChannels)
AVCaptureDeviceFormat * qt_convert_to_capture_device_format(AVCaptureDevice *captureDevice, const QCameraFormat &format, const std::function< bool(uint32_t)> &cvFormatValidator=nullptr)
QList< AudioValueRange > qt_supported_bit_rates_for_format(int codecId)
QList< AVFPSRange > qt_device_format_framerates(AVCaptureDeviceFormat *format)
AVCaptureDeviceFormat * qt_find_best_framerate_match(AVCaptureDevice *captureDevice, FourCharCode preferredFormat, Float64 fps)
bool qt_set_active_format(AVCaptureDevice *captureDevice, AVCaptureDeviceFormat *format, bool preserveFps)
AVFrameRateRange * qt_find_supported_framerate_range(AVCaptureDeviceFormat *format, Float64 fps)
QSize qt_device_format_pixel_aspect_ratio(AVCaptureDeviceFormat *format)
bool qt_format_supports_framerate(AVCaptureDeviceFormat *format, qreal fps)
AVFConfigurationLock(AVCaptureDevice *captureDevice)
dispatch_queue_t data() const
void reset(dispatch_queue_t q=nullptr)
AVFScopedPointer(dispatch_queue_t q)
Combined button and popup list for selecting options.
std::pair< T1, T2 > QPair
DBusConnection const char DBusError * error
static QDBusError::ErrorType get(const char *name)
static ControlElement< T > * ptr(QWidget *widget)
GLint GLsizei GLsizei GLenum format
GLdouble GLdouble GLdouble GLdouble q
void operator()(NSObject *obj)