Lines Matching refs:cc

617 _camera_client_free(CameraClient* cc)
621 if (cc->camera_info != NULL) {
622 ((CameraInfo*)cc->camera_info)->in_use = 0;
624 if (cc->camera != NULL) {
625 camera_device_close(cc->camera);
627 if (cc->video_frame != NULL) {
628 free(cc->video_frame);
630 if (cc->device_name != NULL) {
631 free(cc->device_name);
634 AFREE(cc);
651 CameraClient* cc;
654 ANEW0(cc);
661 if (get_token_value_alloc(param, "name", &cc->device_name)) {
668 res = get_token_value_int(param, "inp_channel", &cc->inp_channel);
673 cc->inp_channel = 0;
689 ci = _camera_service_get_camera_info_by_device_name(csd, cc->device_name);
692 __FUNCTION__, cc->device_name);
693 _camera_client_free(cc);
700 E("%s: Camera device '%s' is in use", __FUNCTION__, cc->device_name);
701 _camera_client_free(cc);
707 cc->camera_info = ci;
710 __FUNCTION__, cc->device_name, cc->inp_channel);
712 return cc;
721 * cc - Queried camera client descriptor.
726 _camera_client_query_connect(CameraClient* cc, QemudClient* qc, const char* param)
728 if (cc->camera != NULL) {
730 W("%s: Camera '%s' is already connected", __FUNCTION__, cc->device_name);
736 cc->camera = camera_device_open(cc->device_name, cc->inp_channel);
737 if (cc->camera == NULL) {
738 E("%s: Unable to open camera device '%s'", __FUNCTION__, cc->device_name);
743 D("%s: Camera device '%s' is now connected", __FUNCTION__, cc->device_name);
750 * cc - Queried camera client descriptor.
755 _camera_client_query_disconnect(CameraClient* cc,
759 if (cc->camera == NULL) {
761 W("%s: Camera '%s' is already disconnected", __FUNCTION__, cc->device_name);
768 if (cc->video_frame != NULL) {
770 __FUNCTION__, cc->device_name);
776 camera_device_close(cc->camera);
777 cc->camera = NULL;
779 D("Camera device '%s' is now disconnected", cc->device_name);
786 * cc - Queried camera client descriptor.
796 _camera_client_query_start(CameraClient* cc, QemudClient* qc, const char* param)
803 if (cc->camera == NULL) {
805 E("%s: Camera '%s' is not connected", __FUNCTION__, cc->device_name);
853 if (cc->video_frame != NULL) {
855 if (cc->pixel_format != pix_format ||cc->width != width ||
856 cc->height != height) {
858 W("%s: Camera '%s' is already started", __FUNCTION__, cc->device_name);
864 __FUNCTION__, cc->device_name, (const char*)&cc->pixel_format,
865 cc->width, cc->height, (const char*)&pix_format, width, height);
877 cc->pixel_format = pix_format;
878 cc->width = width;
879 cc->height = height;
880 cc->pixel_num = cc->width * cc->height;
881 cc->frames_cached = 0;
885 switch (cc->pixel_format) {
890 cc->video_frame_size = (cc->pixel_num * 12) / 8;
895 __FUNCTION__, (char*)&cc->pixel_format);
903 if (!has_converter(cc->camera_info->pixel_format, cc->pixel_format) ||
904 !has_converter(cc->camera_info->pixel_format, V4L2_PIX_FMT_RGB32)) {
906 __FUNCTION__, (char*)&cc->camera_info->pixel_format, (char*)&cc->pixel_format);
915 cc->preview_frame_size = cc->pixel_num * 4;
919 cc->video_frame =
920 (uint8_t*)malloc(cc->video_frame_size + cc->preview_frame_size);
921 if (cc->video_frame == NULL) {
923 __FUNCTION__, cc->video_frame_size, cc->preview_frame_size);
929 cc->preview_frame = (uint16_t*)(cc->video_frame + cc->video_frame_size);
932 if (camera_device_start_capturing(cc->camera, cc->camera_info->pixel_format,
933 cc->width, cc->height)) {
935 __FUNCTION__, cc->device_name, (const char*)&cc->pixel_format,
936 cc->width, cc->height, strerror(errno));
937 free(cc->video_frame);
938 cc->video_frame = NULL;
944 __FUNCTION__, cc->device_name, (char*)&cc->pixel_format, cc->width,
945 cc->height);
952 * cc - Queried camera client descriptor.
957 _camera_client_query_stop(CameraClient* cc, QemudClient* qc, const char* param)
959 if (cc->video_frame == NULL) {
961 W("%s: Camera '%s' is not started", __FUNCTION__, cc->device_name);
967 if (camera_device_stop_capturing(cc->camera)) {
969 __FUNCTION__, cc->device_name, strerror(errno));
974 free(cc->video_frame);
975 cc->video_frame = NULL;
977 D("%s: Camera device '%s' is now stopped.", __FUNCTION__, cc->device_name);
983 * cc - Queried camera client descriptor.
996 _camera_client_query_frame(CameraClient* cc, QemudClient* qc, const char* param)
1009 if (cc->video_frame == NULL) {
1011 E("%s: Camera '%s' is not started", __FUNCTION__, cc->device_name);
1044 if ((video_size != 0 && cc->video_frame_size != video_size) ||
1045 (preview_size != 0 && cc->preview_frame_size != preview_size)) {
1048 __FUNCTION__, cc->device_name, cc->video_frame_size,
1049 cc->preview_frame_size, video_size, preview_size);
1059 fbs[fbs_num].pixel_format = cc->pixel_format;
1060 fbs[fbs_num].framebuffer = cc->video_frame;
1066 fbs[fbs_num].framebuffer = cc->preview_frame;
1072 repeat = camera_device_read_frame(cc->camera, fbs, fbs_num,
1086 while (repeat == 1 && !cc->frames_cached &&
1090 repeat = camera_device_read_frame(cc->camera, fbs, fbs_num,
1093 if (repeat == 1 && !cc->frames_cached) {
1096 __FUNCTION__, cc->device_name,
1103 __FUNCTION__, cc->device_name, strerror(errno));
1109 cc->frames_cached = 1;
1132 qemud_client_send(qc, cc->video_frame, video_size);
1137 qemud_client_send(qc, (const uint8_t*)cc->preview_frame, preview_size);
1176 CameraClient* cc = (CameraClient*)opaque;
1194 _camera_client_query_frame(cc, client, query_param);
1197 _camera_client_query_connect(cc, client, query_param);
1200 _camera_client_query_disconnect(cc, client, query_param);
1203 _camera_client_query_start(cc, client, query_param);
1206 _camera_client_query_stop(cc, client, query_param);
1217 CameraClient* cc = (CameraClient*)opaque;
1220 __FUNCTION__, cc->device_name, cc->inp_channel);
1222 _camera_client_free(cc);
1257 CameraClient* cc = _camera_client_create(csd, client_param);
1258 if (cc != NULL) {
1259 client = qemud_client_new(serv, channel, client_param, cc,