1 #ifndef ANDROID_DVR_VSYNC_H_ 2 #define ANDROID_DVR_VSYNC_H_ 3 4 #include <stdint.h> 5 #include <sys/cdefs.h> 6 7 __BEGIN_DECLS 8 9 // Represents a vsync sample. The size of this struct is 32 bytes. 10 typedef struct __attribute__((packed, aligned(16))) DvrVsync { 11 // The timestamp for the last vsync in nanoseconds. 12 uint64_t vsync_timestamp_ns; 13 14 // The index of the last vsync. 15 uint32_t vsync_count; 16 17 // Scan out for the left eye = vsync_timestamp_ns + vsync_left_eye_offset_ns. 18 int32_t vsync_left_eye_offset_ns; 19 20 // Scan out for the right eye = vsync_timestamp_ns + vsync_right_eye_offset_ns 21 int32_t vsync_right_eye_offset_ns; 22 23 // The period of a vsync in nanoseconds. 24 uint32_t vsync_period_ns; 25 26 // Padding to 32 bytes so the size is a multiple of 16. 27 uint8_t padding[8]; 28 } DvrVsync; 29 30 __END_DECLS 31 32 #endif // ANDROID_DVR_VSYNC_H_ 33