override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo) { pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.WholeSamples | MFTOutputStreamInfoFlags.FixedSampleSize | MFTOutputStreamInfoFlags.ProvidesSamples; pStreamInfo.cbSize = m_Alignment; }
override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo) { pStreamInfo.cbSize = m_cbImageSize; pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.WholeSamples | MFTOutputStreamInfoFlags.SingleSamplePerBuffer | MFTOutputStreamInfoFlags.FixedSampleSize; }
/// <summary> /// Return settings to describe output stream. This should get the buffer /// requirements and other information for an output stream. /// (see IMFTransform::GetOutputStreamInfo). /// /// An override of the abstract version in MFTBase_Sync. /// </summary> /// <param name="pStreamInfo">The struct where the parameters get set.</param> override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo) { // the code below tells the caller what we do pStreamInfo.cbSize = 0; // MFT_OUTPUT_STREAM_PROVIDES_SAMPLES - The MFT provides the output samples // for this stream, either by allocating them internally or by operating // directly on the input samples. The MFT cannot use output samples provided // by the client for this stream. If this flag is not set, the MFT must // set cbSize to a nonzero value in the MFT_OUTPUT_STREAM_INFO structure, // so that the client can allocate the correct buffer size. For more information, // see IMFTransform::GetOutputStreamInfo. This flag cannot be combined with // the MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES flag. pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.ProvidesSamples; // Note: There are many other flags we could set here but because we are doing // nothing to the sample (other than counting it) we do not need them. }
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= /// <summary> /// Return settings to describe output stream. This should get the buffer /// requirements and other information for an output stream. /// (see IMFTransform::GetOutputStreamInfo). /// /// An override of the abstract version in TantaMFTBase_Sync. /// </summary> /// <param name="pStreamInfo">The struct where the parameters get set.</param> /// <history> /// 01 Nov 18 Cynic - Ported In /// </history> override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo) { // return the image size pStreamInfo.cbSize = m_cbImageSize; // MFT_OUTPUT_STREAM_WHOLE_SAMPLES - Each media sample(IMFSample interface) of // output data from the MFT contains complete, unbroken units of data. // MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER - Each output sample contains // exactly one unit of data // MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE - All output samples are the same size. pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.WholeSamples | MFTOutputStreamInfoFlags.SingleSamplePerBuffer | MFTOutputStreamInfoFlags.FixedSampleSize; // NOTE that we do NOT add the MFTOutputStreamInfoFlags.ProvidesSamples flag // since we do not do inplace processing here or create our own samples }
/// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= /// <summary> /// Return settings to describe output stream. This should get the buffer /// requirements and other information for an output stream. /// (see IMFTransform::GetOutputStreamInfo). /// /// An override of the abstract version in TantaMFTBase_Async. /// </summary> /// <param name="pStreamInfo">The struct where the parameters get set.</param> /// <history> /// 01 Nov 18 Cynic - Ported In /// </history> override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo) { // return the image size pStreamInfo.cbSize = m_cbImageSize; // MFT_OUTPUT_STREAM_WHOLE_SAMPLES - Each media sample(IMFSample interface) of // output data from the MFT contains complete, unbroken units of data. // MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER - Each output sample contains // exactly one unit of data // MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE - All output samples are the same size. // MFT_OUTPUT_STREAM_PROVIDES_SAMPLES - The MFT provides the output samples // for this stream, either by allocating them internally or by operating // directly on the input samples. The MFT cannot use output samples provided // by the client for this stream. If this flag is not set, the MFT must // set cbSize to a nonzero value in the MFT_OUTPUT_STREAM_INFO structure, // so that the client can allocate the correct buffer size.For more information, // see IMFTransform::GetOutputStreamInfo. This flag cannot be combined with // the MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES flag. pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.WholeSamples | MFTOutputStreamInfoFlags.SingleSamplePerBuffer | MFTOutputStreamInfoFlags.FixedSampleSize | MFTOutputStreamInfoFlags.ProvidesSamples; }
override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo) { pStreamInfo.cbSize = 0; pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.ProvidesSamples; }