#ifndef CoreMediaSPI_h
#define CoreMediaSPI_h
#include <CoreMedia/CoreMedia.h>
#if PLATFORM(COCOA)
#if USE(APPLE_INTERNAL_SDK)
#include <CoreMedia/CMNotificationCenter.h>
#else
typedef struct opaqueCMNotificationCenter *CMNotificationCenterRef;
typedef void (*CMNotificationCallback)(CMNotificationCenterRef inCenter, const void *inListener, CFStringRef inNotificationName, const void *inNotifyingObject, CFTypeRef inNotificationPayload);
#endif
WTF_EXTERN_C_BEGIN
CMNotificationCenterRef CMNotificationCenterGetDefaultLocalCenter(void);
OSStatus CMNotificationCenterAddListener(CMNotificationCenterRef inCenter, const void *inListener, CMNotificationCallback inCallBack, CFStringRef inNotificationName, const void *inObjectToObserve, UInt32 inFlags);
OSStatus CMNotificationCenterRemoveListener(CMNotificationCenterRef inCenter, const void *inListener, CMNotificationCallback inCallBack, CFStringRef inNotificationName, const void *inObject);
WTF_EXTERN_C_END
#endif // PLATFORM(COCOA)
#if PLATFORM(WIN)
typedef struct OpaqueCMBlockBuffer* CMBlockBufferRef;
typedef const struct opaqueCMFormatDescription* CMFormatDescriptionRef;
typedef struct opaqueCMSampleBuffer* CMSampleBufferRef;
#ifndef CMSAMPLEBUFFER_H
WTF_EXTERN_C_BEGIN
#pragma pack(push, 4)
typedef struct {
CMTime duration;
CMTime presentationTimeStamp;
CMTime decodeTimeStamp;
} CMSampleTimingInfo;
#pragma pack(pop)
WTF_EXTERN_C_END
#endif
#endif // PLATFORM(WIN)
#endif // CoreMediaSPI_h