CURRENT_STATUS_REMOVE_MEDIA_SOURCE,
CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_DIRECTION,
CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_DIRECTION,
+ CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_CODEC,
+ CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_CODEC,
CURRENT_STATUS_MEDIA_SOURCE_SET_PAUSE,
CURRENT_STATUS_MEDIA_SOURCE_GET_PAUSE,
CURRENT_STATUS_MEDIA_SOURCE_SET_VIDEO_RESOLUTION,
[WEBRTC_TRANSCEIVER_DIRECTION_SENDRECV] = "SENDRECV",
};
+static const char *g_webrtc_transceiver_codec_str[] = {
+ [WEBRTC_TRANSCEIVER_CODEC_PCMU] = "PCMU",
+ [WEBRTC_TRANSCEIVER_CODEC_PCMA] = "PCMA",
+ [WEBRTC_TRANSCEIVER_CODEC_OPUS] = "OPUS",
+ [WEBRTC_TRANSCEIVER_CODEC_VP8] = "VP8",
+ [WEBRTC_TRANSCEIVER_CODEC_VP9] = "VP9",
+ [WEBRTC_TRANSCEIVER_CODEC_H264] = "H264",
+};
+
/* for video display */
static Evas_Object *g_win_id;
static Evas_Object *g_eo_mine;
} else {
webrtc_media_source_type_internal_e type = value - 1;
switch (type) {
- case WEBRTC_MEDIA_SOURCE_TYPE_CUSTOM_AUDIO:
- case WEBRTC_MEDIA_SOURCE_TYPE_CUSTOM_VIDEO:
+ case WEBRTC_MEDIA_SOURCE_TYPE_CUSTOM_AUDIO ... WEBRTC_MEDIA_SOURCE_TYPE_NULL:
ret = webrtc_add_media_source_internal(g_conns[index].webrtc, type, &_source_id);
RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret);
break;
source_id, g_webrtc_media_type_str[media_type], g_webrtc_transceiver_direction_str[direction]);
}
+static void _webrtc_media_source_get_transceiver_codec(int index, unsigned int source_id, webrtc_media_type_e media_type)
+{
+ int ret = WEBRTC_ERROR_NONE;
+ webrtc_transceiver_codec_e codec;
+
+ ret = webrtc_media_source_get_transceiver_codec(g_conns[index].webrtc, source_id, media_type, &codec);
+ RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret);
+
+ g_print("webrtc_media_source_get_transceiver_codec() success, source_id[%u], media_type[%s], codec[%s]\n",
+ source_id, g_webrtc_media_type_str[media_type], g_webrtc_transceiver_codec_str[codec]);
+}
+
+static void _webrtc_media_source_set_transceiver_codec(int index, unsigned int source_id, webrtc_media_type_e media_type, int value)
+{
+ int ret;
+ webrtc_transceiver_codec_e codec;
+
+ switch (value) {
+ case 1:
+ codec = WEBRTC_TRANSCEIVER_CODEC_PCMU;
+ break;
+ case 2:
+ codec = WEBRTC_TRANSCEIVER_CODEC_PCMA;
+ break;
+ case 3:
+ codec = WEBRTC_TRANSCEIVER_CODEC_OPUS;
+ break;
+ case 4:
+ codec = WEBRTC_TRANSCEIVER_CODEC_VP8;
+ break;
+ case 5:
+ codec = WEBRTC_TRANSCEIVER_CODEC_VP9;
+ break;
+ case 6:
+ codec = WEBRTC_TRANSCEIVER_CODEC_H264;
+ break;
+ default:
+ g_printerr("invalid value[%d]\n", value);
+ return;
+ }
+
+ ret = webrtc_media_source_set_transceiver_codec(g_conns[index].webrtc, source_id, media_type, codec);
+ RET_IF(ret != WEBRTC_ERROR_NONE, "ret[0x%x]", ret);
+
+ g_print("webrtc_media_source_set_transceiver_codec() success, source_id[%u], media_type[%s], codec[%s]\n",
+ source_id, g_webrtc_media_type_str[media_type], g_webrtc_transceiver_codec_str[codec]);
+}
+
static void _webrtc_set_display_type(int index, int type)
{
g_conns[index].render.display_type = type;
} else if (strncmp(cmd, "gd", 2) == 0) {
g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_DIRECTION;
+ } else if (strncmp(cmd, "tc", 2) == 0) {
+ g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_CODEC;
+
+ } else if (strncmp(cmd, "gc", 2) == 0) {
+ g_menu_state = CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_CODEC;
+
} else if (strncmp(cmd, "dt", 2) == 0) {
g_menu_state = CURRENT_STATUS_SET_DISPLAY_TYPE;
g_print("l. Get video resolution\n");
g_print("td. Set transceiver direction\t");
g_print("gd. Get transceiver direction\n");
+ g_print("tc. *Set transceiver codec\t");
+ g_print("gc. *Get transceiver codec\n");
g_print("scs. *Set crop screen source\t");
g_print("ucs. *Unset crop screen source\n");
g_print("pa. *Set media path to file source\n");
display_sub_basic();
} else if (g_menu_state == CURRENT_STATUS_ADD_MEDIA_SOURCE) {
- g_print("*** input media source type.(1:audiotest, 2:videotest, 3:mic, 4:camera, 5:screen, 6:file, 7:media packet, 8:custom audio, 9:custom video)\n");
+ g_print("*** input media source type.(1:audiotest, 2:videotest, 3:mic, 4:camera, 5:screen, 6:file, 7:media packet, 8:custom audio, 9:custom video, 10:null)\n");
} else if (g_menu_state == CURRENT_STATUS_REMOVE_MEDIA_SOURCE) {
g_print("*** input media source id to remove.\n");
else if (g_cnt == 1)
g_print("*** input media type.(1:audio 2:video)\n");
+ } else if (g_menu_state == CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_CODEC) {
+ if (g_cnt == 0)
+ g_print("*** input source id.\n");
+ else if (g_cnt == 1)
+ g_print("*** input media type.(1:audio 2:video)\n");
+ else if (g_cnt == 2)
+ g_print("*** input transceiver codec.(1:PCMU 2:PCMA 3:OPUS 4:VP8 5:VP9 6:H264)\n");
+
+ } else if (g_menu_state == CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_CODEC) {
+ if (g_cnt == 0)
+ g_print("*** input source id.\n");
+ else if (g_cnt == 1)
+ g_print("*** input media type.(1:audio 2:video)\n");
+
} else if (g_menu_state == CURRENT_STATUS_SET_DISPLAY_TYPE) {
g_print("*** input display type.(1:overlay 2:evas)\n");
case CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_DIRECTION: {
static unsigned int id;
static unsigned int media_type;
- static unsigned int direction;
+ unsigned int direction;
value = atoi(cmd);
switch (g_cnt) {
case 2:
direction = value - 1;
_webrtc_media_source_set_transceiver_direction(0, id, media_type, direction);
- id = media_type = direction = 0;
+ id = media_type = 0;
g_cnt = 0;
reset_menu_state();
break;
}
break;
}
+ case CURRENT_STATUS_MEDIA_SOURCE_SET_TRANSCEIVER_CODEC: {
+ static unsigned int id;
+ static unsigned int media_type;
+ value = atoi(cmd);
+
+ switch (g_cnt) {
+ case 0:
+ id = value;
+ g_cnt++;
+ break;
+ case 1:
+ media_type = value - 1;
+ g_cnt++;
+ break;
+ case 2:
+ _webrtc_media_source_set_transceiver_codec(0, id, media_type, value);
+ id = media_type = 0;
+ g_cnt = 0;
+ reset_menu_state();
+ break;
+ }
+ break;
+ }
+ case CURRENT_STATUS_MEDIA_SOURCE_GET_TRANSCEIVER_CODEC: {
+ static unsigned int id;
+ static unsigned int media_type;
+ value = atoi(cmd);
+
+ switch (g_cnt) {
+ case 0:
+ id = value;
+ g_cnt++;
+ break;
+ case 1:
+ media_type = value - 1;
+ _webrtc_media_source_get_transceiver_codec(0, id, media_type);
+ id = media_type = 0;
+ g_cnt = 0;
+ reset_menu_state();
+ break;
+ }
+ break;
+ }
case CURRENT_STATUS_SET_DISPLAY_TYPE: {
value = atoi(cmd);
_webrtc_set_display_type(0, value - 1);