Esempio n. 1
0
 override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo)
 {
     pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.WholeSamples |
                           MFTOutputStreamInfoFlags.FixedSampleSize |
                           MFTOutputStreamInfoFlags.ProvidesSamples;
     pStreamInfo.cbSize = m_Alignment;
 }
Esempio n. 2
0
 override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo)
 {
     pStreamInfo.cbSize  = m_cbImageSize;
     pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.WholeSamples |
                           MFTOutputStreamInfoFlags.SingleSamplePerBuffer |
                           MFTOutputStreamInfoFlags.FixedSampleSize;
 }
Esempio n. 3
0
 /// <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.
 }
Esempio n. 4
0
        /// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
        /// <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
        }
Esempio n. 5
0
        /// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
        /// <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;
        }
Esempio n. 6
0
 override protected void OnGetOutputStreamInfo(ref MFTOutputStreamInfo pStreamInfo)
 {
     pStreamInfo.cbSize  = 0;
     pStreamInfo.dwFlags = MFTOutputStreamInfoFlags.ProvidesSamples;
 }