01: /*
02: * SdpEncoder.java
03: *
04: * Created on January 14, 2002, 11:30 AM
05: */
06:
07: package javax.sdp;
08:
09: import java.io.*;
10:
11: /** A SdpEncoder serializes SessionDescription objects in a customizable manner.
12: * @author deruelle
13: * @version 1.0
14: */
15: public interface SdpEncoder {
16:
17: /** Specifies the character set to be used to display the session name and
18: * information data. By default, the ISO-10646
19: * character set in UTF-8 encoding is used. If a more compact representation
20: * is required, other character sets may be used
21: * such as ISO-8859-1 for Northern European languages.
22: * @param enc enc - name of character encoding to use for session name and
23: * information data
24: * @throws UnsupportedEncodingException if the named encoding is not supported
25: */
26: public void setEncoding(String enc)
27: throws UnsupportedEncodingException;
28:
29: /** Specifies whether to try to write "typed-time" fields instead of raw integer
30: * values. This
31: * makes the session description more readable but may have an adverse effect on
32: * serialization time.
33: *
34: * Ordinarily time values are given in numbers of seconds, but for readability
35: * they may be
36: * specified using logical units. From RFC 2327:
37: *
38: * To make announcements more compact, times may also be given in units of
39: * days, hours or minutes. The syntax for these is a number immediately
40: * followed by a single case-sensitive character. Fractional units are not
41: * allowed - a smaller unit should be used instead. The following unit
42: * specification characters are allowed:
43: *
44: * d - days (86400 seconds)
45: * h - minutes (3600 seconds)
46: * m - minutes (60 seconds)
47: * s - seconds (allowed for completeness but not recommended)
48: *
49: * @param flag if true this Outputter should emit "typed" time specs in preference to
50: * untyped times.
51: */
52: public void setTypedTime(boolean flag);
53:
54: /** Specifies whether to generate "a=rtpmap:" attributes for static RTP/AVP format strings.
55: * This is recommended but makes messages bigger. The default is not to write such
56: * attributes.
57: * @param flag if true "a=rtpmap:" attributes are generated for all "RTP/AVP" formats
58: */
59: public void setRtpmapAttribute(boolean flag);
60:
61: /** Write the specified SessionDescription to the output stream using the current
62: * settings.
63: * @param sd SessionDescription to serialize
64: * @param out OutputStream to write serialized SessionDescription to
65: * @throws IOException
66: */
67: public void output(SessionDescription sd, OutputStream out)
68: throws IOException;
69: }
|