Media Processing Typical stages that are involved in the media processing are (I) Demultiplexing, (ii) transcoding, (iii) multiplexing, and (iv) rendering. In the demultiplexing stage different streams (say audio and video) of the media are demultiplexed or extrac ted from a composite stream. Transcoding involves a change in the encoding format of the media. During multiplexing different streams of the media are multiplexed in to a single stream. Rendering involves the presentation of the media plugin interface for multiplexing demultiplexing codec rendering JMF defines the interface PlugIn to represent a media-processing stage. PlugIns are of following types. They are (i) MULTIPLEXER, (ii) DEMULTIPLXER, (iii) CODEC, (iv) EFFECT and (v) RENDERER. The interface Processor abstracts a media processing class. It extends Player an d allows programmatic control over the media processing stages. Processor introduces a state called Configuring wherein you can set the Codec and renderer PlugIns. The output of a Processor can be taken and can be handed over to (i) another Processor for further processing or (ii) to a Player for playback or (ii i) to a DataSink for media transmission or storage. player interface to play videos datasink to rendering media to destination The class Manager acts as a factory for creating the JMF objects such as DataSource, DataSink, Player, Processor, cloneableDataSource, and MergedDataSource JMF RTP API JMF supports a protocol called Real-time Transport Protocol (RTP) for media transmission and reception [rtp]. RTP is a transport layer protocol and is typic ally used above the UDP layer. RTP packets has (i) time stamping to indicate the time instant at which the media carried by the packet has to be played, (ii) sequence number that can be used for the ordered delivery of the packets, (iii) identific ation of the media source and (iv) payload media format identification. A RTP session consists of a set of applications exchanging media using the RTP. Each of these applications is called a participant. Every participant uses an ob ject called RTPManager to co-ordinate the RTP session on its behalf. Media streams exchanged in a RTP session are called RTPStreams. The RTPStreams can be of two types, sendStream and ReceiveStream. The JMF RTP API allows us to construct RTPManagers using which we can send and receive RTPStreams among the participating JMF applications.