この節に示す関数は、SDP セッション構造体から特定の値を検索し、見つかった値へのポインタを返します。
sdp_find_attribute() 関数は、attr パラメータで指定された属性リストから、name パラメータで指定された属性名を検索します。
戻り値: sdp_find_attribute() 関数は、関数が正常に完了したときに、name パラメータで指定された属性へのポインタ (sdp_attr_t *) を返します。それ以外の場合、sdp_find_attribute() 関数は NULL 値を返します。
この例では、不完全な SDP 記述にオーディオセクションが含まれています。
m=audio 49170 RTP/AVP 0 8 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=sendonly a=ptime:10000 a=maxptime:20000 /* * Assuming that above description is parsed using sdp_parse and that * the parsed structure is in "session" sdp_session_t structure. */ sdp_attr_t *ptime; sdp_attr_t *max_ptime; sdp_media_t *media = session->s_media; if ((ptime = sdp_find_attribute(media->m_attr, "ptime")) == NULL) /* ptime attribute not present */ else if((max_ptime = sdp_find_attribute(media->m_attr, "maxptime")) == NULL) /* max_ptime attribute not present */
sdp_find_media() 関数は、media パラメータで指定されたメディアリストから、name パラメータで指定されたメディアエントリを検索します。
戻り値: sdp_find_media() 関数は、関数が正常に完了したときに、name パラメータで指定されたメディアリストエントリへのポインタ (sdp_media_t *) を返します。それ以外の場合、sdp_find_media() 関数は NULL 値を返します。
この例では、不完全な SDP 記述に 2 つのセクション (オーディオセクションとビデオセクション) が含まれています。
m=audio 49170 RTP/AVP 0 8 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 /* * Assuming that above description is parsed using sdp_parse() and that * the parsed structure is in "session" sdp_session_t structure. */ sdp_media_t *my_media; my_media = sdp_find_media(session->s_media, "video"); /* * my_media now points to the structure containg video media section * information */
sdp_find_media_rtpmap() 関数は、media パラメータで指定されたメディア構造体の属性リストから、format パラメータで指定された形式エントリを検索します。
戻り値: sdp_find_media_rtpmap() 関数は、関数が正常に完了したときに、name パラメータで指定された形式エントリへのポインタ (sdp_attr_t *) を返します。それ以外の場合、sdp_find_media() 関数は NULL 値を返します。
この例では、不完全な SDP 記述に 2 つのセクション (オーディオセクションとビデオセクション) が含まれています。
m=audio 49170 RTP/AVP 0 8 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 /* * Assuming that above description is parsed using sdp_parse() and that * the parsed structure is in "session" sdp_session_t structure. */ sdp_media_t *video; sdp_attr_t *mpv; video = sdp_find_media(session->s_media, "video); mpv = sdp_find_media_rtpmap(video, "32"); /* * Now the attribute structure sdp_attr_t, mpv will be having * values from the attribute field "a=rtpmap:32 MPV/90000" */