Home | History | Annotate | Download | only in src

Lines Matching defs:p_session

60  *    @p_session: Session obj
69 static int32_t mm_jpegdec_destroy_job(mm_jpeg_job_session_t *p_session)
71 mm_jpeg_decode_job_t *p_jobparams = &p_session->decode_job;
80 * @p_session: decode session
89 static void mm_jpegdec_job_done(mm_jpeg_job_session_t *p_session)
91 mm_jpeg_obj *my_obj = (mm_jpeg_obj *)p_session->jpeg_obj;
95 mm_jpegdec_destroy_job(p_session);
99 p_session->jobId);
103 p_session->encoding = OMX_FALSE;
125 mm_jpeg_job_session_t* p_session = (mm_jpeg_job_session_t *)data;
128 mm_jpeg_decode_params_t *p_params = &p_session->dec_params;
129 mm_jpeg_decode_job_t *p_jobparams = &p_session->decode_job;
135 ret = OMX_UseBuffer(p_session->omx_handle, &(p_session->p_in_omx_buf[i]), 0,
164 mm_jpeg_job_session_t* p_session = (mm_jpeg_job_session_t *)data;
165 mm_jpeg_decode_params_t *p_params = &p_session->dec_params;
166 mm_jpeg_decode_job_t *p_jobparams = &p_session->decode_job;
170 ret = OMX_FreeBuffer(p_session->omx_handle, 0, p_session->p_in_omx_buf[i]);
179 ret = OMX_FreeBuffer(p_session->omx_handle, 1, p_session->p_out_omx_buf[i]);
192 * @p_session: job session
201 OMX_ERRORTYPE mm_jpegdec_session_create(mm_jpeg_job_session_t* p_session)
206 pthread_mutex_init(&p_session->lock, NULL);
207 pthread_cond_init(&p_session->cond, NULL);
208 cirq_reset(&p_session->cb_q);
209 p_session->state_change_pending = OMX_FALSE;
210 p_session->abort_state = MM_JPEG_ABORT_NONE;
211 p_session->error_flag = OMX_ErrorNone;
212 p_session->ebd_count = 0;
213 p_session->fbd_count = 0;
214 p_session->encode_pid = -1;
215 p_session->config = OMX_FALSE;
217 p_session->omx_callbacks.EmptyBufferDone = mm_jpegdec_ebd;
218 p_session->omx_callbacks.FillBufferDone = mm_jpegdec_fbd;
219 p_session->omx_callbacks.EventHandler = mm_jpegdec_event_handler;
220 p_session->exif_count_local = 0;
222 rc = OMX_GetHandle(&p_session->omx_handle,
224 (void *)p_session,
225 &p_session->omx_callbacks);
237 * @p_session: job session
246 void mm_jpegdec_session_destroy(mm_jpeg_job_session_t* p_session)
251 if (NULL == p_session->omx_handle) {
256 rc = mm_jpeg_session_change_state(p_session, OMX_StateIdle, NULL);
261 rc = mm_jpeg_session_change_state(p_session, OMX_StateLoaded,
267 rc = OMX_FreeHandle(p_session->omx_handle);
271 p_session->omx_handle = NULL;
274 pthread_mutex_destroy(&p_session->lock);
275 pthread_cond_destroy(&p_session->cond);
282 * @p_session: job session
291 OMX_ERRORTYPE mm_jpegdec_session_config_ports(mm_jpeg_job_session_t* p_session)
294 mm_jpeg_decode_params_t *p_params = &p_session->dec_params;
295 mm_jpeg_decode_job_t *p_jobparams = &p_session->decode_job;
300 p_session->inputPort.nPortIndex = 0;
301 p_session->outputPort.nPortIndex = 1;
304 ret = OMX_GetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
305 &p_session->inputPort);
311 ret = OMX_GetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
312 &p_session->outputPort);
318 p_session->inputPort.format.image.nFrameWidth =
320 p_session->inputPort.format.image.nFrameHeight =
322 p_session->inputPort.format.image.nStride =
324 p_session->inputPort.format.image.nSliceHeight =
326 p_session->inputPort.format.image.eColorFormat =
328 p_session->inputPort.nBufferSize =
330 p_session->inputPort.nBufferCountActual = p_params->num_src_bufs;
331 ret = OMX_SetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
332 &p_session->inputPort);
345 * @p_session: job session
354 OMX_ERRORTYPE mm_jpegdec_session_config_main(mm_jpeg_job_session_t *p_session)
358 mm_jpeg_decode_params_t *p_params = &p_session->dec_params;
359 mm_jpeg_decode_job_t *p_jobparams = &p_session->decode_job;
363 rc = mm_jpegdec_session_config_ports(p_session);
387 static OMX_ERRORTYPE mm_jpegdec_session_configure(mm_jpeg_job_session_t *p_session)
390 mm_jpeg_decode_params_t *p_params = &p_session->dec_params;
391 mm_jpeg_decode_job_t *p_jobparams = &p_session->decode_job;
392 mm_jpeg_obj *my_obj = (mm_jpeg_obj *)p_session->jpeg_obj;
396 MM_JPEG_CHK_ABORT(p_session, ret, error);
399 ret = mm_jpegdec_session_config_main(p_session);
407 ret = mm_jpeg_session_change_state(p_session, OMX_StateIdle,
415 ret = mm_jpeg_session_change_state(p_session, OMX_StateExecuting,
429 mm_jpeg_job_session_t *p_session,
436 pthread_mutex_lock(&p_session->lock);
437 p_session->event_pending = OMX_TRUE;
438 pthread_mutex_unlock(&p_session->lock);
440 ret = OMX_SendCommand(p_session->omx_handle, OMX_CommandPortEnable,
450 pthread_mutex_lock(&p_session->lock);
451 if (p_session->event_pending == OMX_TRUE) {
453 pthread_cond_wait(&p_session->cond, &p_session->lock);
454 lEvent = p_session->omxEvent;
457 lEvent = p_session->omxEvent;
458 pthread_mutex_unlock(&p_session->lock);
469 mm_jpeg_job_session_t *p_session,
476 pthread_mutex_lock(&p_session->lock);
477 p_session->event_pending = OMX_TRUE;
478 pthread_mutex_unlock(&p_session->lock);
480 ret = OMX_SendCommand(p_session->omx_handle, OMX_CommandPortDisable,
489 pthread_mutex_lock(&p_session->lock);
490 if (p_session->event_pending == OMX_TRUE) {
492 pthread_cond_wait(&p_session->cond, &p_session->lock);
496 lEvent = p_session->omxEvent;
497 pthread_mutex_unlock(&p_session->lock);
511 * @p_session: encode session
520 static OMX_ERRORTYPE mm_jpegdec_session_decode(mm_jpeg_job_session_t *p_session)
523 mm_jpeg_decode_params_t *p_params = &p_session->dec_params;
524 mm_jpeg_decode_job_t *p_jobparams = &p_session->decode_job;
526 mm_jpeg_obj *my_obj = (mm_jpeg_obj *)p_session->jpeg_obj;
531 pthread_mutex_lock(&p_session->lock);
532 p_session->abort_state = MM_JPEG_ABORT_NONE;
533 p_session->encoding = OMX_FALSE;
534 pthread_mutex_unlock(&p_session->lock);
536 if (OMX_FALSE == p_session->config) {
537 ret = mm_jpegdec_session_configure(p_session);
542 p_session->config = OMX_TRUE;
545 pthread_mutex_lock(&p_session->lock);
546 p_session->encoding = OMX_TRUE;
547 pthread_mutex_unlock(&p_session->lock);
549 MM_JPEG_CHK_ABORT(p_session, ret, error);
551 p_session->event_pending = OMX_TRUE;
553 ret = OMX_EmptyThisBuffer(p_session->omx_handle,
554 p_session->p_in_omx_buf[p_jobparams->src_index]);
561 pthread_mutex_lock(&p_session->lock);
562 if (p_session->event_pending == OMX_TRUE) {
564 pthread_cond_wait(&p_session->cond, &p_session->lock);
566 lEvent = p_session->omxEvent;
568 pthread_mutex_unlock(&p_session->lock);
576 mm_jpeg_session_port_disable(p_session,
577 p_session->outputPort.nPortIndex,
581 ret = OMX_GetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
582 &p_session->outputPort);
589 p_session->outputPort.format.image.nFrameWidth =
591 p_session->outputPort.format.image.nFrameHeight =
593 p_session->outputPort.format.image.eColorFormat =
596 p_session->outputPort.nBufferSize =
598 p_session->outputPort.nBufferCountActual = p_params->num_dst_bufs;
600 p_session->outputPort.format.image.nSliceHeight =
602 p_session->outputPort.format.image.nStride =
605 ret = OMX_SetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
606 &p_session->outputPort);
613 mm_jpeg_session_port_enable(p_session,
614 p_session->outputPort.nPortIndex,
622 ret = OMX_UseBuffer(p_session->omx_handle, &(p_session->p_out_omx_buf[i]),
632 pthread_mutex_lock(&p_session->lock);
633 if (p_session->event_pending == OMX_TRUE) {
635 pthread_cond_wait(&p_session->cond, &p_session->lock);
636 lEvent = p_session->omxEvent;
639 lEvent = p_session->omxEvent;
640 pthread_mutex_unlock(&p_session->lock);
647 ret = OMX_FillThisBuffer(p_session->omx_handle,
648 p_session->p_out_omx_buf[p_jobparams->dst_index]);
654 MM_JPEG_CHK_ABORT(p_session, ret, error);
679 mm_jpeg_job_session_t *p_session = NULL;
683 p_session = mm_jpeg_get_session(my_obj, job_node->dec_info.job_id);
684 if (NULL == p_session) {
698 p_session->decode_job = job_node->dec_info.decode_job;
699 p_session->jobId = job_node->dec_info.job_id;
700 ret = mm_jpegdec_session_decode(p_session);
712 (NULL != p_session->dec_params.jpeg_cb)) {
713 p_session->job_status = JPEG_JOB_STATUS_ERROR;
715 p_session->job_status);
716 p_session->dec_params.jpeg_cb(p_session->job_status,
717 p_session->client_hdl,
718 p_session->jobId,
720 p_session->dec_params.userdata);
724 mm_jpegdec_job_done(p_session);
753 mm_jpeg_job_session_t *p_session = NULL;
771 p_session = &my_obj->clnt_mgr[client_idx].session[session_idx];
772 if (OMX_FALSE == p_session->active) {
778 if ((p_jobparams->src_index >= p_session->dec_params.num_src_bufs) ||
779 (p_jobparams->dst_index >= p_session->dec_params.num_dst_bufs)) {
792 ((p_session->job_hist++ % JOB_HIST_MAX) << 16);
797 node->dec_info.client_handle = p_session->client_hdl;
832 mm_jpeg_job_session_t *p_session = NULL;
849 session_idx = mm_jpeg_get_new_session_idx(my_obj, clnt_idx, &p_session);
855 ret = mm_jpegdec_session_create(p_session);
857 p_session->active = OMX_FALSE;
865 p_session->dec_params = *p_params;
866 p_session->client_hdl = client_hdl;
867 p_session->sessionId = *p_session_id;
868 p_session->jpeg_obj = (void*)my_obj; /* save a ptr to jpeg_obj */
888 mm_jpeg_job_session_t *p_session)
895 if (NULL == p_session) {
899 uint32_t session_id = p_session->sessionId;
919 mm_jpeg_session_abort(p_session);
920 mm_jpegdec_session_destroy(p_session);
947 mm_jpeg_job_session_t *p_session = mm_jpeg_get_session(my_obj, session_id);
949 if (NULL == p_session) {
954 return mm_jpegdec_destroy_session(my_obj, p_session);
964 mm_jpeg_job_session_t *p_session = (mm_jpeg_job_session_t *) pAppData;
966 CDBG("%s:%d] count %d ", __func__, __LINE__, p_session->ebd_count);
967 pthread_mutex_lock(&p_session->lock);
968 p_session->ebd_count++;
969 pthread_mutex_unlock(&p_session->lock);
978 mm_jpeg_job_session_t *p_session = (mm_jpeg_job_session_t *) pAppData;
983 CDBG("%s:%d] count %d ", __func__, __LINE__, p_session->fbd_count);
985 pthread_mutex_lock(&p_session->lock);
987 if (MM_JPEG_ABORT_NONE != p_session->abort_state) {
988 pthread_mutex_unlock(&p_session->lock);
992 p_session->fbd_count++;
993 if (NULL != p_session->dec_params.jpeg_cb) {
994 p_session->job_status = JPEG_JOB_STATUS_DONE;
999 p_session->job_status);
1000 p_session->dec_params.jpeg_cb(p_session->job_status,
1001 p_session->client_hdl,
1002 p_session->jobId,
1004 p_session->dec_params.userdata);
1007 mm_jpegdec_job_done(p_session);
1009 pthread_mutex_unlock(&p_session->lock);
1022 mm_jpeg_job_session_t *p_session = (mm_jpeg_job_session_t *) pAppData;
1025 (int)nData2, p_session->abort_state);
1029 pthread_mutex_lock(&p_session->lock);
1030 p_session->omxEvent = eEvent;
1031 if (MM_JPEG_ABORT_INIT == p_session->abort_state) {
1032 p_session->abort_state = MM_JPEG_ABORT_DONE;
1033 pthread_cond_signal(&p_session->cond);
1034 pthread_mutex_unlock(&p_session->lock);
1039 if (p_session->encoding == OMX_TRUE) {
1043 if (NULL != p_session->dec_params.jpeg_cb) {
1044 p_session->job_status = JPEG_JOB_STATUS_ERROR;
1046 p_session->job_status);
1047 p_session->dec_params.jpeg_cb(p_session->job_status,
1048 p_session->client_hdl,
1049 p_session->jobId,
1051 p_session->dec_params.userdata);
1055 mm_jpegdec_job_done(p_session);
1057 pthread_cond_signal(&p_session->cond);
1059 p_session->state_change_pending = OMX_FALSE;
1060 p_session->event_pending = OMX_FALSE;
1061 pthread_cond_signal(&p_session->cond);
1063 p_session->event_pending = OMX_FALSE;
1064 pthread_cond_signal(&p_session->cond);
1067 pthread_mutex_unlock(&p_session->lock);
1093 mm_jpeg_job_session_t *p_session = NULL;
1109 p_session = mm_jpeg_get_session(my_obj, node->dec_info.job_id);
1110 if (p_session) {
1111 mm_jpeg_session_abort(p_session);