📄 sdp.docs
字号:
/* -*- c -*- *//**@mainpage SDP Module@section sdp_meta Module Meta InformationThe @b sdp module provides a simple "C" parser interface for SDP [<a href="ftp://ftp.funet.fi/rfc/rfc2327.txt">RFC2327</a>], <em>SessionDescription Protocol</em>.@CONTACT Pekka Pessi <Pekka.Pessi@nokia.com>@STATUS Core library@LICENSE LGPLContributor(s):- Pekka Pessi <Pekka.Pessi@nokia.com>- Jari Selin <Jari.Selin@nokia.com>@section sdp_parser SDP ParserSDP parser parses an SDP message and converts it to internally used SDPdatatypes.Typically, the SDP parser is used as follows:@code sdp_parser parser = sdp_parse(home, message, len, 0); if (!sdp_session(parser)) { show(sdp_parsing_error(parser)); } else { sdp_session_t *sdp = sdp_session(parser);@endcode Act upon session description, then free the parser:@code } sdp_parser_free(parser);@endcodeThere are various flags indicating what kind of SDP variants parser accepts. The sanity check run after parsing can be disabled by including flag#sdp_f_insane. The parser can be used to parse syntactically vagueconfiguration files when using flag #sdp_f_config. The parser will thenaccept * for media, protocol and port, for instance.@todo strict (parser accepts some non-conforming SDP even with strict)@section sdp_printer SDP PrinterSDP printer converts internally used SDP datatypes to the standard SDPformat.Typically, the SDP printer is used as follows:@code char buffer[512]; sdp_printer printer = sdp_print(home, session, buffer, sizeof(buffer), 0); if (sdp_message(printer)) { char const *msg = sdp_message(printer); int msgsize = sdp_message_size(printer);@endcodeAt this point, application can use the SDP message contents, e.g., it cansend them to network, and then free the message:@code } else { show_critical_error(sdp_printing_error(printer)); } sdp_printer_free(printer);@endcode @section sdp_example ExampleExamples on using SDP parser can be found from @b sdp_test.c and @bnua.c. Here is an simple example, which decodes an SDP text in @aoriginal, increments the version number in the origin line, and encodesthe SDP description again to @a buf.@codeint increment_sdp_version(char buf[], int bsize, char const *original, int osize){ su_home_t home[1] = { SU_HOME_INIT(home) }; sdp_parser_t *parser = sdp_parse(home, original, osize, 0); sdp_printer_t *printer; int retval = 0; if (sdp_session(parser)) { sdp_session_t *sdp = sdp_session(parser); sdp->sdp_origin->o_version++; printer = sdp_print(home, sdp, buf, bsize, 0); if (sdp_message(printer)) { retval = sdp_message_size(printer); } else { fprintf(stderr, "increment_sdp_version: %s\n", sdp_printing_error(printer)); } sdp_printer_free(printer); } else { fprintf(stderr, "increment_sdp_version: %s\n", sdp_parsing_error(p)); } sdp_parser_free(parser); su_home_deinit(home); return retval;}@endcode*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -