📄 amstream.cs
字号:
[MarshalAs(UnmanagedType.Interface)] out IStreamSample ppNewSample
);
[PreserveSig]
new int SendEndOfStream(
int dwFlags
);
#endregion
[PreserveSig]
int GetFormat(
[Out, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType,
[In] int dwFlags
);
[PreserveSig]
int SetFormat(
[In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType,
[In] int dwFlags
);
[PreserveSig]
int CreateSample(
[In] int lSampleSize,
[In] IntPtr pbBuffer,
[In] int dwFlags,
[In, MarshalAs(UnmanagedType.IUnknown)] object pUnkOuter,
[MarshalAs(UnmanagedType.Interface)] out IAMMediaTypeSample ppAMMediaTypeSample
);
[PreserveSig]
int GetStreamAllocatorRequirements(
out AllocatorProperties pProps
);
[PreserveSig]
int SetStreamAllocatorRequirements(
[In, MarshalAs(UnmanagedType.LPStruct)] AllocatorProperties pProps
);
}
[ComImport,
InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
Guid("AB6B4AFB-F6E4-11D0-900D-00C04FD9189D")]
public interface IAMMediaTypeSample : IStreamSample
{
#region IStreamSample Methods
[PreserveSig]
new int GetMediaStream(
[MarshalAs(UnmanagedType.Interface)] out IMediaStream ppMediaStream
);
[PreserveSig]
new int GetSampleTimes(
out long pStartTime,
out long pEndTime,
out long pCurrentTime
);
[PreserveSig]
new int SetSampleTimes(
[In] DsLong pStartTime,
[In] DsLong pEndTime
);
[PreserveSig]
new int Update(
[In] SSUpdate dwFlags,
[In] IntPtr hEvent,
[In] IntPtr pfnAPC,
[In] IntPtr dwAPCData
);
[PreserveSig]
new int CompletionStatus(
[In] CompletionStatusFlags dwFlags,
[In] int dwMilliseconds
);
#endregion
[PreserveSig]
int SetPointer(
[In] IntPtr pBuffer,
[In] int lSize
);
[PreserveSig]
int GetPointer(
[Out] out IntPtr ppBuffer
);
[PreserveSig]
int GetSize();
[PreserveSig]
int GetTime(
out long pTimeStart,
out long pTimeEnd
);
[PreserveSig]
int SetTime(
[In] DsLong pTimeStart,
[In] DsLong pTimeEnd
);
[PreserveSig]
int IsSyncPoint();
[PreserveSig]
int SetSyncPoint(
[In, MarshalAs(UnmanagedType.Bool)] bool IsSyncPoint
);
[PreserveSig]
int IsPreroll();
[PreserveSig]
int SetPreroll(
[In, MarshalAs(UnmanagedType.Bool)] bool IsPreroll
);
[PreserveSig]
int GetActualDataLength();
[PreserveSig]
int SetActualDataLength(
int Size
);
[PreserveSig]
int GetMediaType(
out AMMediaType ppMediaType
);
[PreserveSig]
int SetMediaType(
[In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType pMediaType
);
[PreserveSig]
int IsDiscontinuity();
[PreserveSig]
int SetDiscontinuity(
[In, MarshalAs(UnmanagedType.Bool)] bool Discontinuity
);
[PreserveSig]
int GetMediaTime(
out long pTimeStart,
out long pTimeEnd
);
[PreserveSig]
int SetMediaTime(
[In] DsLong pTimeStart,
[In] DsLong pTimeEnd
);
}
[ComImport,
Guid("BEBE595E-9A6F-11D0-8FDE-00C04FD9189D"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IMediaStreamFilter : IBaseFilter
{
#region IPersist Methods
[PreserveSig]
new int GetClassID(
out Guid pClassID
);
#endregion
#region IMediaFilter Methods
[PreserveSig]
new int Stop();
[PreserveSig]
new int Pause();
[PreserveSig]
new int Run(
[In] long tStart
);
[PreserveSig]
new int GetState(
[In] int dwMilliSecsTimeout,
out FilterState State
);
[PreserveSig]
new int SetSyncSource(
[In, MarshalAs(UnmanagedType.Interface)] IReferenceClock pClock
);
[PreserveSig]
new int GetSyncSource(
[MarshalAs(UnmanagedType.Interface)] out IReferenceClock pClock
);
#endregion
#region IBaseFilter Methods
[PreserveSig]
new int EnumPins(
[MarshalAs(UnmanagedType.Interface)] out IEnumPins ppEnum
);
[PreserveSig]
new int FindPin(
[In, MarshalAs(UnmanagedType.LPWStr)] string Id,
[MarshalAs(UnmanagedType.Interface)] out IPin ppPin
);
[PreserveSig]
new int QueryFilterInfo(
out FilterInfo pInfo
);
[PreserveSig]
new int JoinFilterGraph(
[In, MarshalAs(UnmanagedType.Interface)] IFilterGraph pGraph,
[In, MarshalAs(UnmanagedType.LPWStr)] string pName
);
[PreserveSig]
new int QueryVendorInfo(
[MarshalAs(UnmanagedType.LPWStr)] out string pVendorInfo
);
#endregion
[PreserveSig]
int AddMediaStream(
[In, MarshalAs(UnmanagedType.Interface)] IAMMediaStream pAMMediaStream
);
[PreserveSig]
int GetMediaStream(
[In, MarshalAs(UnmanagedType.LPStruct)] Guid idPurpose,
[MarshalAs(UnmanagedType.Interface)] out IMediaStream ppMediaStream
);
[PreserveSig]
int EnumMediaStreams(
[In] int Index,
[MarshalAs(UnmanagedType.Interface)] out IMediaStream ppMediaStream
);
[PreserveSig]
int SupportSeeking(
[In, MarshalAs(UnmanagedType.Bool)] bool bRenderer
);
[PreserveSig]
int ReferenceTimeToStreamTime(
[In, Out] ref long pTime
);
[PreserveSig]
int GetCurrentStreamTime(
out long pCurrentStreamTime
);
[PreserveSig]
int WaitUntil(
[In] long WaitStreamTime
);
[PreserveSig]
int Flush(
[In, MarshalAs(UnmanagedType.Bool)] bool bCancelEOS
);
[PreserveSig]
int EndOfStream();
}
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -