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.
 
 
 
 
 
 

75 lines
2.3 KiB

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.