2 Replies Latest reply on Aug 19, 2014 10:33 AM by mmironov

    VQ filters with Source Reader

    aoooooooooon

      Hello,

       

      An assertion failure is caused by calling IMFTransform::ProcessInput for a VQ MFT instance with a sample returned by IMFSourceReader::ReadSample.

      > Expression: m_pipeline.IsRuning()

      vqassert.png

      It seems that video quality filters only supports the programming model using Media Data Pipeline.

      Overview of the Media Foundation Architecture (Windows)

      Is there any way to use VQ MFT with the other model?

       

      Thanks.

        • Re: VQ filters with Source Reader
          pinform

          You are right.  The video quality filters only support the programming model using Media Data Pipeline.

          However, AMD is soon releasing the AMD Media Framework (AMF) with Video quality filter support. You may find it suitable for your requirements.

          1 of 1 people found this helpful
            • Re: VQ filters with Source Reader
              mmironov

              Hi,

              It looks like you are trying to use VQ MFT outside of MF Pipeline. It can be done but you must use the same initialization sequence as Media Foundation does. The approximate order of calls will be:

              SetInputType()

              SetOutputType()

              ProcessMessage(MFT_MESSAGE_SET_D3D_MANAGER)

              ProcessMessage(MFT_MESSAGE_NOTIFY_START_OF_STREAM) 

              After that you must take in account that VQ MFT will be synchronous on WIn7 and a-synchronous on Win 8+.

              On Win 7 you can call ProcessInput() and ProcessOutput() and check returned error codes

              On Win8+ you must listen to events MFTransformNeedInput and MFTransformHaveOutput and call ProcessInput() and ProcessOutput() accordingly.

              The events can be received from IMFMediaEventGenerator::GetEvent(). This interface is implemented by VQ MFT.

              Good luck,

              Mikhail | AMD