/*
* @(#)RTPControl.java 1.7 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media.rtp;
import java.lang.*;
import java.util.*;
import javax.media.Format;
import javax.media.Control;
import java.awt.Component;
/**
* This interface is typically implemented by a RTP datasource. This
* interface will be used to control access to various RTP information
* via the datasource. e.g. dynamic payload-->EncodingName mapping can
* be established using this control. Reception statistics and current
* format being streamed on this datasource can also be queried.
*/
public interface RTPControl extends Control{
/**
* This method is used to add a dynamic payload ---> Format
* mapping in the RTPSessionManager. The RTPSessionManager maintains
* all static payload numbers and their correspnding Formats as
* mentioned in the Audio/Video profile document. Using the plugin
* packethandler interface, a user may plugin his own packetizer or
* depacketizer to handle RTP streams of a proprietary format using
* dynamic payload numbers as specified in the AV profile. Before
* streaming payload of a dynamic nature, a Format object needs to
* be created for the dynamic payload and associated with a dynamic
* payload number.
*/
public void addFormat(Format fmt,
int payload);
/**
* Query the RTP datasource for its data reception statistics
*/
public ReceptionStats getReceptionStats();
/**
* Query the RTP datasource for global RTP statistics
*/
public GlobalReceptionStats getGlobalStats();
/**
* Retrieves the Format object for the current stream. If this datasource
* has not received data as yet, null will be returned. This method
* provides a way for the application writer to query the datasource
* for the format it is currently streaming, since payload formats
* can be switched during the course of an RTP session.
*/
public Format getFormat();
/**
* Retrieves a complete list of all the formats set on this
* datasource. This is a collection of Format objects that
* were added by using addFormat() method.
*/
public Format[] getFormatList();
/**
* Retrieves a format corresponding to the payload as stored by
* the session manager.
*/
public Format getFormat(int payload);
}