19#define SKW_ROOM_PUBLICATION_ID_SIZE (36+1)
22#define SKW_ROOM_PUBLICATION_METADATA_SIZE (1024+1)
89#define SKW_ROOM_PUBLICATION_UPDATE_METADATA_PARAMS_INIT(...) {__VA_ARGS__}
99#define SKW_ROOM_PUBLICATION_SEND_DATA_PARAMS_INIT(...) {__VA_ARGS__}
110#define SKW_ROOM_PUBLICATION_SEND_FRAME_PARAMS_INIT(...) {__VA_ARGS__}
char skw_room_member_id_t[SKW_ROOM_MEMBER_ID_SIZE]
MemberIDを格納する文字列型(NUL終端を含む)。
Definition member.h:60
skw_room_publication_err_t skw_room_publication_send_video_frame(const skw_room_publication_send_frame_params_t *params)
PublishしたVideoStreamへエンコード済みフレーム(H.264)を送信します。Streamが確立している全subscriberへ送信されます。 subscriberがいない場合は何も送信せ...
void(* skw_room_publication_on_keyframe_request_t)(const char *publication_id)
キーフレームの生成要求を受け取るハンドラ。subscriberが映像を復号できないときに呼ばれます。
Definition publication.h:114
char skw_room_publication_metadata_t[SKW_ROOM_PUBLICATION_METADATA_SIZE]
PublicationMetadataを格納する文字列型(NUL終端を含む)。
Definition publication.h:70
skw_room_publication_err_t skw_room_publication_register_handlers(const skw_room_publication_handlers_t *handlers)
Publicationのイベント通知を受け取るハンドラを登録します。登録できる集合は単一で、再登録すると上書きされます。
#define SKW_ROOM_PUBLICATION_METADATA_SIZE
PublicationMetadataを格納するバッファのサイズ(NUL終端を含む)。
Definition publication.h:22
skw_room_publication_content_type_t
Publicationのコンテンツ種別。
Definition publication.h:61
@ SKW_ROOM_PUBLICATION_CONTENT_TYPE_AUDIO
音声
Definition publication.h:63
@ SKW_ROOM_PUBLICATION_CONTENT_TYPE_VIDEO
映像
Definition publication.h:62
@ SKW_ROOM_PUBLICATION_CONTENT_TYPE_DATA
データ
Definition publication.h:64
#define SKW_ROOM_PUBLICATION_ID_SIZE
PublicationIDを格納するバッファのサイズ(NUL終端を含む)。
Definition publication.h:19
skw_room_publication_err_t skw_room_publication_update_metadata(const skw_room_publication_update_metadata_params_t *params)
PublicationのMetadataを更新します。
skw_room_publication_err_t skw_room_publication_send_audio_frame(const skw_room_publication_send_frame_params_t *params)
PublishしたAudioStreamへエンコード済みフレーム(Opus)を送信します。Streamが確立している全subscriberへ送信されます。 subscriberがいない場合は何も送信せず...
char skw_room_publication_id_t[SKW_ROOM_PUBLICATION_ID_SIZE]
PublicationIDを格納する文字列型(NUL終端を含む)。
Definition publication.h:68
skw_room_publication_err_t
Publication APIのエラーコード。
Definition publication.h:25
@ SKW_ROOM_PUBLICATION_ERR_NULL_ARGS
引数がNULL
Definition publication.h:27
@ SKW_ROOM_PUBLICATION_ERR_SERVER_BUSY
サーバーが過負荷で一時的に利用できない
Definition publication.h:51
@ SKW_ROOM_PUBLICATION_ERR_CONTEXT_NOT_SETUP
Contextがセットアップされていない
Definition publication.h:30
@ SKW_ROOM_PUBLICATION_ERR_INVALID_ARGS
引数の値が不正
Definition publication.h:28
@ SKW_ROOM_PUBLICATION_ERR_NOT_JOINED
LocalPersonが存在しない
Definition publication.h:39
@ SKW_ROOM_PUBLICATION_ERR_CONTEXT_NOT_INITED
Contextが初期化されていない
Definition publication.h:29
@ SKW_ROOM_PUBLICATION_OK
正常終了
Definition publication.h:26
@ SKW_ROOM_PUBLICATION_ERR_UNAUTHORIZED
AuthTokenが不正、もしくは有効期限切れ
Definition publication.h:44
@ SKW_ROOM_PUBLICATION_ERR_CONTENT_TYPE_MISMATCH
Publicationのコンテンツ種別と送信APIが一致しない
Definition publication.h:40
@ SKW_ROOM_PUBLICATION_ERR_UNKNOWN
不明なエラー
Definition publication.h:42
@ SKW_ROOM_PUBLICATION_ERR_REQUEST_FAILED
リクエストの実行に失敗
Definition publication.h:31
@ SKW_ROOM_PUBLICATION_ERR_TOO_LARGE
リクエストパラメータが大きすぎる
Definition publication.h:48
@ SKW_ROOM_PUBLICATION_ERR_MUTEX_UNLOCK_FAILED
Publication APIのアンロックに失敗
Definition publication.h:32
@ SKW_ROOM_PUBLICATION_ERR_TIMEOUT
応答の受信がタイムアウトした
Definition publication.h:35
@ SKW_ROOM_PUBLICATION_ERR_NOT_PUBLISHED
指定したPublicationをPublishしていない
Definition publication.h:41
@ SKW_ROOM_PUBLICATION_ERR_SERVER_INTERNAL
サーバー内部エラー
Definition publication.h:50
@ SKW_ROOM_PUBLICATION_ERR_TOO_MANY_REQUESTS
レートリミット超過
Definition publication.h:49
@ SKW_ROOM_PUBLICATION_ERR_RESPONSE_PARSE_FAILED
応答の解析に失敗した
Definition publication.h:38
@ SKW_ROOM_PUBLICATION_ERR_BAD_REQUEST
リクエストパラメータが不正
Definition publication.h:43
@ SKW_ROOM_PUBLICATION_ERR_RESPONSE_TOO_LARGE
応答が受信バッファのサイズを超過した
Definition publication.h:37
@ SKW_ROOM_PUBLICATION_ERR_CONNECTION_CLOSED
応答待ちの間に接続が切断された
Definition publication.h:36
@ SKW_ROOM_PUBLICATION_ERR_CALLED_IN_HANDLER
イベントハンドラ内から呼ばれた
Definition publication.h:33
@ SKW_ROOM_PUBLICATION_ERR_NOT_FOUND
リソースが見つからない
Definition publication.h:46
@ SKW_ROOM_PUBLICATION_ERR_SEND_FAILED
リクエストの送信に失敗
Definition publication.h:34
@ SKW_ROOM_PUBLICATION_ERR_FORBIDDEN
必要な権限が無い
Definition publication.h:45
@ SKW_ROOM_PUBLICATION_ERR_ALREADY_EXIST
すでに存在するリソースを作成しようとした
Definition publication.h:47
skw_room_publication_err_t skw_room_publication_unregister_handlers(void)
登録済みのイベント通知ハンドラを解除します。
skw_room_publication_type_t
Publicationの配信方式。
Definition publication.h:55
@ SKW_ROOM_PUBLICATION_TYPE_SFU
SFU
Definition publication.h:57
@ SKW_ROOM_PUBLICATION_TYPE_P2P
P2P
Definition publication.h:56
skw_room_publication_err_t skw_room_publication_send_data(const skw_room_publication_send_data_params_t *params)
PublishしたDataStreamへデータを送信します。Streamが確立している全subscriberへ送信されます。 subscriberがいない場合は何も送信せずに成功を返します。
Publicationの取得結果を受け取る出力先。NULLを設定したフィールドには格納されない。
Definition publication.h:73
skw_room_publication_id_t * id
PublicationIDの格納先(不要ならNULL)
Definition publication.h:74
skw_room_publication_content_type_t * content_type
コンテンツ種別の格納先(不要ならNULL)
Definition publication.h:76
skw_room_publication_metadata_t * metadata
PublicationMetadataの格納先(不要ならNULL)
Definition publication.h:77
skw_room_member_id_t * publisher_id
PublishしたMemberIDの格納先(不要ならNULL)
Definition publication.h:78
skw_room_publication_type_t * type
配信方式の格納先(不要ならNULL)
Definition publication.h:75
Publicationの各イベント通知を受け取るハンドラ。不要なイベントのフィールドはNULLにできる。
Definition publication.h:117
skw_room_publication_on_keyframe_request_t on_keyframe_request
キーフレームの生成要求時
Definition publication.h:118
skw_room_publication_send_dataのパラメータ。
Definition publication.h:92
const uint8_t * data
送信するデータ
Definition publication.h:94
const char * publication_id
PublishしたDataStreamのPublicationID
Definition publication.h:93
size_t length
送信するデータの長さ(バイト数)
Definition publication.h:95
skw_room_publication_send_video_frame/send_audio_frameのパラメータ。
Definition publication.h:102
uint32_t pts
フレームの表示タイムスタンプ(ミリ秒)
Definition publication.h:106
const uint8_t * data
送信するエンコード済みフレーム(Video: H.264 / Audio: Opus)
Definition publication.h:104
const char * publication_id
PublishしたVideo/AudioStreamのPublicationID
Definition publication.h:103
size_t length
送信するフレームの長さ(バイト数)
Definition publication.h:105