The following functions are provided by the Prosody H.223 Mux API:
API call | W | Description |
---|---|---|
sm_h223mux_add_entry() | P | Add mux entry |
sm_h223mux_close_lc() | P | Close logical channel |
sm_h223mux_create() | P | Create an H.223 Mux |
sm_h223mux_datafeed_connect() | P | Connect datafeed to an H.223 MUX. |
sm_h223mux_delete_session() | P | Delete the H.223 session |
sm_h223mux_destroy() | P | Destroy an H.223 Mux |
sm_h223mux_get_datafeed() | P | Get datafeed from H.223 MUX. |
sm_h223mux_get_event() | P | Get an event for the H.223 mux |
sm_h223mux_new_session() | P | Create new session for the H.223 mux |
sm_h223mux_open_lc() | P | Open logical channel |
sm_h223mux_reconfig() | P | Reconfigure the H.223 multiplex |
sm_h223mux_set_caps() | P | Set the multiplex capabilities for a specific terminal |
sm_h223mux_status() | P | Fetch status info on H.223 mux |
sm_h223mux_stop() | P | Stop H.223 mux |
Key to W column:
P | Preliminary documentation - this functionality is under development. It could be changed or withdrawn, and may not be implemented in this release |
---|
This document is also available as separate pages for each function.
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_add_entry(struct sm_h223mux_add_entry_parms *entryp)
typedef struct sm_h223mux_add_entry_parms { tSMH223muxId h223mux; /* in */ enum kSMH223muxTableEntryDirection { kSMH223muxTableEntryDirectionTransmit, kSMH223muxTableEntryDirectionReceive, } direction; /* in */ tSM_INT entry_number; /* in */ tSM_INT descriptor_len; /* in */ char *descriptor; /* in */ } SM_H223MUX_ADD_ENTRY_PARMS;
This function will add an entry to the multiplex table. The entry may be transmit or receive.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_close_lc(struct sm_h223mux_close_lc_parms *close_lcp)
typedef struct sm_h223mux_close_lc_parms { tSMH223muxId h223mux; /* in */ enum kSMH223muxChannelDirection { kSMH223muxChannelDirectionTransmit, kSMH223muxChannelDirectionReceive, } direction; /* in */ tSM_INT lcn; /* in */ } SM_H223MUX_CLOSE_LC_PARMS;
This function will close a specific logical channel.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_create(struct sm_h223mux_create_parms *createp)
typedef struct sm_h223mux_create_parms { tSMH223muxId h223mux; /* out */ tSMModuleId module; /* in */ } SM_H223MUX_CREATE_PARMS;
Creates an H.223 Mux.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_datafeed_connect(struct sm_h223mux_datafeed_connect_parms *datafeedp)
typedef struct sm_h223mux_datafeed_connect_parms { tSMDatafeedId datafeed; /* in */ enum kSMH223muxInputType { kSMH223muxInputTypeH245Ctl, kSMH223muxInputTypeAudio, kSMH223muxInputTypeVideo, kSMH223muxInputTypeMux, } port; /* in */ tSMH223muxId h223mux; /* in */ } SM_H223MUX_DATAFEED_CONNECT_PARMS;
Connect a datafeed to one of the three inputs of the H.223 mux.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_delete_session(struct sm_h223mux_delete_session_parms *sessionp)
typedef struct sm_h223mux_delete_session_parms { tSMH223muxId h223mux; /* in */ } SM_H223MUX_DELETE_SESSION_PARMS;
This function will delete the H.223 session previously created by sm_h223mux_new_session.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_destroy(tSMH223muxId mux)
Destroys an H.223 Mux.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_get_datafeed(struct sm_h223mux_datafeed_parms *datafeedp)
typedef struct sm_h223mux_datafeed_parms { tSMH223muxId h223mux; /* in */ enum kSMH223muxOutputType { kSMH223muxOutputTypeH245Ctl, kSMH223muxOutputTypeAudio, kSMH223muxOutputTypeVideo, kSMH223muxOutputTypeMux, } port; /* in */ tSMDatafeedId datafeed; /* out */ } SM_H223MUX_DATAFEED_PARMS;
Request a datafeed identifier from an H.223 mux. This identifier can subsequently used in a call to sm_channel_datafeed_connect() .
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_get_event(struct sm_h223mux_event_parms *eventp)
typedef struct sm_h223mux_event_parms { tSMH223muxId h223mux; /* in */ tSMEventId event; /* out */ } SM_H223MUX_EVENT_PARMS;
the event will be signalled when a status change occurs on the mux.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_new_session(struct sm_h223mux_new_session_parms *sessionp)
typedef struct sm_h223mux_new_session_parms { tSMH223muxId h223mux; /* in */ tSM_INT level; /* in */ enum kSMH223muxTransmissionBitOrder { kSMH223muxTransmissionBitOrderLSBFirst, kSMH223muxTransmissionBitOrderMSBFirst, } bit_order; /* in */ } SM_H223MUX_NEW_SESSION_PARMS;
This function will create and initialise an H.223 session.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_open_lc(struct sm_h223mux_open_lc_parms *open_lcp)
typedef struct sm_h223mux_open_lc_parms { tSMH223muxId h223mux; /* in */ tSM_UT32 segmentable_flag; /* in */ enum kSMH223muxLogicalChannelType { kSMH223muxLogicalChannelTypeUnidirectional, kSMH223muxLogicalChannelTypeBidirectional, } type; /* in */ struct { tSM_INT lcn; /* in */ enum kSMH223muxLogicalChannelDirection { kSMH223muxLogicalChannelDirectionTransmit, kSMH223muxLogicalChannelDirectionReceive, } direction; /* in */ struct { enum kSMH223muxMarkUnit { kSMH223muxMarkUnitBytes, kSMH223muxMarkUnitALSDU, } mark_unit; tSM_INT hi_mark; /* in */ tSM_INT lo_mark; /* in */ } transmit_lc; /* in */ enum kSMH223muxAdaptationLayerType { kSMH223muxAdaptationLayerTypeNonStandard, kSMH223muxAdaptationLayerTypeAL1Framed, kSMH223muxAdaptationLayerTypeAL1NotFramed, kSMH223muxAdaptationLayerTypeAL2WithoutSequenceNumbers, kSMH223muxAdaptationLayerTypeAL2WithSequenceNumbers, kSMH223muxAdaptationLayerTypeAL3, } adaptation_layer_type; union { struct { tSM_INT control_field_octets; /* in */ tSM_INT send_buffer_size; /* in */ } al3; /* in */ } u_al; /* in */ } forward_channel; /* in */ struct { tSM_INT lcn; /* in */ enum kSMH223muxLogicalChannelDirection { kSMH223muxLogicalChannelDirectionTransmit, kSMH223muxLogicalChannelDirectionReceive, } direction; /* in */ struct { enum kSMH223muxMarkUnit { kSMH223muxMarkUnitBytes, kSMH223muxMarkUnitALSDU, } mark_unit; tSM_INT hi_mark; /* in */ tSM_INT lo_mark; /* in */ } transmit_lc; /* in */ enum kSMH223muxAdaptationLayerType { kSMH223muxAdaptationLayerTypeNonStandard, kSMH223muxAdaptationLayerTypeAL1Framed, kSMH223muxAdaptationLayerTypeAL1NotFramed, kSMH223muxAdaptationLayerTypeAL2WithoutSequenceNumbers, kSMH223muxAdaptationLayerTypeAL2WithSequenceNumbers, kSMH223muxAdaptationLayerTypeAL3, } adaptation_layer_type; union { struct { tSM_INT control_field_octets; /* in */ tSM_INT send_buffer_size; /* in */ } al3; /* in */ } u_al; /* in */ } reverse_channel; /* in */ } SM_H223MUX_OPEN_LC_PARMS;
This function will open a new logical channel.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_reconfig(struct sm_h223mux_reconfig_parms *reconfigp)
typedef struct sm_h223mux_reconfig_parms { tSMH223muxId h223mux; /* in */ enum kSMH223muxReconfigLevelChangeDirection { kSMH223muxReconfigLevelChangeDirectionTransmit, kSMH223muxReconfigLevelChangeDirectionReceive, } direction; /* in */ struct { enum kSMH223muxReconfigChoice { kSMH223muxReconfigModeChange, kSMH223muxReconfigAnnexADoubleFlag, } choice; union { enum kSMH223muxReconfigModeChange { kSMH223muxReconfigModeChangeToLevel0, kSMH223muxReconfigModeChangeToLevel1, kSMH223muxReconfigModeChangeToLevel2, kSMH223muxReconfigModeChangeToLevel2WithOptionalHeader, } mode_change; enum kSMH223muxReconfigAnnexADoubleFlag { kSMH223muxReconfigAnnexADoubleFlagStart, kSMH223muxReconfigAnnexADoubleFlagStop, } annex_a_double_flag; } u; } multiplex_reconfiguration; } SM_H223MUX_RECONFIG_PARMS;
Reconfigure the H.223 multiplex ie changing to another level, or adopting double flag mode vs. basic flag.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_set_caps(struct sm_h223mux_set_caps_parms *capsp)
typedef struct sm_h223mux_set_caps_parms { tSMH223muxId h223mux; /* in */ enum kSMH223muxSetCapsRole { kSMH223muxSetCapsRoleLocal, kSMH223muxSetCapsRoleRemote, } role; /* in */ tSM_INT optional_ext; /* in */ tSM_UT32 transport_with_i_frames; /* in */ tSM_UT32 video_with_AL1; /* in */ tSM_UT32 video_with_AL2; /* in */ tSM_UT32 video_with_AL3; /* in */ tSM_UT32 audio_with_AL1; /* in */ tSM_UT32 audio_with_AL2; /* in */ tSM_UT32 audio_with_AL3; /* in */ tSM_UT32 data_with_AL1; /* in */ tSM_UT32 data_with_AL2; /* in */ tSM_UT32 data_with_AL3; /* in */ tSM_INT maximum_AL2_sdu_size; /* in */ tSM_INT maximum_AL3_sdu_size; /* in */ tSM_INT maximum_delay_jitter; /* in */ tSM_UT32 max_MUX_PDU_size_capability; /* in */ tSM_UT32 nsrp_support; /* in */ tSM_INT bit_rate_o; /* in */ struct { tSM_UT32 mode_change_capability; /* in */ tSM_UT32 h223_AnnexA; /* in */ tSM_UT32 h223_AnnexA_double_flag; /* in */ tSM_UT32 h223_AnnexB; /* in */ tSM_UT32 h223_AnnexB_with_header; /* in */ } mobile_operation_transmit_capability_o; /* in */ struct { tSM_INT maximum_sample_size; /* in */ tSM_INT maximum_payload_length; /* in */ } mobile_multilink_frame_capability_o; /* in */ struct { tSM_UT32 video_with_AL1M; /* in */ tSM_UT32 video_with_AL2M; /* in */ tSM_UT32 video_with_AL3M; /* in */ tSM_UT32 audio_with_AL1M; /* in */ tSM_UT32 audio_with_AL2M; /* in */ tSM_UT32 audio_with_AL3M; /* in */ tSM_UT32 data_with_AL1M; /* in */ tSM_UT32 data_with_AL2M; /* in */ tSM_UT32 data_with_AL3M; /* in */ tSM_UT32 alpdu_interleaving; /* in */ tSM_INT maximum_AL1M_pdu_size; /* in */ tSM_INT maximum_AL2M_pdu_size; /* in */ tSM_INT maximum_AL3M_pdu_size; /* in */ tSM_UT32 rs_code_capability; /* in */ } H223_AnnexC_capability_o; /* in */ } SM_H223MUX_SET_CAPS_PARMS;
This function will set the negotiated capabilities on the H.223 multiplexer.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_status(struct sm_h223mux_status_parms *statusp)
typedef struct sm_h223mux_status_parms { tSMH223muxId h223mux; /* in */ enum kSMH223muxStatus { kSMH223muxStatusRunning, kSMH223muxStatusStopped, kSMH223muxStatusSessionStarted, kSMH223muxStatusCreateSessionFailed, kSMH223muxStatusDeleteSessionFailed, kSMH223muxStatusSetCapsFailed, kSMH223muxStatusAddEntryFailed, kSMH223muxStatusOpenLCFailed, kSMH223muxStatusCloseLCFailed, kSMH223muxStatusReconfigLevelChange, kSMH223muxStatusReconfigFailed, kSMH223muxStatusInternalError, kSMH223muxStatusVideoPFrameDrop, kSMH223muxStatusVideoPFrameSend, } status; /* out */ union { struct { tSM_INT level; /* out */ } session_transport; /* out */ struct { tSM_INT num_errors; /* out */ } internal_error; /* out */ } u; /* out */ } SM_H223MUX_STATUS_PARMS;
returns the status of the H.223 mux.
0 if call completed successfully, otherwise a standard error such as:
This function is under development. It could be changed or withdrawn, and may not be implemented in this release.
int sm_h223mux_stop(struct sm_h223mux_stop_parms *stopp)
typedef struct sm_h223mux_stop_parms { tSMH223muxId h223mux; /* in */ } SM_H223MUX_STOP_PARMS;
Stops the H.223 Mux.
0 if call completed successfully, otherwise a standard error such as:
These functions constitute the Prosody H.223 Mux API.