AVStream: HW decoder avstream filter connection problem

Discussion in 'Windows Vista Drivers' started by WDD, Jun 29, 2004.

  1. WDD

    WDD Guest

    Hi All,


    I have a HW Decoder filter that I'm trying to connect to.

    The FIlter exposes MPEG-2 PS datarange support:

    Major Type: Stream - Sub Type: MPEG2_PROGRAM - Format: None


    const KSDATARANGE MPEG2PS = {

    sizeof(KSDATARANGE),
    0,
    0,
    0,
    STATICGUIDOF(KSDATAFORMAT_TYPE_STREAM),
    STATICGUIDOF(KSDATAFORMAT_TYPE_MPEG2_PROGRAM),
    STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)

    };

    I can connect my Encoder filter which exposes MPEG-2 PS datarange
    support identical to above.

    When I attempt to connect a File Source Async, which outputs:

    Major Type: Stream - Sub Type: MPEG2_PROGRAM - Format: GUID_NULL
    Major Type: Stream - Sub Type: GUID_NULL - Format: GUID_NULL


    I notice a difference in Format specifier where the Async is GUID_NULL
    and my filters are NONE.

    What gives? Should I be declaring my filter with GUID_NULL? If so where
    is the definition of this GUID, can't find it.

    Thanks

    WDD
     
    WDD, Jun 29, 2004
    #1
    1. Advertisements

  2. WDD

    Max Paklin Guest

    This won't work.
    File Reader expects a pin that connects to its output to support
    IAsyncReader interface, which pins of KS Proxy don't support.
    Whatever format you choose it won't work.

    -- Max.
     
    Max Paklin, Jun 29, 2004
    #2
    1. Advertisements

  3. WDD

    WDD Guest

    Hi Max,

    Nice to hear from you again.

    Are you saying I can't receieve MPEG2-PS from File -> Decoder filter.

    Has anyone else tried this with intermediate filters.
     
    WDD, Jun 29, 2004
    #3
  4. WDD

    Max Paklin Guest

    No you can't if you connect filters (file reader and decoder) directly.

    You can write simple pull-to-push filter to do pulling for you with
    specified data rate or VBR filter, which would look at time stamps. This is
    1-2 days project if you know what you are doing.

    -- Max.
     
    Max Paklin, Jul 2, 2004
    #4
  5. WDD

    WDD Guest

    What if I use another method? If any other method is the norm.

    I record the MPEG2-PS via the Stream Buffer Engine Sink.

    What are alternatives to writing a Pull to Push filter?
     
    WDD, Jul 6, 2004
    #5
  6. WDD

    Max Paklin Guest

    Sorry, I don't know what Stream Buffer Engine Sink is.

    Another viable alternative would be to write KS Proxy interface handler. I
    can imagine a case when you could write something like that and be loaded in
    the graph when upstream file source queries for IAsyncReader.
    The downside of this approach is that you will be writing a KS proxy
    extension for an interface that you don't own. This is probably OK in this
    particular case, but no good in general.

    Also this little component could be pretty tough to write.

    -- Max.
     
    Max Paklin, Jul 6, 2004
    #6
  7. WDD

    WDD Guest

    I've started work on the Pull to Push filter.

    What base class should be used?

    I'm using CTransInPlace with the intent to override the default input
    pin and use CPullPin class.

    Thanks
     
    WDD, Jul 29, 2004
    #7
  8. WDD

    Max Paklin Guest

    I wrote once something like this. I don't remember why but I couldn't use
    CPullPin so I ended up implementing everything from scratch, i.e. using
    CBaseInputPin and CBaseOutputPin.

    -- Max.
     
    Max Paklin, Jul 30, 2004
    #8
  9. WDD

    WDD Guest

    Ayeee ;)



     
    WDD, Jul 30, 2004
    #9
  10. WDD

    WDD Guest

    The pull to push filter is brutally slow and hampers the system
    performance when sending the file to a HW decoder.

    It's based off of a CBaseFilter class.

    Any ideas why or if you may have experienced something like this.
     
    WDD, Aug 16, 2004
    #10
  11. WDD

    Max Paklin Guest

    :-O
    Well... given the amount of details in your question the only answer I can
    give is the following. You must have a bug somewhere it your code.

    -- Max.
     
    Max Paklin, Aug 16, 2004
    #11
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.