A streaming measurement agent designed to experience, measure, and report
on a media stream as an actual end user would experience the stream.
Preferably, agent resides transparently within a streaming media player
itself so that it can monitor stream packet flows within the player as
the measured streams are being played. In an illustrative embodiment, the
agent comprises a performance monitoring module (PMM), which is software
that resides in an interface between an existing core module and a
renderer of a media player. The agent PMM intercepts each useful packet
as it goes from the core to the renderer and, as a result, it is able to
compute quality metrics about the playback. The agent functions
"transparently" to the media player by presenting the core with an
application programming interface (API) that emulates the API that the
renderer normally presents to the core. Thus, when the core believes it
is calling the renderer, it is actually calling the agent PMM, which can
then receive all the packets from the core and process them. After
computing relevant performance metrics using the packets it receives, the
agent PMM calls the renderer. A set of performance agents can be managed
by a service provider to enable a content provider to determine how a
stream is perceived by end users.