在mediastreamer2中,我看到很多這種奇怪的代碼,我不明白。我無法理解這個代碼結構。 Someboy能解釋如何執行這個代碼?
static MSFilterMethod sender_methods[] = {
{MS_RTP_SEND_MUTE, sender_mute},
{MS_RTP_SEND_UNMUTE, sender_unmute},
{MS_RTP_SEND_SET_SESSION, sender_set_session},
{MS_RTP_SEND_SEND_DTMF, sender_send_dtmf},
{MS_RTP_SEND_SET_RELAY_SESSION_ID, sender_set_relay_session_id},
{MS_FILTER_GET_SAMPLE_RATE, sender_get_sr },
{MS_FILTER_GET_NCHANNELS, sender_get_ch },
{MS_RTP_SEND_SET_DTMF_DURATION, sender_set_dtmf_duration },
{MS_RTP_SEND_SEND_GENERIC_CN, sender_send_generic_cn },
{0, NULL}
};
這
MSFilterDesc ms_rtp_send_desc = {
MS_RTP_SEND_ID,
"MSRtpSend",
N_("RTP output filter"),
MS_FILTER_OTHER,
NULL,
1,
0,
sender_init,
NULL,
sender_process,
NULL,
sender_uninit,
sender_methods,
MS_FILTER_IS_PUMP
};
或
MSFilterDesc ms_rtp_send_desc = {
.id = MS_RTP_SEND_ID,
.name = "MSRtpSend",
.text = N_("RTP output filter"),
.category = MS_FILTER_OTHER,
.ninputs = 1,
.noutputs = 0,
.init = sender_init,
.process = sender_process,
.uninit = sender_uninit,
.methods = sender_methods,
.flags=MS_FILTER_IS_PUMP
};
在sender_methods,那些 「sender_」 是在同一個文件的功能。我不知道如何調用其他功能。因爲我沒有看到這些功能出現在其他文件中。
整個項目在Github:https://github.com/BelledonneCommunications/mediastreamer2。
謝謝。
它們是#defines在一些.h文件中?無論如何,github鏈接對未來SO用戶沒有用:( – ThingyWotsit
.. manye他們通過查找結構中的#define然後調用相應的函數來調用? – ThingyWotsit
實際上,這是#define在.h文件中 – Sven