Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 static extern CMSampleBufferError CMSampleBufferCreateForImageBuffer(IntPtr allocator,
                                                                      IntPtr imageBuffer, bool dataReady,
                                                                      IntPtr makeDataReadyCallback, IntPtr makeDataReadyRefcon,
                                                                      IntPtr formatDescription,
                                                                      ref CMSampleTimingInfo sampleTiming,
                                                                      out IntPtr bufOut
                                                                      );
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
		unsafe static extern OSStatus CMSampleBufferGetSampleTimingInfoArray (
		   IntPtr sbuf,
		   int timingArrayEntries,
		   CMSampleTimingInfo* timingArrayOut,
		   out int timingArrayEntriesNeededOut
		);
Exemplo n.º 5
0
		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;
		}
Exemplo n.º 6
0
		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);
		}
Exemplo n.º 7
0
		static extern CMSampleBufferError CMSampleBufferCreateForImageBuffer (IntPtr allocator,
		   IntPtr imageBuffer, bool dataReady,
		   IntPtr makeDataReadyCallback, IntPtr makeDataReadyRefcon,
		   IntPtr formatDescription,
		   ref CMSampleTimingInfo sampleTiming,
		   out IntPtr bufOut
		);
Exemplo n.º 8
0
		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);
		}
Exemplo n.º 9
0
		public static CMSampleBuffer CreateWithNewTiming (CMSampleBuffer original, CMSampleTimingInfo [] timing)
		{
			OSStatus status;
			return CreateWithNewTiming (original, timing, out status);
		}
Exemplo n.º 10
0
		unsafe static extern OSStatus CMSampleBufferCreateCopyWithNewTiming (
			IntPtr allocator,
			IntPtr originalSBuf,
			int numSampleTimingEntries,
			CMSampleTimingInfo* sampleTimingArray,
			out IntPtr sBufCopyOut
			);