g_print("webrtc_unset_track_added_cb() success\n");
}
+static void __encoded_frame_cb(webrtc_h webrtc, webrtc_media_type_e type, unsigned int track_id, media_packet_h packet, void *user_data)
+{
+ void *data_ptr = NULL;
+
+ /* get data pointer from media packet */
+ if (media_packet_get_buffer_data_ptr(packet, &data_ptr) != MEDIA_PACKET_ERROR_NONE)
+ g_print("failed to media_packet_get_buffer_data_ptr()\n");
+
+ g_print("webrtc[%p] type[%u] track_id[%u] packet[%p, data_ptr:%p] user_data[%p]\n",
+ webrtc, type, track_id, packet, data_ptr, user_data);
+
+ /* media packet should be freed after use */
+ media_packet_destroy(packet);
+}
+
+static void _webrtc_set_encoded_audio_frame_cb(int index)
+{
+ int ret = WEBRTC_ERROR_NONE;
+
+ ret = webrtc_set_encoded_audio_frame_cb(g_conns[index].webrtc, __encoded_frame_cb, &g_conns[index]);
+ if (ret != WEBRTC_ERROR_NONE)
+ g_print("failed to webrtc_set_encoded_audio_frame_cb()\n");
+ else
+ g_print("webrtc_set_encoded_audio_frame_cb() success\n");
+}
+
+static void _webrtc_unset_encoded_audio_frame_cb(int index)
+{
+ int ret = WEBRTC_ERROR_NONE;
+
+ ret = webrtc_unset_encoded_audio_frame_cb(g_conns[index].webrtc);
+ if (ret != WEBRTC_ERROR_NONE)
+ g_print("failed to webrtc_unset_encoded_audio_frame_cb()\n");
+ else
+ g_print("webrtc_unset_encoded_audio_frame_cb() success\n");
+}
+
+static void _webrtc_set_encoded_video_frame_cb(int index)
+{
+ int ret = WEBRTC_ERROR_NONE;
+
+ ret = webrtc_set_encoded_video_frame_cb(g_conns[index].webrtc, __encoded_frame_cb, &g_conns[index]);
+ if (ret != WEBRTC_ERROR_NONE)
+ g_print("failed to webrtc_set_encoded_video_frame_cb()\n");
+ else
+ g_print("webrtc_set_encoded_video_frame_cb() success\n");
+}
+
+static void _webrtc_unset_encoded_video_frame_cb(int index)
+{
+ int ret = WEBRTC_ERROR_NONE;
+
+ ret = webrtc_unset_encoded_video_frame_cb(g_conns[index].webrtc);
+ if (ret != WEBRTC_ERROR_NONE)
+ g_print("failed to webrtc_unset_encoded_video_frame_cb()\n");
+ else
+ g_print("webrtc_unset_encoded_video_frame_cb() success\n");
+}
+
static void __media_packet_source_buffer_state_changed_cb(unsigned int source_id, webrtc_media_packet_source_buffer_state_e state, void *user_data)
{
connection_s *conn = (connection_s *)user_data;
} else if (strncmp(cmd, "uk", 2) == 0) {
_webrtc_unset_track_added_cb(g_conn_index);
+ } else if (strncmp(cmd, "sa", 2) == 0) {
+ _webrtc_set_encoded_audio_frame_cb(g_conn_index);
+
+ } else if (strncmp(cmd, "ua", 2) == 0) {
+ _webrtc_unset_encoded_audio_frame_cb(g_conn_index);
+
+ } else if (strncmp(cmd, "sv", 2) == 0) {
+ _webrtc_set_encoded_video_frame_cb(g_conn_index);
+
+ } else if (strncmp(cmd, "uv", 2) == 0) {
+ _webrtc_unset_encoded_video_frame_cb(g_conn_index);
+
} else if (strncmp(cmd, "sm", 2) == 0) {
g_conns[g_conn_index].menu_state = CURRENT_STATUS_MEDIA_PACKET_SOURCE_SET_BUFFER_STATE_CHANGED_CB;
g_print("zb. Send string as bytes data via data channel\t");
g_print("zf. Send file via data channel\n");
g_print("------------------------------------- Callbacks -----------------------------------------\n");
- g_print("sac. Set all callbacks below\n");
+ g_print("sac. Set all callbacks below (except for the encoded frame callbacks)\n");
g_print("se. Set error callback\t");
g_print("ue. Unset error callback\n");
g_print("sc. Set state changed callback\t");
g_print("ui. Unset ICE candidate callback\n");
g_print("sk. Set track added callback\t");
g_print("uk. Unset track added callback\n");
+ g_print("sa. Set encoded audio frame callback\t");
+ g_print("ua. Unset encoded audio frame callback\n");
+ g_print("sv. Set encoded video frame callback\t");
+ g_print("uv. Unset encoded video frame callback\n");
g_print("sz. Set data channel callback\t");
g_print("uz. Unset data channel callback\n");
g_print("sm. Set media packet source buffer state changed callback\n");