AVVideoCaptureSource.h [plain text]
#ifndef AVVideoCaptureSource_h
#define AVVideoCaptureSource_h
#if ENABLE(MEDIA_STREAM) && USE(AVFOUNDATION)
#include "AVMediaCaptureSource.h"
typedef const struct opaqueCMFormatDescription *CMFormatDescriptionRef;
namespace WebCore {
class AVVideoCaptureSource : public AVMediaCaptureSource {
public:
static RefPtr<AVMediaCaptureSource> create(AVCaptureDevice*, const AtomicString&, PassRefPtr<MediaConstraints>);
virtual RefPtr<MediaStreamSourceCapabilities> capabilities() const override;
virtual void captureOutputDidOutputSampleBufferFromConnection(AVCaptureOutput*, CMSampleBufferRef, AVCaptureConnection*) override;
private:
AVVideoCaptureSource(AVCaptureDevice*, const AtomicString&, PassRefPtr<MediaConstraints>);
virtual ~AVVideoCaptureSource();
virtual void setupCaptureSession() override;
virtual void updateStates() override;
bool applyConstraints(MediaConstraints*);
bool setFrameRateConstraint(float minFrameRate, float maxFrameRate);
void calculateFramerate(CMSampleBufferRef);
RetainPtr<AVCaptureConnection> m_videoConnection;
RetainPtr<CMFormatDescriptionRef> m_videoFormatDescription;
Vector<Float64> m_videoFrameTimeStamps;
Float64 m_frameRate;
int32_t m_width;
int32_t m_height;
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // AVVideoCaptureSource_h