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.