Home | History | Annotate | Download | only in mm-camera-interface

Lines Matching refs:my_obj

49 static void mm_camera_read_raw_frame(mm_camera_obj_t * my_obj)
59 stream = &my_obj->ch[MM_CAMERA_CH_RAW].raw.stream;
60 idx = mm_camera_read_msm_frame(my_obj, stream);
64 pthread_mutex_lock(&my_obj->ch[MM_CAMERA_CH_RAW].mutex);
66 if((my_obj->ch[MM_CAMERA_CH_RAW].buf_cb[i].cb) &&
67 (my_obj->poll_threads[MM_CAMERA_CH_RAW].data.used == 1)){
70 data[cnt].def.frame = &my_obj->ch[MM_CAMERA_CH_RAW].raw.stream.frame.frame[idx].frame;
71 my_obj->ch[MM_CAMERA_CH_RAW].raw.stream.frame.ref_count[idx]++;
73 (uint32_t)my_obj->ch[MM_CAMERA_CH_RAW].buf_cb[i].cb,
74 (uint32_t)my_obj->ch[MM_CAMERA_CH_RAW].buf_cb[i].user_data);
75 memcpy(&buf_cb[cnt], &my_obj->ch[MM_CAMERA_CH_RAW].buf_cb[i], sizeof(mm_camera_buf_cb_t));
79 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_RAW].mutex);
82 if(buf_cb[i].cb != NULL && my_obj->poll_threads[MM_CAMERA_CH_RAW].data.used == 1){
88 int mm_camera_zsl_frame_cmp_and_enq(mm_camera_obj_t * my_obj,
108 pthread_mutex_lock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].mutex);
109 pthread_mutex_lock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
112 peerstream = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main;
114 peerstream = &my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream;
117 watermark = my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buffering_frame.water_mark;
118 interval = my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buffering_frame.interval;
119 expected_id = my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.expected_matching_id;
151 node->frame.frame_id >= my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.expected_matching_id) {
160 my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.expected_matching_id =
175 mm_camera_stream_util_buf_done(my_obj, peerstream,
190 mm_camera_stream_util_buf_done(my_obj, peerstream,
203 mm_camera_stream_util_buf_done(my_obj, mystream, &notify_frame);
216 mm_camera_stream_util_buf_done(my_obj, mystream, &notify_frame);
230 mm_camera_stream_util_buf_done(my_obj, peerstream, &notify_frame);
235 mm_camera_stream_util_buf_done(my_obj, mystream, &notify_frame);
258 mm_camera_stream_util_buf_done(my_obj, mystream,
273 mm_camera_stream_util_buf_done(my_obj, mystream,
304 mm_camera_stream_util_buf_done(my_obj, peerstream,
319 mm_camera_stream_util_buf_done(my_obj, peerstream,
332 if(my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.pending_cnt > 0) {
334 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
335 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].mutex);
339 my_frame = mm_camera_stream_frame_deq_no_lock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.readyq);
340 peer_frame = mm_camera_stream_frame_deq_no_lock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream.frame.readyq);
342 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
343 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].mutex);
357 my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.pending_cnt--;
358 memcpy(&buf_cb[0], &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[0],
360 if(my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.pending_cnt == 0)
362 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
363 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].mutex);
368 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
369 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].mutex);
374 if (buf_cb[i].cb && my_obj->poll_threads[MM_CAMERA_CH_SNAPSHOT].data.used == 1)
383 mm_camera_poll_send_ch_event(my_obj, &data_evt);
388 static void mm_camera_read_preview_frame(mm_camera_obj_t * my_obj)
398 if (!my_obj->ch[MM_CAMERA_CH_PREVIEW].acquired) {
402 stream = &my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream;
403 idx = mm_camera_read_msm_frame(my_obj, stream);
408 pthread_mutex_lock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].mutex);
410 if((my_obj->ch[MM_CAMERA_CH_PREVIEW].buf_cb[i].cb) &&
411 (my_obj->poll_threads[MM_CAMERA_CH_PREVIEW].data.used == 1)) {
414 data[cnt].def.frame = &my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream.frame.frame[idx].frame;
417 if(my_obj->op_mode == MM_CAMERA_OP_MODE_ZSL)
418 my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream.frame.ref_count[idx] = 2;
420 my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream.frame.ref_count[idx] = 1;
422 (uint32_t)my_obj->ch[MM_CAMERA_CH_PREVIEW].buf_cb[i].cb,
423 (uint32_t)my_obj->ch[MM_CAMERA_CH_PREVIEW].buf_cb[i].user_data);
424 /*my_obj->ch[MM_CAMERA_CH_PREVIEW].buf_cb[i].cb(&data,
425 my_obj->ch[MM_CAMERA_CH_PREVIEW].buf_cb[i].user_data);*/
426 memcpy(&buf_cb[cnt], &my_obj->ch[MM_CAMERA_CH_PREVIEW].buf_cb[i],
431 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_PREVIEW].mutex);
433 if(my_obj->op_mode == MM_CAMERA_OP_MODE_ZSL) {
437 mm_camera_zsl_frame_cmp_and_enq(my_obj,
438 &my_obj->ch[MM_CAMERA_CH_PREVIEW].preview.stream.frame.frame[idx],
443 if(buf_cb[i].cb != NULL && my_obj->poll_threads[MM_CAMERA_CH_PREVIEW].data.used == 1) {
449 static void mm_camera_snapshot_send_liveshot_notify(mm_camera_obj_t * my_obj)
460 s_q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.readyq;
461 pthread_mutex_lock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
464 if(s_q->cnt && my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i].cb) {
470 my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.ref_count[data[cnt].snapshot.main.idx]++;
471 /*my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i].cb(&data,
472 my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i].user_data);*/
473 memcpy(&buf_cb[cnt], &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i],
477 my_obj->snap_burst_num_by_user -= 1;
478 CDBG("%s: burst number =%d", __func__, my_obj->snap_burst_num_by_user);
482 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
485 if(buf_cb[i].cb != NULL && my_obj->poll_threads[MM_CAMERA_CH_SNAPSHOT].data.used == 1) {
495 mm_camera_poll_send_ch_event(my_obj, &data);
499 static void mm_camera_snapshot_send_snapshot_notify(mm_camera_obj_t * my_obj)
512 s_q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.readyq;
513 t_q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.thumbnail.frame.readyq;
514 pthread_mutex_lock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
519 (uint32_t)my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i].cb,
520 my_obj->poll_threads[MM_CAMERA_CH_SNAPSHOT].data.used);
521 if((s_q->cnt && t_q->cnt && my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i].cb) &&
522 (my_obj->poll_threads[MM_CAMERA_CH_SNAPSHOT].data.used == 1)) {
530 my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.ref_count[data[i].snapshot.main.idx]++;
531 my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.thumbnail.frame.ref_count[data[i].snapshot.thumbnail.idx]++;
533 //bu = my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i];
534 memcpy(&buf_cb[cnt], &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i],
539 my_obj->snap_burst_num_by_user -= 1;
540 CDBG("%s: burst number =%d", __func__, my_obj->snap_burst_num_by_user);
544 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_SNAPSHOT].mutex);
547 if(buf_cb[i].cb != NULL && my_obj->poll_threads[MM_CAMERA_CH_SNAPSHOT].data.used == 1) {
556 buf_cb = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buf_cb[i];
557 if((buf_cb) && (my_obj->poll_threads[MM_CAMERA_CH_SNAPSHOT].data.used == 1)) {
564 mm_camera_poll_send_ch_event(my_obj, &edata);
568 static void mm_camera_read_snapshot_main_frame(mm_camera_obj_t * my_obj)
574 if (!my_obj->ch[MM_CAMERA_CH_SNAPSHOT].acquired) {
578 q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.readyq;
579 stream = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main;
580 idx = mm_camera_read_msm_frame(my_obj,stream);
585 if(my_obj->op_mode == MM_CAMERA_OP_MODE_ZSL) {
586 my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.ref_count[idx]++;
590 mm_camera_zsl_frame_cmp_and_enq(my_obj,
591 &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.frame[idx], stream);
595 if (!my_obj->full_liveshot)
596 mm_camera_snapshot_send_snapshot_notify(my_obj);
598 mm_camera_snapshot_send_liveshot_notify(my_obj);
601 static void mm_camera_read_snapshot_thumbnail_frame(mm_camera_obj_t * my_obj)
607 if (!my_obj->ch[MM_CAMERA_CH_SNAPSHOT].acquired) {
611 q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.thumbnail.frame.readyq;
612 stream = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.thumbnail;
613 idx = mm_camera_read_msm_frame(my_obj,stream);
616 if(my_obj->op_mode != MM_CAMERA_OP_MODE_ZSL) {
618 mm_camera_snapshot_send_snapshot_notify(my_obj);
621 rc = mm_camera_stream_qbuf(my_obj, stream, idx);
626 static void mm_camera_read_video_frame(mm_camera_obj_t * my_obj)
636 if (!my_obj->ch[MM_CAMERA_CH_VIDEO].acquired) {
640 stream = &my_obj->ch[MM_CAMERA_CH_VIDEO].video.video;
641 idx = mm_camera_read_msm_frame(my_obj,stream);
646 pthread_mutex_lock(&my_obj->ch[MM_CAMERA_CH_VIDEO].mutex);
648 if((my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb) &&
649 (my_obj->poll_threads[MM_CAMERA_CH_VIDEO].data.used == 1)){
654 data[cnt].video.video.frame = &my_obj->ch[MM_CAMERA_CH_VIDEO].video.video.
656 my_obj->ch[MM_CAMERA_CH_VIDEO].video.video.frame.ref_count[idx]++;
658 //my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb(&data,
659 // my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].user_data);
660 memcpy(&buf_cb[cnt], &my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i],
665 if( my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb_type==MM_CAMERA_BUF_CB_COUNT ) {
667 if(--(my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb_count) == 0 )
668 my_obj->ch[MM_CAMERA_CH_VIDEO].buf_cb[i].cb=NULL;
672 pthread_mutex_unlock(&my_obj->ch[MM_CAMERA_CH_VIDEO].mutex);
675 if(buf_cb[i].cb != NULL && my_obj->poll_threads[MM_CAMERA_CH_VIDEO].data.used == 1) {
688 static void mm_camera_read_video_main_frame(mm_camera_obj_t * my_obj)
694 static void mm_camera_read_zsl_main_frame(mm_camera_obj_t * my_obj)
702 q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main.frame.readyq;
703 stream = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.main;
704 idx = mm_camera_read_msm_frame(my_obj,stream);
711 watermark = my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buffering_frame.water_mark;
718 rc = mm_camera_stream_qbuf(my_obj, stream, frame->idx);
726 mm_camera_check_pending_zsl_frames(my_obj, MM_CAMERA_CH_SNAPSHOT);
729 static void mm_camera_read_zsl_postview_frame(mm_camera_obj_t * my_obj)
736 q = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.thumbnail.frame.readyq;
737 stream = &my_obj->ch[MM_CAMERA_CH_SNAPSHOT].snapshot.thumbnail;
738 idx = mm_camera_read_msm_frame(my_obj,stream);
742 watermark = my_obj->ch[MM_CAMERA_CH_SNAPSHOT].buffering_frame.water_mark;
748 rc = mm_camera_stream_qbuf(my_obj, stream, frame->idx);
756 mm_camera_check_pending_zsl_frames(my_obj, MM_CAMERA_CH_SNAPSHOT);
759 void mm_camera_msm_data_notify(mm_camera_obj_t * my_obj, int fd,
764 mm_camera_read_raw_frame(my_obj);
767 mm_camera_read_preview_frame(my_obj);
770 mm_camera_read_snapshot_main_frame(my_obj);
773 mm_camera_read_snapshot_thumbnail_frame(my_obj);
776 mm_camera_read_video_frame(my_obj);
779 mm_camera_read_video_main_frame(my_obj);
803 void mm_camera_dispatch_app_event(mm_camera_obj_t *my_obj, mm_camera_event_t *event)
809 pthread_mutex_lock(&my_obj->mutex);
811 &my_obj->evt[event->event_type],
813 pthread_mutex_unlock(&my_obj->mutex);
822 void mm_camera_msm_evt_notify(mm_camera_obj_t * my_obj, int fd)
847 mm_camera_dispatch_app_event(my_obj, evt);