示例#1
0
PJ_DECL(pj_status_t) vid_set_android_window(pjsua_call_id call_id,
		jobject window) {
	pj_status_t status = PJ_ENOTFOUND;
	pjsua_call *call;
	int i;

	if( !(call_id>=0 && call_id<(int)pjsua_var.ua_cfg.max_calls) ){
		return PJ_ENOTFOUND;
	}

	PJ_LOG(4, (THIS_FILE, "Setup android window for call %d", call_id));

	PJSUA_LOCK();

	// Retrieve the stream
	if (pjsua_call_has_media(call_id)) {
		call = &pjsua_var.calls[call_id];
		for (i = 0; i < call->med_cnt; ++i) {
			pjsua_call_media *call_med = &call->media[i];

			vid_set_stream_window(call_med, PJMEDIA_DIR_RENDER, window);
			vid_set_stream_window(call_med, PJMEDIA_DIR_CAPTURE, window);
		}
	}

	PJSUA_UNLOCK();
	return status;
}
示例#2
0
PJ_DECL(pj_status_t) vid_set_android_capturer(jobject window) {
    unsigned ci, i, count;
    pj_status_t status = PJ_ENOTFOUND;
    pjsua_call *call;
    pjsua_call_id calls_id[PJSUA_MAX_ACC];

    count = PJ_ARRAY_SIZE(calls_id);
    status = pjsua_enum_calls(calls_id, &count);
    if(status != PJ_SUCCESS){
        return status;
    }

    PJ_LOG(4, (THIS_FILE, "Setup android capturer for all calls"));
    PJSUA_LOCK();
    for(ci = 0; ci < count; ++ci){
        pjsua_call_id call_id = calls_id[ci];
        if(pjsua_call_is_active(call_id) && pjsua_call_has_media(call_id)){
            call = &pjsua_var.calls[call_id];
            for (i = 0; i < call->med_cnt; ++i) {
                pjsua_call_media *call_med = &call->media[i];
                vid_set_stream_window(call_med, PJMEDIA_DIR_CAPTURE, window);
                status = PJ_SUCCESS;
            }
        }
    }

    PJSUA_UNLOCK();
    return status;
}