我有一個視頻AVCaptureDevice
(AVMediaTypeVideo
),我正在使用setExposureTargetBias:completionHandler
短暫減少曝光,然後再次恢復。 我需要知道captureOutput:didOutputSampleBuffer:fromConnection:
中的哪個緩衝區對應於曝光量減少的第一幀。AVCaptureDevice:比較採樣緩衝時間戳
的文檔說:
塊接收該匹配所述第一緩衝器的所述設置已被應用到的時間戳。時間戳與設備時鐘同步,因此必須在與通過AVCaptureVideoDataOutput實例傳送的緩衝區時間戳進行比較之前轉換爲主時鐘。
如何獲得 「設備時鐘」? 我在completionHandler
中做了以下工作,但主時鐘似乎與主時鐘一致。
CMClockRef masterClock = self.captureSession.masterClock;
CMClockRef deviceClock = CMClockGetHostTimeClock();
syncTimeConverted = CMSyncConvertTime(syncTime, deviceClock, masterClock);
我打算做中captureOutput:didOutputSampleBuffer:fromConnection:
下面來測試一個緩衝區是否是一個我想
CMTime bufferTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
bool isDroppedExposureFrame = CMTimeCompare(bufferTime, syncTimeConverted) == 0;
我在正確的軌道上?