예제 #1
0
		extern static CMSampleBufferError CMAudioSampleBufferCreateWithPacketDescriptions (
		   IntPtr allocator,
		   IntPtr dataBuffer,
		   bool dataReady,
		   IntPtr makeDataReadyCallback,
		   IntPtr makeDataReadyRefcon,
		   IntPtr formatDescription,
		   int numSamples,
		   CMTime sbufPTS,
		   AudioStreamPacketDescription[] packetDescriptions,
		   out IntPtr sBufOut);
예제 #2
0
		public static CMSampleBuffer CreateWithPacketDescriptions (CMBlockBuffer dataBuffer, CMFormatDescription formatDescription, int samplesCount,
			CMTime sampleTimestamp, AudioStreamPacketDescription[] packetDescriptions, out CMSampleBufferError error)
		{
			if (formatDescription == null)
				throw new ArgumentNullException ("formatDescription");
			if (samplesCount <= 0)
				throw new ArgumentOutOfRangeException ("samplesCount");

			IntPtr buffer;
			error = CMAudioSampleBufferCreateWithPacketDescriptions (IntPtr.Zero,
				dataBuffer == null ? IntPtr.Zero : dataBuffer.Handle,
				true, IntPtr.Zero, IntPtr.Zero,
				formatDescription.Handle,
				samplesCount, sampleTimestamp,
				packetDescriptions,
				out buffer);

			if (error != CMSampleBufferError.None)
				return null;

			return new CMSampleBuffer (buffer, true);
		}
예제 #3
0
		public static CMTime GetMinimum (CMTime time1, CMTime time2)
		{
			return CMTimeMinimum (time1, time2);
		}
예제 #4
0
		public static CMTime Multiply (CMTime time, double multiplier)
		{
			return CMTimeMultiplyByFloat64 (time, multiplier);
		}
예제 #5
0
		public static CMTime Subtract (CMTime minuend, CMTime subtraend)
		{
			return CMTimeSubtract (minuend, subtraend);
		}
예제 #6
0
		public static int Compare (CMTime time1, CMTime time2)
		{
			return CMTimeCompare (time1, time2);
		}
예제 #7
0
		extern static CMSampleBufferError CMSampleBufferSetOutputPresentationTimeStamp (IntPtr handle, CMTime outputPresentationTimeStamp);
예제 #8
0
 extern static IntPtr CMTimeCopyAsDictionary(CMTime time, IntPtr allocator);
예제 #9
0
 extern static CMTimebaseError CMTimebaseGetTimeAndRate(IntPtr timebase, out CMTime time, out double rate);
예제 #10
0
		public extern static ulong ConvertHostTimeToSystemUnits (CMTime hostTime);
예제 #11
0
		public CMClockError GetAnchorTime (out CMTime clockTime, out CMTime referenceClockTime)
		{
			return CMClockGetAnchorTime (Handle, out clockTime, out referenceClockTime);
		}
예제 #12
0
		extern static CMClockError CMClockGetAnchorTime (IntPtr clock, out CMTime outClockTime, out CMTime outReferenceClockTime);
예제 #13
0
		public static CMTime ConvertTime (CMTime time, CMClockOrTimebase from, CMClockOrTimebase to)
		{
			if (from == null)
				throw new ArgumentNullException ("from");
			if (to == null)
				throw new ArgumentNullException ("to");

			return CMSyncConvertTime (time, from.Handle, to.Handle);
		}
예제 #14
0
		extern static CMTime CMSyncConvertTime (CMTime time, IntPtr fromClockOrTimebase, IntPtr toClockOrTimebase);
예제 #15
0
		public static CMSyncError GetRelativeRateAndAnchorTime (CMClockOrTimebase clockOrTimebaseA, CMClockOrTimebase clockOrTimebaseB, out double relativeRate, out CMTime timeA, out CMTime timeB)
		{
			if (clockOrTimebaseA == null)
				throw new ArgumentNullException ("clockOrTimebaseA");

			if (clockOrTimebaseB == null)
				throw new ArgumentNullException ("clockOrTimebaseB");

			return CMSyncGetRelativeRateAndAnchorTime (clockOrTimebaseA.Handle, clockOrTimebaseB.handle, out relativeRate, out timeA, out timeB);
		}
예제 #16
0
 extern static CMTime CMTimeConvertScale(CMTime time, int newScale, CMTimeRoundingMethod method);
예제 #17
0
 extern static CMTime CMTimeMinimum(CMTime time1, CMTime time2);
예제 #18
0
 public CMTimebaseError GetTimeAndRate(out CMTime time, out double rate)
 {
     return(CMTimebaseGetTimeAndRate(Handle, out time, out rate));
 }
예제 #19
0
 public int SetOutputPresentationTimeStamp(CMTime outputPresentationTimeStamp)
 {
     return CMSampleBufferSetOutputPresentationTimeStamp (handle, outputPresentationTimeStamp);
 }
예제 #20
0
 extern static CMTimebaseError CMTimebaseSetRateAndAnchorTime(IntPtr timebase, double rate, CMTime timebaseTime, CMTime immediateMasterTime);
예제 #21
0
 static extern CMTime CMTimeMaximum(CMTime time1, CMTime time2);
예제 #22
0
 public CMTimebaseError SetRateAndAnchorTime(double rate, CMTime timebaseTime, CMTime immediateMasterTime)
 {
     return(CMTimebaseSetRateAndAnchorTime(Handle, rate, timebaseTime, immediateMasterTime));
 }
예제 #23
0
		public static CMTime Add (CMTime time1, CMTime time2)
		{
			return CMTimeAdd (time1, time2);
		}
예제 #24
0
 extern static CMTimebaseError CMTimebaseSetTimerNextFireTime(IntPtr timebase, /*CFRunLoopTimerRef*/ IntPtr timer, CMTime fireTime, uint flags);
