silenceboy
9th February 2006, 15:39
I made a mpeg2 ts paser lib which supporting DVB, and use it to develop a MPEG2 TS Push Demultiplexer filter (DShow), refering to MS MPEG2 Demultiplexer described in MSDN.
It can work roughly. But there are still many details cann't be found from documents and open source codes.
I tested in GraphEdit:
MS DVB-T Network provider->DVB Tuner->DVB Capture->TS Push Demuxer->A/V MPEG decoder->VMR/Audio Renderer
(Use AudioRenderer as reference clock.)
Problem:
1. I use TIF filter to connect to TIF pin of MS Demuxer's, it will automatically map several PIDs to that pin. However, when I do so with my demuxer, nothing was mapped, so I have to do it manually. Why?
2. Suppose there is only one program including one video ES and one Audio ES. How could I use their PCR and PTS/DTS for IReferenceClock and Video/Audio output IMediaSample? How could I solve lipSync issue?
I set start and end time of output IMediaSample to NULL, it can preview, but lipSync. I set start time to PTS (converted to REFERENCETIME) and end time to PTS + 1, still lipSync.
It can work roughly. But there are still many details cann't be found from documents and open source codes.
I tested in GraphEdit:
MS DVB-T Network provider->DVB Tuner->DVB Capture->TS Push Demuxer->A/V MPEG decoder->VMR/Audio Renderer
(Use AudioRenderer as reference clock.)
Problem:
1. I use TIF filter to connect to TIF pin of MS Demuxer's, it will automatically map several PIDs to that pin. However, when I do so with my demuxer, nothing was mapped, so I have to do it manually. Why?
2. Suppose there is only one program including one video ES and one Audio ES. How could I use their PCR and PTS/DTS for IReferenceClock and Video/Audio output IMediaSample? How could I solve lipSync issue?
I set start and end time of output IMediaSample to NULL, it can preview, but lipSync. I set start time to PTS (converted to REFERENCETIME) and end time to PTS + 1, still lipSync.