| Index: media/capture/video/mac/video_capture_device_avfoundation_mac.mm
|
| diff --git a/media/capture/video/mac/video_capture_device_avfoundation_mac.mm b/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
|
| index deb14080cfd2f2cb16709c9dd473df7cd809d2fd..6bc684ed9fe81477d53354a7f51e1b50ab3fa4cb 100644
|
| --- a/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
|
| +++ b/media/capture/video/mac/video_capture_device_avfoundation_mac.mm
|
| @@ -4,10 +4,12 @@
|
|
|
| #import "media/capture/video/mac/video_capture_device_avfoundation_mac.h"
|
|
|
| +#import <CoreMedia/CoreMedia.h>
|
| #import <CoreVideo/CoreVideo.h>
|
|
|
| #include "base/logging.h"
|
| #include "base/mac/foundation_util.h"
|
| +#include "media/base/timestamp_constants.h"
|
| #include "media/base/video_capture_types.h"
|
| #include "media/capture/video/mac/video_capture_device_mac.h"
|
| #include "ui/gfx/geometry/size.h"
|
| @@ -328,9 +330,18 @@ didOutputSampleBuffer:(CoreMediaGlue::CMSampleBufferRef)sampleBuffer
|
|
|
| {
|
| base::AutoLock lock(lock_);
|
| + const CoreMediaGlue::CMTime cm_timestamp =
|
| + CoreMediaGlue::CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
|
| + const base::TimeDelta timestamp =
|
| + CMTIME_IS_VALID(cm_timestamp)
|
| + ? base::TimeDelta::FromMicroseconds(
|
| + cm_timestamp.value * base::TimeTicks::kMicrosecondsPerSecond /
|
| + cm_timestamp.timescale)
|
| + : media::kNoTimestamp();
|
| +
|
| if (frameReceiver_ && baseAddress) {
|
| frameReceiver_->ReceiveFrame(reinterpret_cast<uint8_t*>(baseAddress),
|
| - frameSize, captureFormat, 0, 0);
|
| + frameSize, captureFormat, 0, 0, timestamp);
|
| }
|
| }
|
|
|
|
|