예제 #25
0
		public static CMTime Multiply (CMTime time, int multiplier)
		{
			return CMTimeMultiply (time, multiplier);
		}
예제 #26
0
 extern static CMSyncError CMSyncGetRelativeRateAndAnchorTime(IntPtr ofClockOrTimebase, IntPtr relativeToClockOrTimebase,
                                                              out double outRelativeRate, out CMTime outOfClockOrTimebaseAnchorTime, out CMTime outRelativeToClockOrTimebaseAnchorTime);
예제 #27
0
		extern static double CMTimeGetSeconds (CMTime time);
예제 #28
0
        public static CMSyncError GetRelativeRateAndAnchorTime(CMClockOrTimebase clockOrTimebaseA, CMClockOrTimebase clockOrTimebaseB, out double relativeRate, out CMTime timeA, out CMTime timeB)
        {
            if (clockOrTimebaseA == null)
            {
                throw new ArgumentNullException("clockOrTimebaseA");
            }

            if (clockOrTimebaseB == null)
            {
                throw new ArgumentNullException("clockOrTimebaseB");
            }

            return(CMSyncGetRelativeRateAndAnchorTime(clockOrTimebaseA.Handle, clockOrTimebaseB.handle, out relativeRate, out timeA, out timeB));
        }
예제 #29
0
		extern static IntPtr CMTimeCopyDescription (IntPtr allocator, CMTime time);
예제 #30
0
 extern static CMTime CMSyncConvertTime(CMTime time, IntPtr fromClockOrTimebase, IntPtr toClockOrTimebase);
예제 #31
0
 public static CMTime Multiply(CMTime time, double multiplier)
 {
     return(CMTimeMultiplyByFloat64(time, multiplier));
 }
예제 #32
0
 extern static CMClockError CMClockGetAnchorTime(IntPtr clock, out CMTime outClockTime, out CMTime outReferenceClockTime);
예제 #33
0
 extern static double CMTimeGetSeconds(CMTime time);
예제 #34
0
 public CMClockError GetAnchorTime(out CMTime clockTime, out CMTime referenceClockTime)
 {
     return(CMClockGetAnchorTime(Handle, out clockTime, out referenceClockTime));
 }
예제 #35
0
 public static CMTime GetMinimum(CMTime time1, CMTime time2)
 {
     return(CMTimeMinimum(time1, time2));
 }
예제 #36
0
 public extern static ulong ConvertHostTimeToSystemUnits(CMTime hostTime);
예제 #37
0
 extern static IntPtr CMTimeCopyDescription(IntPtr allocator, CMTime time);
예제 #38
0
 extern static CMSampleBufferError CMSampleBufferSetOutputPresentationTimeStamp(IntPtr handle, CMTime outputPresentationTimeStamp);
예제 #39
0
 static extern int CMSampleBufferSetOutputPresentationTimeStamp(IntPtr handle, CMTime outputPresentationTimeStamp);
예제 #40
0
 public int /*CMSampleBufferError*/ SetOutputPresentationTimeStamp(CMTime outputPresentationTimeStamp)
 {
     return((int)CMSampleBufferSetOutputPresentationTimeStamp(handle, outputPresentationTimeStamp));
 }
예제 #41
0
		public int /*CMSampleBufferError*/ SetOutputPresentationTimeStamp (CMTime outputPresentationTimeStamp)
		{
			return (int)CMSampleBufferSetOutputPresentationTimeStamp (handle, outputPresentationTimeStamp);
		}
예제 #42
0
 extern static CMTime CMTimeAbsoluteValue(CMTime time);
예제 #43
0
		extern static int CMTimeCompare (CMTime time1, CMTime time2);
예제 #44
0
 extern static int CMTimeCompare(CMTime time1, CMTime time2);
예제 #45
0
		extern static CMTime CMTimeAdd (CMTime addend1, CMTime addend2);
예제 #46
0
 public static int Compare(CMTime time1, CMTime time2)
 {
     return(CMTimeCompare(time1, time2));
 }
예제 #47
0
		extern static CMTime CMTimeSubtract (CMTime minuend, CMTime subtraend);
예제 #48
0
 extern static CMTime CMTimeAdd(CMTime addend1, CMTime addend2);
예제 #49
0
		extern static CMTime CMTimeMultiply (CMTime time, int multiplier);
예제 #50
0
 public static CMTime Add(CMTime time1, CMTime time2)
 {
     return(CMTimeAdd(time1, time2));
 }
예제 #51
0
		extern static CMTime CMTimeMultiplyByFloat64 (CMTime time, double multiplier);
예제 #52
0
 extern static CMTime CMTimeSubtract(CMTime minuend, CMTime subtraend);
예제 #53
0
		extern static CMTime CMTimeConvertScale (CMTime time, int newScale, CMTimeRoundingMethod method);
예제 #54
0
 public static CMTime Subtract(CMTime minuend, CMTime subtraend)
 {
     return(CMTimeSubtract(minuend, subtraend));
 }
예제 #55
0
		extern static CMTime CMTimeMinimum (CMTime time1, CMTime time2);
예제 #56
0
 extern static CMTime CMTimeMultiply(CMTime time, int multiplier);
예제 #57
0
		extern static IntPtr CMTimeCopyAsDictionary (CMTime time, IntPtr allocator);
예제 #58
0
 public static CMTime Multiply(CMTime time, int multiplier)
 {
     return(CMTimeMultiply(time, multiplier));
 }
예제 #59
0
		extern static CMTime CMTimeAbsoluteValue (CMTime time);
예제 #60
0
 extern static CMTime CMTimeMultiplyByFloat64(CMTime time, double multiplier);