||All public functions are not thread-safe.
Called on the task queue of MDSM only.
||A wrapper around AudioSink to provide the interface of MediaSink.
||A container class to make it easier to pass the playback info all the
way to DecodedStreamGraphListener from DecodedStream.
||Worker thread only members.
||A consumer of audio/video data which plays audio and video tracks and
manages A/V sync between them.
A typical sink sends audio/video outputs to the speaker and screen.
However, there are also sinks which capture the output of an media element
and send the output to a MediaStream.
This class is used to move A/V sync management and audio/video rendering
out of MDSM so it is possible for subclasses to do external rendering using
specific hardware which is required by TV projects and CDM.
Note this class is not thread-safe and should be called from the state
machine thread only.