public unsafe CMSampleTimingInfo [] GetSampleTimingInfo(out OSStatus status) { int count; status = 0; if (handle == IntPtr.Zero) { return(null); } if ((status = CMSampleBufferGetSampleTimingInfoArray(handle, 0, null, out count)) != 0) { return(null); } CMSampleTimingInfo [] pInfo = new CMSampleTimingInfo [count]; if (count == 0) { return(pInfo); fixed(CMSampleTimingInfo *info = pInfo) if ((status = CMSampleBufferGetSampleTimingInfoArray(handle, count, info, out count)) != 0) return(null); } return(pInfo); }
static extern CMSampleBufferError CMSampleBufferCreateForImageBuffer(IntPtr allocator, IntPtr imageBuffer, bool dataReady, IntPtr makeDataReadyCallback, IntPtr makeDataReadyRefcon, IntPtr formatDescription, ref CMSampleTimingInfo sampleTiming, out IntPtr bufOut );
public static CMSampleBuffer CreateForImageBuffer(CVImageBuffer imageBuffer, bool dataReady, CMVideoFormatDescription formatDescription, CMSampleTimingInfo sampleTiming, out CMSampleBufferError error) { if (imageBuffer == null) { throw new ArgumentNullException("imageBuffer"); } if (formatDescription == null) { throw new ArgumentNullException("formatDescription"); } IntPtr buffer; error = CMSampleBufferCreateForImageBuffer(IntPtr.Zero, imageBuffer.handle, dataReady, IntPtr.Zero, IntPtr.Zero, formatDescription.handle, ref sampleTiming, out buffer); if (error != CMSampleBufferError.None) { return(null); } return(new CMSampleBuffer(buffer, true)); }
unsafe static extern OSStatus CMSampleBufferGetSampleTimingInfoArray ( IntPtr sbuf, int timingArrayEntries, CMSampleTimingInfo* timingArrayOut, out int timingArrayEntriesNeededOut );
public unsafe CMSampleTimingInfo [] GetSampleTimingInfo (out OSStatus status) { int count; status = 0; if (handle == IntPtr.Zero) return null; if ((status = CMSampleBufferGetSampleTimingInfoArray (handle, 0, null, out count)) != 0) return null; CMSampleTimingInfo [] pInfo = new CMSampleTimingInfo [count]; if (count == 0) return pInfo; fixed (CMSampleTimingInfo* info = pInfo) if ((status = CMSampleBufferGetSampleTimingInfoArray (handle, count, info, out count)) != 0) return null; return pInfo; }
public static CMSampleBuffer CreateForImageBuffer (CVImageBuffer imageBuffer, bool dataReady, CMVideoFormatDescription formatDescription, CMSampleTimingInfo sampleTiming, out CMSampleBufferError error) { if (imageBuffer == null) throw new ArgumentNullException ("imageBuffer"); if (formatDescription == null) throw new ArgumentNullException ("formatDescription"); IntPtr buffer; error = CMSampleBufferCreateForImageBuffer (IntPtr.Zero, imageBuffer.handle, dataReady, IntPtr.Zero, IntPtr.Zero, formatDescription.handle, ref sampleTiming, out buffer); if (error != CMSampleBufferError.None) return null; return new CMSampleBuffer (buffer, true); }
static extern CMSampleBufferError CMSampleBufferCreateForImageBuffer (IntPtr allocator, IntPtr imageBuffer, bool dataReady, IntPtr makeDataReadyCallback, IntPtr makeDataReadyRefcon, IntPtr formatDescription, ref CMSampleTimingInfo sampleTiming, out IntPtr bufOut );
public unsafe static CMSampleBuffer CreateWithNewTiming (CMSampleBuffer original, CMSampleTimingInfo [] timing, out OSStatus status) { IntPtr handle; fixed (CMSampleTimingInfo *t = timing) if ((status = CMSampleBufferCreateCopyWithNewTiming (IntPtr.Zero, original.Handle, timing.Length, t, out handle)) != 0) return null; return new CMSampleBuffer (handle, true); }
public static CMSampleBuffer CreateWithNewTiming (CMSampleBuffer original, CMSampleTimingInfo [] timing) { OSStatus status; return CreateWithNewTiming (original, timing, out status); }
unsafe static extern OSStatus CMSampleBufferCreateCopyWithNewTiming ( IntPtr allocator, IntPtr originalSBuf, int numSampleTimingEntries, CMSampleTimingInfo* sampleTimingArray, out IntPtr sBufCopyOut );