AVStream driver MPEG 2 PS output pin

hi,

I need to create an output pin in the AVSTream driver for a capture device. The required output pin format is MPEG 2 PS
(Program Stream).

when I try to connect with the MPEG 2 demux, the demux is connected to it’s input pin, but is not generating it’s output pin.

Any help in this regard is highly appreicated…

I am giving the following data range mapping to KSDATARANGE:
(since i was not sure of any other DATARANGE specific to MPEG 2 PS)

sizeof( KSDATARANGE), // FormatSize
0, // Flags - (N/A)
MPEG2PS_SAMPLE_SIZE, // SampleSize
0, // Reserved
{ STATICGUIDOF (KSDATAFORMAT_TYPE_STREAM) },// MajorType
{ STATICGUIDOF (KSDATAFORMAT_TYPE_MPEG2_PROGRAM) },// SubType
{ STATICGUIDOF (KSDATAFORMAT_SPECIFIER_NONE)

IS There any other information additional required for the data range to get the MPEG2PS OUTPUT PIN

The Demux instead gives the filter properties menu such as stream_id_mapping, and option to create a output pin.

This is giving an impression that it is looking forward for many more information at the driver output pin.

Question:

  1. I could see the Data range for KS_DATARANGE_MPEG2_VIDEO, & others but is there any appropriate for MPEG 2 ps.
    Is there any specific structure for Data Range that is required for the MPEG 2 PS.

  2. Also, Is it mandatory to have the Intersect Handler & DispatchSetFormat for this type of Stream output formats. Can some one clarify on this…

Thanks,

xxxxx@techie.com wrote:

I need to create an output pin in the AVSTream driver for a capture device. The required output pin format is MPEG 2 PS (Program Stream).

when I try to connect with the MPEG 2 demux, the demux is connected to it’s input pin, but is not generating it’s output pin.

Any help in this regard is highly appreicated…

I am giving the following data range mapping to KSDATARANGE:
(since i was not sure of any other DATARANGE specific to MPEG 2 PS)

sizeof( KSDATARANGE), // FormatSize
0, // Flags - (N/A)
MPEG2PS_SAMPLE_SIZE, // SampleSize
0, // Reserved
{ STATICGUIDOF (KSDATAFORMAT_TYPE_STREAM) },// MajorType
{ STATICGUIDOF (KSDATAFORMAT_TYPE_MPEG2_PROGRAM) },// SubType
{ STATICGUIDOF (KSDATAFORMAT_SPECIFIER_NONE)

IS There any other information additional required for the data range to get the MPEG2PS OUTPUT PIN

The Demux instead gives the filter properties menu such as stream_id_mapping, and option to create a output pin.

This is giving an impression that it is looking forward for many more information at the driver output pin.

Yes. The MPEG demux needs to see the first few bytes of the stream to
know which output pins to create. Are you able to deliver packets while
in KSSTATE_PAUSE?

Question:

  1. I could see the Data range for KS_DATARANGE_MPEG2_VIDEO, & others but is there any appropriate for MPEG 2 ps.

No. When the major type is “stream”, you don’t have any more specific
information.

Is there any specific structure for Data Range that is required for the MPEG 2 PS.

No. Really, what information would you provide?

  1. Also, Is it mandatory to have the Intersect Handler & DispatchSetFormat for this type of Stream output formats. Can some one clarify on this…

The docs talk about this. IntersectHandler can be NULL if you use
KSDATAFORMAT_SPECIFIER_NONE. SetFormat can also be NULIL.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Are you using Graphedt to build the graph? If so sometimes you need to refresh the graph( Hit F5) to get the MS Demux to show an output pin, after you have connected it.

-decoder

Thanks a lot Tim for your valuable pointers…

>The MPEG demux needs to see the first few bytes of the stream to
>know which output pins to create. Are you able to deliver packets while
>in KSSTATE_PAUSE?

Assuming, AVSttream driver o/p pin MPEG2 ps is connected to MPEG 2 DEMUX and this having no output pins,

  1. Does this means only when the graph is run, only then the MPEG demux will create an output pin…??

Becasue only when the graph is run, the KSSTATE will transition from KSSTATE_STOP–>ACQUIRE–>PAUSE–>RUN and in between encounter KSSTATE_PAUSE, when few byte streams need to be delivered to the MPEG 2 DEMUX… Is my understandng correct.?

  1. Is there any particular no. of frames / no. of Packs of PS stream to be send to the MPEG 2 DEMUX for creating the output pin.

  2. if so how many PES- Audio / PES-Video packets should the byte stream contain, so that the DEMUX creates an output Video ES(Elementary stream) and Audio ES.

Can you please throw some light on this…

Thanks once again for your Help.