Home | History | Annotate | Download | only in src

Lines Matching refs:my_obj

48 int32_t mm_stream_qbuf(mm_stream_t *my_obj,
50 int32_t mm_stream_set_ext_mode(mm_stream_t * my_obj);
51 int32_t mm_stream_set_fmt(mm_stream_t * my_obj);
52 int32_t mm_stream_sync_info(mm_stream_t *my_obj);
53 int32_t mm_stream_init_bufs(mm_stream_t * my_obj);
54 int32_t mm_stream_deinit_bufs(mm_stream_t * my_obj);
55 int32_t mm_stream_request_buf(mm_stream_t * my_obj);
56 int32_t mm_stream_unreg_buf(mm_stream_t * my_obj);
57 int32_t mm_stream_release(mm_stream_t *my_obj);
58 int32_t mm_stream_set_parm(mm_stream_t *my_obj,
60 int32_t mm_stream_get_parm(mm_stream_t *my_obj,
62 int32_t mm_stream_do_action(mm_stream_t *my_obj,
64 int32_t mm_stream_streamon(mm_stream_t *my_obj);
65 int32_t mm_stream_streamoff(mm_stream_t *my_obj);
66 int32_t mm_stream_read_msm_frame(mm_stream_t * my_obj,
69 int32_t mm_stream_config(mm_stream_t *my_obj,
71 int32_t mm_stream_reg_buf(mm_stream_t * my_obj);
72 int32_t mm_stream_buf_done(mm_stream_t * my_obj,
74 int32_t mm_stream_calc_offset(mm_stream_t *my_obj);
97 int32_t mm_stream_fsm_inited(mm_stream_t * my_obj,
101 int32_t mm_stream_fsm_acquired(mm_stream_t * my_obj,
105 int32_t mm_stream_fsm_cfg(mm_stream_t * my_obj,
109 int32_t mm_stream_fsm_buffed(mm_stream_t * my_obj,
113 int32_t mm_stream_fsm_reg(mm_stream_t * my_obj,
117 int32_t mm_stream_fsm_active(mm_stream_t * my_obj,
135 void mm_stream_handle_rcvd_buf(mm_stream_t *my_obj,
140 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
143 if (my_obj->is_bundled) {
154 cam_queue_enq(&(my_obj->ch_obj->cmd_thread.cmd_queue), node);
157 cam_sem_post(&(my_obj->ch_obj->cmd_thread.cmd_sem));
174 cam_queue_enq(&(my_obj->cmd_thread.cmd_queue), node);
177 cam_sem_post(&(my_obj->cmd_thread.cmd_sem));
196 mm_stream_t *my_obj = (mm_stream_t*)user_data;
201 if (NULL == my_obj) {
206 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
207 if (MM_STREAM_STATE_ACTIVE != my_obj->state) {
211 __func__, my_obj->state);
216 rc = mm_stream_read_msm_frame(my_obj, &buf_info, my_obj->frame_offset.num_planes);
222 pthread_mutex_lock(&my_obj->cb_lock);
224 if(NULL != my_obj->buf_cb[i].cb) {
230 pthread_mutex_unlock(&my_obj->cb_lock);
232 pthread_mutex_lock(&my_obj->buf_lock);
234 my_obj->buf_status[idx].in_kernel = 0;
237 if (my_obj->is_bundled) {
239 my_obj->buf_status[idx].buf_refcnt++;
241 my_obj->buf_status[idx].buf_refcnt += has_cb;
242 pthread_mutex_unlock(&my_obj->buf_lock);
244 mm_stream_handle_rcvd_buf(my_obj, &buf_info, has_cb);
262 mm_stream_t * my_obj = (mm_stream_t *)user_data;
266 if (NULL == my_obj) {
270 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
282 super_buf.camera_handle = my_obj->ch_obj->cam_obj->my_hdl;
283 super_buf.ch_id = my_obj->ch_obj->my_hdl;
285 pthread_mutex_lock(&my_obj->cb_lock);
287 if(NULL != my_obj->buf_cb[i].cb) {
288 if (my_obj->buf_cb[i].cb_count != 0) {
294 pthread_mutex_lock(&my_obj->buf_lock);
295 my_obj->buf_status[buf_info->buf->buf_idx].buf_refcnt++;
296 pthread_mutex_unlock(&my_obj->buf_lock);
299 my_obj->buf_cb[i].cb(&super_buf,
300 my_obj->buf_cb[i].user_data);
305 if (my_obj->buf_cb[i].cb_count > 0) {
306 my_obj->buf_cb[i].cb_count--;
307 if (0 == my_obj->buf_cb[i].cb_count) {
308 my_obj->buf_cb[i].cb = NULL;
309 my_obj->buf_cb[i].user_data = NULL;
314 pthread_mutex_unlock(&my_obj->cb_lock);
317 mm_stream_buf_done(my_obj, buf_info->buf);
327 * @my_obj : ptr to a stream object
336 int32_t mm_stream_fsm_fn(mm_stream_t *my_obj,
344 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
345 switch (my_obj->state) {
350 rc = mm_stream_fsm_inited(my_obj, evt, in_val, out_val);
353 rc = mm_stream_fsm_acquired(my_obj, evt, in_val, out_val);
356 rc = mm_stream_fsm_cfg(my_obj, evt, in_val, out_val);
359 rc = mm_stream_fsm_buffed(my_obj, evt, in_val, out_val);
362 rc = mm_stream_fsm_reg(my_obj, evt, in_val, out_val);
365 rc = mm_stream_fsm_active(my_obj, evt, in_val, out_val);
368 CDBG("%s: Not a valid state (%d)", __func__, my_obj->state);
382 * @my_obj : ptr to a stream object
391 int32_t mm_stream_fsm_inited(mm_stream_t *my_obj,
400 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
403 if ((NULL == my_obj->ch_obj) || (NULL == my_obj->ch_obj->cam_obj)) {
410 mm_camera_util_get_dev_name(my_obj->ch_obj->cam_obj->my_hdl));
412 my_obj->fd = open(dev_name, O_RDWR | O_NONBLOCK);
413 if (my_obj->fd <= 0) {
414 CDBG_ERROR("%s: open dev returned %d\n", __func__, my_obj->fd);
418 CDBG("%s: open dev fd = %d\n", __func__, my_obj->fd);
419 rc = mm_stream_set_ext_mode(my_obj);
421 my_obj
425 close(my_obj->fd);
426 my_obj->fd = 0;
432 __func__, my_obj->state, evt, in_val, out_val);
445 * @my_obj : ptr to a stream object
454 int32_t mm_stream_fsm_acquired(mm_stream_t *my_obj,
462 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
469 rc = mm_stream_config(my_obj, config);
472 my_obj->state = MM_STREAM_STATE_CFG;
477 rc = mm_stream_release(my_obj);
479 my_obj->state = MM_STREAM_STATE_NOTUSED;
485 rc = mm_stream_set_parm(my_obj, payload->parms);
492 rc = mm_stream_get_parm(my_obj, payload->parms);
497 __func__, my_obj->state, evt, in_val, out_val);
510 * @my_obj : ptr to a stream object
519 int32_t mm_stream_fsm_cfg(mm_stream_t * my_obj,
526 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
533 rc = mm_stream_config(my_obj, config);
536 my_obj->state = MM_STREAM_STATE_CFG;
541 rc = mm_stream_release(my_obj);
542 my_obj->state = MM_STREAM_STATE_NOTUSED;
548 rc = mm_stream_set_parm(my_obj, payload->parms);
555 rc = mm_stream_get_parm(my_obj, payload->parms);
559 rc = mm_stream_init_bufs(my_obj);
562 my_obj->state = MM_STREAM_STATE_BUFFED;
567 __func__, my_obj->state, evt, in_val, out_val);
580 * @my_obj : ptr to a stream object
589 int32_t mm_stream_fsm_buffed(mm_stream_t * my_obj,
596 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
599 rc = mm_stream_deinit_bufs(my_obj);
602 my_obj->state = MM_STREAM_STATE_CFG;
606 rc = mm_stream_reg_buf(my_obj);
609 my_obj->state = MM_STREAM_STATE_REG;
616 rc = mm_stream_set_parm(my_obj, payload->parms);
623 rc = mm_stream_get_parm(my_obj, payload->parms);
628 __func__, my_obj->state, evt, in_val, out_val);
641 * @my_obj : ptr to a stream object
650 int32_t mm_stream_fsm_reg(mm_stream_t * my_obj,
657 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
661 rc = mm_stream_unreg_buf(my_obj);
664 my_obj->state = MM_STREAM_STATE_BUFFED;
671 pthread_mutex_lock(&my_obj->cb_lock);
673 if(NULL != my_obj->buf_cb[i].cb) {
678 pthread_mutex_unlock(&my_obj->cb_lock);
681 mm_camera_cmd_thread_launch(&my_obj->cmd_thread,
683 (void *)my_obj);
686 my_obj->state = MM_STREAM_STATE_ACTIVE;
687 rc = mm_stream_streamon(my_obj);
691 mm_camera_cmd_thread_release(&my_obj->cmd_thread);
693 my_obj->state = MM_STREAM_STATE_REG;
702 rc = mm_stream_set_parm(my_obj, payload->parms);
709 rc = mm_stream_get_parm(my_obj, payload->parms);
714 __func__, my_obj->state, evt, in_val, out_val);
727 * @my_obj : ptr to a stream object
736 int32_t mm_stream_fsm_active(mm_stream_t * my_obj,
743 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
746 rc = mm_stream_buf_done(my_obj, (mm_camera_buf_def_t *)in_val);
752 rc = mm_stream_streamoff(my_obj);
754 pthread_mutex_lock(&my_obj->cb_lock);
756 if(NULL != my_obj->buf_cb[i].cb) {
761 pthread_mutex_unlock(&my_obj->cb_lock);
764 mm_camera_cmd_thread_release(&my_obj->cmd_thread);
766 my_obj->state = MM_STREAM_STATE_REG;
773 rc = mm_stream_set_parm(my_obj, payload->parms);
780 rc = mm_stream_get_parm(my_obj, payload->parms);
784 rc = mm_stream_do_action(my_obj, in_val);
788 __func__, my_obj->state, evt, in_val, out_val);
800 * @my_obj : stream object
807 int32_t mm_stream_config(mm_stream_t *my_obj,
812 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
813 my_obj->stream_info = config->stream_info;
814 my_obj->buf_num = 0;
815 my_obj->mem_vtbl = config->mem_vtbl;
816 my_obj->padding_info = config->padding_info;
818 my_obj->buf_cb[0].cb = config->stream_cb;
819 my_obj->buf_cb[0].user_data = config->userdata;
820 my_obj->buf_cb[0].cb_count = -1; /* infinite by default */
822 rc = mm_stream_sync_info(my_obj);
824 rc = mm_stream_set_fmt(my_obj);
835 * @my_obj : stream object
841 int32_t mm_stream_release(mm_stream_t *my_obj)
844 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
847 if(my_obj->fd > 0)
849 close(my_obj->fd);
853 pthread_mutex_destroy(&my_obj->buf_lock);
854 pthread_mutex_destroy(&my_obj->cb_lock);
857 memset(my_obj, 0, sizeof(mm_stream_t));
868 * @my_obj : stream object
874 int32_t mm_stream_streamon(mm_stream_t *my_obj)
880 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
882 rc = ioctl(my_obj->fd, VIDIOC_STREAMON, &buf_type);
887 mm_camera_poll_thread_del_poll_fd(&my_obj->ch_obj->poll_thread[0], my_obj->my_hdl, mm_camera_sync_call);
899 * @my_obj : stream object
905 int32_t mm_stream_streamoff(mm_stream_t *my_obj)
910 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
913 mm_camera_poll_thread_del_poll_fd(&my_obj->ch_obj->poll_thread[0], my_obj->my_hdl, mm_camera_sync_call);
916 rc = ioctl(my_obj->fd, VIDIOC_STREAMOFF, &buf_type);
931 * @my_obj : stream object
939 int32_t mm_stream_read_msm_frame(mm_stream_t * my_obj,
947 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
955 rc = ioctl(my_obj->fd, VIDIOC_DQBUF, &vb);
960 pthread_mutex_lock(&my_obj->buf_lock);
961 my_obj->queued_buffer_count--;
962 if(my_obj->queued_buffer_count == 0) {
963 CDBG_HIGH("%s: Stoping poll on stream %p type :%d", __func__, my_obj, my_obj->stream_info->stream_type);
964 mm_camera_poll_thread_del_poll_fd(&my_obj->ch_obj->poll_thread[0], my_obj->my_hdl, mm_camera_async_call);
965 CDBG_HIGH("%s: Stopped poll on stream %p type :%d", __func__, my_obj, my_obj->stream_info->stream_type);
967 pthread_mutex_unlock(&my_obj->buf_lock);
969 buf_info->buf = &my_obj->buf[idx];
971 buf_info->stream_id = my_obj->my_hdl;
973 buf_info->buf->stream_id = my_obj->my_hdl;
979 __func__, vb.index, buf_info->buf->frame_idx, my_obj->stream_info->stream_type);
980 if ( NULL != my_obj->mem_vtbl.clean_invalidate_buf ) {
981 rc = my_obj->mem_vtbl.clean_invalidate_buf(idx,
982 my_obj->mem_vtbl.user_data);
1004 * @my_obj : stream object
1014 int32_t mm_stream_set_parm(mm_stream_t *my_obj,
1020 rc = mm_camera_util_s_ctrl(my_obj->fd, CAM_PRIV_STREAM_PARM, &value);
1031 * @my_obj : stream object
1041 int32_t mm_stream_get_parm(mm_stream_t *my_obj,
1047 rc = mm_camera_util_g_ctrl(my_obj->fd, CAM_PRIV_STREAM_PARM, &value);
1058 * @my_obj : stream object
1068 int32_t mm_stream_do_action(mm_stream_t *my_obj,
1074 rc = mm_camera_util_s_ctrl(my_obj->fd, CAM_PRIV_STREAM_PARM, &value);
1085 * @my_obj : stream object
1094 int32_t mm_stream_set_ext_mode(mm_stream_t * my_obj)
1099 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
1104 rc = ioctl(my_obj->fd, VIDIOC_S_PARM, &s_parm);
1106 __func__, my_obj->fd, rc, s_parm.parm.capture.extendedmode);
1109 my_obj->server_stream_id = s_parm.parm.capture.extendedmode;
1120 * @my_obj : stream object
1127 int32_t mm_stream_qbuf(mm_stream_t *my_obj, mm_camera_buf_def_t *buf)
1133 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
1148 if ( NULL != my_obj->mem_vtbl.invalidate_buf ) {
1149 rc = my_obj->mem_vtbl.invalidate_buf(buffer.index,
1150 my_obj->mem_vtbl.user_data);
1161 my_obj->queued_buffer_count++;
1162 if(my_obj->queued_buffer_count == 1) {
1164 CDBG_HIGH("%s: Starting poll on stream %p type :%d", __func__, my_obj,my_obj->stream_info->stream_type);
1165 rc = mm_camera_poll_thread_add_poll_fd(&my_obj->ch_obj->poll_thread[0],
1166 my_obj->my_hdl,
1167 my_obj->fd,
1169 (void*)my_obj,
1171 CDBG_HIGH("%s: Started poll on stream %p type :%d", __func__, my_obj,my_obj->stream_info->stream_type);
1178 rc = ioctl(my_obj->fd, VIDIOC_QBUF, &buffer);
1190 * @my_obj : stream object
1196 int32_t mm_stream_request_buf(mm_stream_t * my_obj)
1200 uint8_t buf_num = my_obj->buf_num;
1202 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
1214 rc = ioctl(my_obj->fd, VIDIOC_REQBUFS, &bufreq);
1217 __func__, my_obj->fd, rc);
1229 * @my_obj : stream object
1247 int32_t mm_stream_map_buf(mm_stream_t * my_obj,
1254 if (NULL == my_obj || NULL == my_obj->ch_obj || NULL == my_obj->ch_obj->cam_obj) {
1265 packet.payload.buf_map.stream_id = my_obj->server_stream_id;
1268 return mm_camera_util_sendmsg(my_obj->ch_obj->cam_obj,
1280 * @my_obj : stream object
1296 int32_t mm_stream_unmap_buf(mm_stream_t * my_obj,
1301 if (NULL == my_obj || NULL == my_obj->ch_obj || NULL == my_obj->ch_obj->cam_obj) {
1310 packet.payload.buf_unmap.stream_id = my_obj->server_stream_id;
1313 return mm_camera_util_sendmsg(my_obj->ch_obj->cam_obj,
1348 mm_stream_t *my_obj = (mm_stream_t *)userdata;
1349 return mm_stream_map_buf(my_obj,
1379 mm_stream_t *my_obj = (mm_stream_t *)userdata;
1380 return mm_stream_unmap_buf(my_obj,
1394 * @my_obj : stream object
1400 int32_t mm_stream_init_bufs(mm_stream_t * my_obj)
1406 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
1409 if (NULL != my_obj->buf) {
1410 mm_stream_deinit_bufs(my_obj);
1415 ops_tbl.userdata = my_obj;
1417 rc = my_obj->mem_vtbl.get_bufs(&my_obj->frame_offset,
1418 &my_obj->buf_num,
1420 &my_obj->buf,
1422 my_obj->mem_vtbl.user_data);
1429 my_obj->buf_status =
1430 (mm_stream_buf_status_t *)malloc(sizeof(mm_stream_buf_status_t) * my_obj->buf_num);
1432 if (NULL == my_obj->buf_status) {
1434 mm_stream_deinit_bufs(my_obj);
1439 memset(my_obj->buf_status, 0, sizeof(mm_stream_buf_status_t) * my_obj->buf_num);
1440 for (i = 0; i < my_obj->buf_num; i++) {
1441 my_obj->buf_status[i].initial_reg_flag = reg_flags[i];
1442 my_obj->buf[i].stream_id = my_obj->my_hdl;
1443 my_obj->buf[i].stream_type = my_obj->stream_info->stream_type;
1459 * @my_obj : stream object
1465 int32_t mm_stream_deinit_bufs(mm_stream_t * my_obj)
1470 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
1472 if (NULL == my_obj->buf) {
1480 ops_tbl.userdata = my_obj;
1482 rc = my_obj->mem_vtbl.put_bufs(&ops_tbl,
1483 my_obj->mem_vtbl.user_data);
1485 free(my_obj->buf);
1486 my_obj->buf = NULL;
1487 if (my_obj->buf_status != NULL) {
1488 free(my_obj->buf_status);
1489 my_obj->buf_status = NULL;
1502 * @my_obj : stream object
1508 int32_t mm_stream_reg_buf(mm_stream_t * my_obj)
1513 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
1515 rc = mm_stream_request_buf(my_obj);
1520 pthread_mutex_lock(&my_obj->buf_lock);
1521 for(i = 0; i < my_obj->buf_num; i++){
1523 if (my_obj->buf_status[i].initial_reg_flag) {
1524 rc = mm_stream_qbuf(my_obj, &my_obj->buf[i]);
1529 my_obj->buf_status[i].buf_refcnt = 0;
1530 my_obj->buf_status[i].in_kernel = 1;
1534 my_obj->buf_status[i].buf_refcnt = 1;
1535 my_obj->buf_status[i].in_kernel = 0;
1538 pthread_mutex_unlock(&my_obj->buf_lock);
1549 * @my_obj : stream object
1555 int32_t mm_stream_unreg_buf(mm_stream_t * my_obj)
1560 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
1566 rc = ioctl(my_obj->fd, VIDIOC_REQBUFS, &bufreq);
1569 __func__, my_obj->fd, rc);
1573 pthread_mutex_lock(&my_obj->buf_lock);
1574 if (NULL != my_obj->buf_status) {
1575 for(i = 0; i < my_obj->buf_num; i++){
1576 my_obj->buf_status[i].buf_refcnt = 0;
1577 my_obj->buf_status[i].in_kernel = 0;
1580 pthread_mutex_unlock(&my_obj->buf_lock);
2338 * @my_obj : stream object
2344 int32_t mm_stream_calc_offset(mm_stream_t *my_obj)
2348 cam_dimension_t dim = my_obj->stream_info->dim;
2349 if (my_obj->stream_info->pp_config.feature_mask & CAM_QCOM_FEATURE_ROTATION) {
2350 if (my_obj->stream_info->pp_config.rotation == ROTATE_90 ||
2351 my_obj->stream_info->pp_config.rotation == ROTATE_270) {
2353 dim.width = my_obj->stream_info->dim.height;
2354 dim.height = my_obj->stream_info->dim.width;
2358 switch (my_obj->stream_info->stream_type) {
2362 rc = mm_stream_calc_offset_preview(my_obj->stream_info->fmt,
2364 &my_obj->stream_info->buf_planes);
2368 rc = mm_stream_calc_offset_snapshot(my_obj->stream_info->fmt,
2370 &my_obj->padding_info,
2371 &my_obj->stream_info->buf_planes);
2374 rc = mm_stream_calc_offset_postproc(my_obj->stream_info,
2375 &my_obj->padding_info,
2376 &my_obj->stream_info->buf_planes);
2380 &my_obj->stream_info->buf_planes);
2383 rc = mm_stream_calc_offset_raw(my_obj->stream_info->fmt,
2385 &my_obj->padding_info,
2386 &my_obj->stream_info->buf_planes);
2390 &my_obj->padding_info,
2391 &my_obj->stream_info->buf_planes);
2395 __func__, my_obj->stream_info->stream_type);
2400 my_obj->frame_offset = my_obj->stream_info->buf_planes.plane_info;
2410 * @my_obj : stream object
2422 int32_t mm_stream_sync_info(mm_stream_t *my_obj)
2426 my_obj->stream_info->stream_svr_id = my_obj->server_stream_id;
2427 rc = mm_stream_calc_offset(my_obj);
2430 rc = mm_camera_util_s_ctrl(my_obj->fd,
2443 * @my_obj : stream object
2449 int32_t mm_stream_set_fmt(mm_stream_t *my_obj)
2457 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
2459 if (my_obj->stream_info->dim.width == 0 ||
2460 my_obj->stream_info->dim.height == 0) {
2463 my_obj->stream_info->dim.width,
2464 my_obj->stream_info->dim.height,
2465 my_obj->stream_info->fmt);
2473 msm_fmt.width = my_obj->stream_info->dim.width;
2474 msm_fmt.height = my_obj->stream_info->dim.height;
2475 msm_fmt.pixelformat = mm_stream_get_v4l2_fmt(my_obj->stream_info->fmt);
2476 msm_fmt.num_planes = my_obj->frame_offset.num_planes;
2478 msm_fmt.plane_sizes[i] = my_obj->frame_offset.mp[i].len;
2482 rc = ioctl(my_obj->fd, VIDIOC_S_FMT, &fmt);
2492 * @my_obj : stream object
2499 int32_t mm_stream_buf_done(mm_stream_t * my_obj,
2504 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
2506 pthread_mutex_lock(&my_obj->buf_lock);
2507 if(my_obj->buf_status[frame->buf_idx].buf_refcnt == 0) {
2510 my_obj->buf_status[frame->buf_idx].buf_refcnt);
2513 my_obj->buf_status[frame->buf_idx].buf_refcnt--;
2514 if (0 == my_obj->buf_status[frame->buf_idx].buf_refcnt) {
2516 rc = mm_stream_qbuf(my_obj, frame);
2521 my_obj->buf_status[frame->buf_idx].in_kernel = 1;
2525 my_obj->buf_status[frame->buf_idx].buf_refcnt);
2527 my_obj, frame->buf_idx);
2530 pthread_mutex_unlock(&my_obj->buf_lock);
2540 * @my_obj : stream object
2547 int32_t mm_stream_reg_buf_cb(mm_stream_t *my_obj,
2553 __func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
2555 pthread_mutex_lock(&my_obj->cb_lock);
2557 if(NULL == my_obj->buf_cb[i].cb) {
2558 my_obj->buf_cb[i] = *val;
2563 pthread_mutex_unlock(&my_obj->cb_lock);