Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
MPEG1 packet player -------------------
See mpegdef.h for definitions of values.
The MPEG1 packet player is a filter supporting:
IFilter IMediaFilter
This filter has class id CLSID_Mpeg1PacketPlayer.
Media types -----------
It supports 2 input pins which accept the following 2 media types respectively:
Major type Subtype Props ----------------------------------------------------------------- MEDIATYPE_Audio MEDIASUBTYPE_Mpeg1PacketAudio None MEDIATYPE_Video MEDIASUBTYPE_Mpeg1PacketVideo Default video props
These 2 pins accept samples (see ISO11172) which contain a packet() format data (starting with a packet_start_code) and stream ids consistent with audio and video streams respectively. Each sample start must start with the a packet_start_code
There is 1 output pin (connected to the renderer?) supporting the following media type:
Major type Subtype Props ------------------------------------------------------------------ MEDITTYPE_Video MEDIATYPE_NULL Default video props
The input pin of the renderer must support IOverlayWindow.
Filter properties -----------------
Timing ------
The first packet received after going into 'Paused' from 'inactive' state MUST have a PTS. This PTS (pts(0)) will is saved. When 'Run' is issued we have 3 numbers:
The time stamp on the first smaple - ts(1) The current time - ts(2)
We must set the STC to pts(0) - (ts(1) - ts(2)) - all in appropriate units. This will cause the first sample to be presented the right time after the play starts.
While playing we must maintain the different between the STC and the current time - which we will also remember.
While paused we have to count the time Paused and add it to the STC, Reference clock time difference.
The ability to synch the stream to the system clock will be determined by how frequently we get packets with PTSs in them because we'll set the STC on a per sample basis.
The client can change the synch by changing the sample start times.
When the device is held open ----------------------------
For now this be be whenever the output overlay pin is connected.
|