プログラミングインタフェース

SDP セッション構造体のシャットダウン

この節に示す関数は、次の機能を実行します。

SDP セッション構造体からのフィールドの削除

int sdp_delete_all_field(sdp_session_t *session, const char field);

sdp_delete_all_field() 関数は、field パラメータで指定された SDP フィールドのすべての出現箇所を SDP 構造体から削除します。たとえば、SDP 構造体に 3 つの帯域幅 (b=) フィールドがある場合に、field パラメータに SDP_BANDWIDTH_FIELD という値を指定してこの関数を呼び出すと、セッション構造体から 3 つの 帯域幅フィールドがすべて削除されます。

戻り値: sdp_delete_all_field() 関数は、関数が正常に完了したときに 0 を返します。session 引数が NULL であるか、フィールドタイプが不明の場合は、EINVAL を返します。errno の値は、エラーが発生した場合でも変化しません。

SDP メディア構造体からのフィールドの削除

int sdp_delete_all_media_field(sdp_media_t *media, const char field);

sdp_delete_all_media_field() 関数は、field パラメータで指定された SDP フィールドのすべての出現箇所を SDP メディア構造体から削除します。

戻り値: sdp_delete_all_media_field() 関数は、関数が正常に完了したときに 0 を返します。session 引数が NULL であるか、フィールドタイプが不明の場合は、EINVAL を返します。errno の値は、エラーが発生した場合でも変化しません。

SDP メディア構造体からのメディアの削除

int sdp_delete_media(sdp_media_t **l_media, sdp_media_t *media);

sdp_delete_media() 関数は、media パラメータで指定されたメディアエントリをメディアリストから削除します。この関数は、sdp_find_media() 関数を使用して、指定されたメディアエントリを検索します。この関数は、メディアエントリを削除したあとで、メディア構造体に割り当てられていたメモリーを解放します。

戻り値: sdp_delete_media() 関数は、関数が正常に完了したときに 0 を返します。session 引数が NULL であるか、必須の引数が存在しない場合は、EINVAL を返します。errno の値は、エラーが発生した場合でも変化しません。

SDP メディア構造体からの属性の削除

int sdp_delete_attribute(sdp_attr_t **l_attr, sdp_attr_t *attr);

sdp_delete_attribute() 関数は、attr パラメータで指定された属性をメディアリストから削除します。この関数は、sdp_find_media_rtpmap() 関数または sdp_find_attribute() 関数を呼び出して、指定された属性を検索します。この関数は、属性を削除したあとで、属性構造体に割り当てられていたメモリーを解放します。

戻り値: sdp_delete_attribute() 関数は、関数が正常に完了したときに 0 を返します。session 引数が NULL であるか、必須の引数が存在しない場合は、EINVAL を返します。errno の値は、エラーが発生した場合でも変化しません。

SDP メディア構造体からの属性の削除

void sdp_free_session(sdp_session_t *session);

sdp_free_session() 関数は、session パラメータで指定されたセッションを破棄し、その構造体に関連付けられたリソースを解放します。