int main() { tlog_init(TLOG_MODE_STDERR, TLOG_INFO, NULL); rcp_connect("10.25.25.220"); start_message_manager(); client_register(RCP_USER_LEVEL_LIVE, "", RCP_REGISTRATION_TYPE_NORMAL, RCP_ENCRYPTION_MODE_MD5); rcp_coder_list encoders, decoders; get_coder_list(RCP_CODER_ENCODER, RCP_MEDIA_TYPE_VIDEO, &encoders, 1); TL_DEBUG("***"); for (int i=0; i<encoders.count; i++) TL_DEBUG("%x %x %x %x %x", encoders.coder[i].number, encoders.coder[i].caps, encoders.coder[i].current_cap, encoders.coder[i].param_caps, encoders.coder[i].current_param); TL_DEBUG("***"); get_coder_list(RCP_CODER_DECODER, RCP_MEDIA_TYPE_VIDEO, &decoders, 1); TL_DEBUG("***"); for (int i=0; i<decoders.count; i++) TL_DEBUG("%x %x %x %x %x", decoders.coder[i].number, decoders.coder[i].caps, decoders.coder[i].current_cap, decoders.coder[i].param_caps, decoders.coder[i].current_param); TL_DEBUG("***"); rcp_session session; memset(&session, 0, sizeof(rcp_session)); unsigned short udp_port = stream_connect_udp(&session); TL_DEBUG("udp port = %d", udp_port); rcp_media_descriptor desc = { RCP_MEP_UDP, 1, 1, 0, udp_port, 0, 1, RCP_VIDEO_CODING_MPEG4, RCP_VIDEO_RESOLUTION_4CIF }; client_connect(&session, RCP_CONNECTION_METHOD_GET, RCP_MEDIA_TYPE_VIDEO, 0, &desc); pthread_create(&thread, NULL, keep_alive_thread, &session); rtp_merge_desc mdesc; rtp_init(RTP_PAYLOAD_TYPE_H263, 1, &mdesc); time_t end_time = time(NULL) + 10; while (time(NULL) < end_time) { /* int num = recvfrom(con.stream_socket, buffer, 1500, 0, (struct sockaddr*)&si_remote, &slen); rtp_push_frame(buffer, num, &mdesc); */ rtp_recv(session.stream_socket, &mdesc); if (rtp_pop_frame(&mdesc) == 0) fwrite(mdesc.data, mdesc.frame_lenght, 1, stdout); } pthread_cancel(thread); stop_message_manager(); return 0; }
int main(int argc, char* argv[]) { if (argc < 2) { printf("%s <ip>\n", argv[0]); return 0; } tlog_init(TLOG_MODE_STDERR, TLOG_INFO, NULL); rcp_connect(argv[1]); start_message_manager(); client_register(RCP_USER_LEVEL_LIVE, "", RCP_REGISTRATION_TYPE_NORMAL, RCP_ENCRYPTION_MODE_MD5); int preset_id = get_coder_preset(1); TL_INFO("preset id = %d", preset_id); preset_id = get_current_stream_profile(1, 1, &preset_id); TL_INFO("preset id = %d", preset_id); preset_set_default(1); rcp_mpeg4_preset preset; get_preset(1, &preset, 0); log_preset(TLOG_INFO, &preset, 0); strcpy(preset.name, "myConfig"); preset.resolution = PRESET_RESOLUTION_4CIF; preset.field_mode = PRESET_FIELD_MODE_PROGRESSIVE; preset.bandwidth = 100000; preset.bandwidth_soft_limit = 100000; preset.video_quality = 1; preset.avc_gop_structure = 0; preset.averaging_period = 0; preset.iframe_distance = 31; preset.avc_pframe_qunatizer_min = 0; preset.avc_delta_ipquantizer = 5; set_preset(1, &preset, 0); get_preset(1, &preset, 0); log_preset(TLOG_INFO, &preset, 0); client_unregister(); stop_message_manager(); return 0; }
static tlibc_error_code_t init() { tlog_init(&g_tlog_instance, &g_config.log_config); if(tconnd_mempool_init() != E_TLIBC_NOERROR) { goto tlog_fini; } if(tconnd_tbus_init() != E_TLIBC_NOERROR) { goto mempool_fini; } if(tconnd_epoll_init() != E_TLIBC_NOERROR) { goto tbus_fini; } if(tconnd_timer_init() != E_TLIBC_NOERROR) { goto tlog_fini; } if(tconnd_listen_init() != E_TLIBC_NOERROR) { goto epoll_fini; } INFO_PRINT("tconnd init succeed."); return E_TLIBC_NOERROR; epoll_fini: tconnd_epoll_fini(); tbus_fini: tconnd_tbus_fini(); mempool_fini: tconnd_mempool_fini(); tlog_fini: tlog_fini(&g_tlog_instance); return E_TLIBC_ERROR; }
int main() { rcp_device *devs; int num; tlog_init(TLOG_MODE_STDERR, TLOG_DEBUG, NULL); autodetect(&devs, &num); TL_INFO("%d device%s detected", num, num>1?"s":""); for (int i=0; i<num; i++) { log_device(TLOG_INFO, &devs[i]); TL_INFO("------------------------"); } free(devs); return 0; }
static tlibc_error_code_t init() { g_itb = tbus_at(g_config.input_tbuskey); if(g_itb == NULL) { ERROR_PRINT("tbus_at failed."); goto error_ret; } tbusapi_init(&g_tbusapi, g_itb, NULL, NULL); if(tlog_init(&g_tlog, &g_config.tlog_config) != E_TLIBC_NOERROR) { ERROR_PRINT("tlog_init failed."); goto error_ret; } tlibc_binary_reader_init(&g_binary_reader, NULL, 0); g_tbusapi.on_recv = on_recv; return E_TLIBC_NOERROR; error_ret: return E_TLIBC_ERROR; }
int main(int argc, char* argv[]) { tlog_init(TLOG_MODE_STDERR, TLOG_INFO, NULL); if (argc < 3) { TL_INFO("%s <ip> <output>", argv[0]); return 0; } rcp_connect(argv[1]); start_message_manager(); client_register(RCP_USER_LEVEL_LIVE, "", RCP_REGISTRATION_TYPE_NORMAL, RCP_ENCRYPTION_MODE_MD5); rcp_coder_list encoders, decoders; get_coder_list(RCP_CODER_ENCODER, RCP_MEDIA_TYPE_VIDEO, &encoders, 1); TL_DEBUG("***"); for (int i=0; i<encoders.count; i++) TL_DEBUG("%x %x %x %x %x", encoders.coder[i].number, encoders.coder[i].caps, encoders.coder[i].current_cap, encoders.coder[i].param_caps, encoders.coder[i].current_param); TL_DEBUG("***"); get_coder_list(RCP_CODER_DECODER, RCP_MEDIA_TYPE_VIDEO, &decoders, 1); TL_DEBUG("***"); for (int i=0; i<decoders.count; i++) TL_DEBUG("%x %x %x %x %x", decoders.coder[i].number, decoders.coder[i].caps, decoders.coder[i].current_cap, decoders.coder[i].param_caps, decoders.coder[i].current_param); TL_DEBUG("***"); rcp_session session; memset(&session, 0, sizeof(rcp_session)); unsigned short udp_port = stream_connect_udp(&session); TL_DEBUG("udp port = %d", udp_port); rcp_media_descriptor desc = { RCP_MEP_UDP, 1, 1, 0, udp_port, 1, 1, RCP_VIDEO_CODING_H264, RCP_VIDEO_RESOLUTION_4CIF }; client_connect(&session, RCP_CONNECTION_METHOD_GET, RCP_MEDIA_TYPE_VIDEO, 0, &desc); pthread_create(&thread, NULL, keep_alive_thread, &session); rtp_merge_desc mdesc; rtp_init(RTP_PAYLOAD_TYPE_H264, 1, &mdesc); signal(SIGTERM, term_handler); FILE * out = fopen(argv[2], "wb"); while (!end) { /* int num = recvfrom(con.stream_socket, buffer, 1500, 0, (struct sockaddr*)&si_remote, &slen); rtp_push_frame(buffer, num, &mdesc); */ if (rtp_recv(session.stream_socket, &mdesc) == 0) { if (rtp_pop_frame(&mdesc) == 0) { fwrite(mdesc.data, mdesc.frame_lenght, 1, out); } } //char cmd[100]; //sprintf(cmd, "kill %d", res); //system(cmd); //return 0; } fclose(out); pthread_cancel(thread); client_disconnect(&session); client_unregister(); stop_message_manager(); return 0; }
int main() { tlog_init(TLOG_MODE_STDERR, TLOG_INFO, NULL); rcp_connect("10.25.25.223"); start_event_handler(); client_register(RCP_USER_LEVEL_LIVE, "", RCP_REGISTRATION_TYPE_NORMAL, RCP_ENCRYPTION_MODE_MD5); rcp_coder_list encoders, decoders; get_coder_list(RCP_CODER_ENCODER, RCP_MEDIA_TYPE_VIDEO, &encoders, 1); TL_DEBUG("***"); for (int i=0; i<encoders.count; i++) TL_DEBUG("%x %x %x %x %x", encoders.coder[i].number, encoders.coder[i].caps, encoders.coder[i].current_cap, encoders.coder[i].param_caps, encoders.coder[i].current_param); TL_DEBUG("***"); get_coder_list(RCP_CODER_DECODER, RCP_MEDIA_TYPE_VIDEO, &decoders, 1); TL_DEBUG("***"); for (int i=0; i<decoders.count; i++) TL_DEBUG("%x %x %x %x %x", decoders.coder[i].number, decoders.coder[i].caps, decoders.coder[i].current_cap, decoders.coder[i].param_caps, decoders.coder[i].current_param); TL_DEBUG("***"); rcp_session session; memset(&session, 0, sizeof(rcp_session)); unsigned short tcp_port = stream_connect_tcp(&session); rcp_media_descriptor desc = { RCP_MEP_TCP, 1, 1, 0, tcp_port, 0, 1, RCP_VIDEO_CODING_H263P, RCP_VIDEO_RESOLUTION_4CIF }; client_connect(&session, RCP_CONNECTION_METHOD_GET, RCP_MEDIA_TYPE_VIDEO, 0, &desc); initiate_tcp_stream(&session, &decoders.coder[0]); int res = fork(); if (res == 0) { while (1) { sleep(2); int n = keep_alive(&session); //TL_DEBUG("active connections = %d", n); if (n < 0) break; } } rtp_merge_desc mdesc; rtp_init(RTP_PAYLOAD_TYPE_H263, 1, &mdesc); time_t end_time = time(NULL) + 10; while (time(NULL) < end_time) { /* int num = recv(con.stream_socket, buffer, 1500, 0); rtp_push_frame(buffer, num, &mdesc); */ char buff[2000]; int size = recv(session.stream_socket, buff, 1000, 0); fwrite(buff, size, 1, stdout); /* rtp_recv(session.stream_socket, &mdesc); if (rtp_pop_frame(&mdesc) == 0) fwrite(mdesc.data, mdesc.frame_lenght, 1, stdout); */ } stop_event_handler(); return 0; }
int main(int argc, char* argv[]) { tlog_init(TLOG_MODE_STDERR, TLOG_INFO, NULL); if (argc < 2) { TL_INFO("%s ip\n", argv[0]); return 0; } rcp_connect(argv[1]); start_event_handler(); client_register(RCP_USER_LEVEL_LIVE, "", RCP_REGISTRATION_TYPE_NORMAL, RCP_ENCRYPTION_MODE_MD5); rcp_coder_list encoders; get_coder_list(RCP_CODER_DECODER, RCP_MEDIA_TYPE_VIDEO, &encoders, 2); int preset_id = get_coder_preset(8); rcp_mpeg4_preset preset; get_preset(preset_id, &preset, 1); log_preset(TLOG_INFO, &preset, 1); preset.resolution = RCP_VIDEO_RESOLUTION_4CIF; set_preset(preset_id, &preset, 1); log_preset(TLOG_INFO, &preset, 1); /* for (int i=0; i<encoders.count; i++) { int mode; get_coder_video_operation_mode(encoders.coder[i].number, &mode); TL_INFO("video mode is %d", mode); TL_INFO("%x %x %x %x %x", encoders.coder[i].number, encoders.coder[i].caps, encoders.coder[i].current_cap, encoders.coder[i].param_caps, encoders.coder[i].current_param); log_coder(TLOG_INFO, &encoders.coder[i]); mode = (mode==1)?2:1; mode = set_coder_video_operation_mode(encoders.coder[i].number, mode); TL_INFO("video mode is %d", mode); TL_INFO("-----------------------"); } get_coder_list(RCP_CODER_ENCODER, RCP_MEDIA_TYPE_VIDEO, &encoders, 1); for (int i=0; i<encoders.count; i++) { int mode; get_coder_video_operation_mode(encoders.coder[i].number, &mode); TL_INFO("video mode is %d", mode); TL_INFO("%x %x %x %x %x", encoders.coder[i].number, encoders.coder[i].caps, encoders.coder[i].current_cap, encoders.coder[i].param_caps, encoders.coder[i].current_param); log_coder(TLOG_INFO, &encoders.coder[i]); mode = (mode==1)?2:1; mode = set_coder_video_operation_mode(encoders.coder[i].number, mode); TL_INFO("video mode is %d", mode); TL_INFO("-----------------------"); } get_coder_list(RCP_CODER_DECODER, RCP_MEDIA_TYPE_AUDIO, &encoders, 1); for (int i=0; i<encoders.count; i++) { TL_INFO("%x %x %x %x %x", encoders.coder[i].number, encoders.coder[i].caps, encoders.coder[i].current_cap, encoders.coder[i].param_caps, encoders.coder[i].current_param); log_coder(TLOG_INFO, &encoders.coder[i]); TL_INFO("-----------------------"); } */ stop_event_handler(); return 0; }