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
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.
|