Home | History | Annotate | Download | only in src

Lines Matching refs:p_session

68 static int32_t mm_jpegenc_destroy_job(mm_jpeg_job_session_t *p_session);
69 static void mm_jpegenc_job_done(mm_jpeg_job_session_t *p_session);
72 static OMX_ERRORTYPE mm_jpeg_session_configure(mm_jpeg_job_session_t *p_session);
89 mm_jpeg_job_session_t* p_session = (mm_jpeg_job_session_t *)data;
92 mm_jpeg_encode_params_t *p_params = &p_session->params;
93 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
99 ret = OMX_UseBuffer(p_session->omx_handle, &(p_session->p_in_omx_buf[i]), 0,
111 ret = OMX_UseBuffer(p_session->omx_handle,
112 &(p_session->p_in_omx_thumb_buf[i]), 2,
123 ret = OMX_UseBuffer(p_session->omx_handle, &(p_session->p_out_omx_buf[i]),
152 mm_jpeg_job_session_t* p_session = (mm_jpeg_job_session_t *)data;
153 mm_jpeg_encode_params_t *p_params = &p_session->params;
154 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
158 ret = OMX_FreeBuffer(p_session->omx_handle, 0, p_session->p_in_omx_buf[i]);
167 ret = OMX_FreeBuffer(p_session->omx_handle, 2, p_session->p_in_omx_thumb_buf[i]);
176 ret = OMX_FreeBuffer(p_session->omx_handle, 1, p_session->p_out_omx_buf[i]);
192 * @p_session: job session
203 OMX_ERRORTYPE mm_jpeg_session_change_state(mm_jpeg_job_session_t* p_session,
213 pthread_mutex_lock(&p_session->lock);
215 ret = OMX_GetState(p_session->omx_handle, &current_state);
218 pthread_mutex_unlock(&p_session->lock);
223 pthread_mutex_unlock(&p_session->lock);
227 p_session->state_change_pending = OMX_TRUE;
228 pthread_mutex_unlock(&p_session->lock);
229 ret = OMX_SendCommand(p_session->omx_handle, OMX_CommandStateSet,
231 pthread_mutex_lock(&p_session->lock);
234 pthread_mutex_unlock(&p_session->lock);
238 if ((OMX_ErrorNone != p_session->error_flag) &&
239 (OMX_ErrorOverflow != p_session->error_flag)) {
240 CDBG_ERROR("%s:%d] Error %d", __func__, __LINE__, p_session->error_flag);
241 pthread_mutex_unlock(&p_session->lock);
242 return p_session->error_flag;
245 ret = p_exec(p_session);
248 pthread_mutex_unlock(&p_session->lock);
253 if (p_session->state_change_pending) {
255 pthread_cond_wait(&p_session->cond, &p_session->lock);
258 pthread_mutex_unlock(&p_session->lock);
266 * @p_session: job session
275 OMX_ERRORTYPE mm_jpeg_session_create(mm_jpeg_job_session_t* p_session)
279 mm_jpeg_obj *my_obj = (mm_jpeg_obj *) p_session->jpeg_obj;
282 pthread_mutex_init(&p_session->lock, NULL);
283 pthread_cond_init(&p_session->cond, NULL);
284 cirq_reset(&p_session->cb_q);
285 p_session->state_change_pending = OMX_FALSE;
286 p_session->abort_state = MM_JPEG_ABORT_NONE;
287 p_session->error_flag = OMX_ErrorNone;
288 p_session->ebd_count = 0;
289 p_session->fbd_count = 0;
290 p_session->encode_pid = -1;
291 p_session->config = OMX_FALSE;
292 p_session->exif_count_local = 0;
293 p_session->auto_out_buf = OMX_FALSE;
295 p_session->omx_callbacks.EmptyBufferDone = mm_jpeg_ebd;
296 p_session->omx_callbacks.FillBufferDone = mm_jpeg_fbd;
297 p_session->omx_callbacks.EventHandler = mm_jpeg_event_handler;
300 rc = OMX_GetHandle(&p_session->omx_handle,
302 (void *)p_session,
303 &p_session->omx_callbacks);
319 * @p_session: job session
328 void mm_jpeg_session_destroy(mm_jpeg_job_session_t* p_session)
332 mm_jpeg_obj *my_obj = (mm_jpeg_obj *) p_session->jpeg_obj;
335 if (NULL == p_session->omx_handle) {
340 rc = OMX_GetState(p_session->omx_handle, &state);
344 rc = mm_jpeg_session_change_state(p_session, OMX_StateIdle, NULL);
350 rc = OMX_GetState(p_session->omx_handle, &state);
353 rc = mm_jpeg_session_change_state(p_session, OMX_StateLoaded,
360 rc = OMX_FreeHandle(p_session->omx_handle);
364 p_session->omx_handle = NULL;
366 pthread_mutex_destroy(&p_session->lock);
367 pthread_cond_destroy(&p_session->cond);
369 if (NULL != p_session->meta_enc_key) {
370 free(p_session->meta_enc_key);
371 p_session->meta_enc_key = NULL;
377 if (p_session->next_session) {
378 mm_jpeg_session_destroy(p_session->next_session);
389 * @p_session: job session
399 mm_jpeg_job_session_t* p_session)
406 mm_jpeg_encode_params_t *p_params = &p_session->params;
420 rc = OMX_GetExtensionIndex(p_session->omx_handle,
436 rc = OMX_SetParameter(p_session->omx_handle, buffer_index, &frame_info);
447 * @p_session: job session
458 mm_jpeg_job_session_t* p_session)
465 mm_jpeg_encode_params_t *p_params = &p_session->params;
466 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
468 rc = OMX_GetExtensionIndex(p_session->omx_handle,
482 rc = OMX_SetParameter(p_session->omx_handle, indextype, &encoding_mode);
493 * @p_session: job session
503 mm_jpeg_job_session_t* p_session)
510 mm_jpeg_encode_params_t *p_params = &p_session->params;
511 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
513 rc = OMX_GetExtensionIndex(p_session->omx_handle,
526 rc = OMX_SetParameter(p_session->omx_handle, indextype, &jpeg_speed);
538 * @p_session: job session
549 mm_jpeg_job_session_t* p_session)
556 mm_jpeg_encode_params_t *p_params = &p_session->params;
557 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
561 rc = OMX_GetExtensionIndex(p_session->omx_handle,
568 rc = OMX_SetParameter(p_session->omx_handle, indextype, &mem_ops);
579 * @p_session: job session
589 mm_jpeg_job_session_t* p_session)
594 p_session->params;
595 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
598 rc = OMX_GetExtensionIndex(p_session->omx_handle,
609 rc = OMX_SetConfig(p_session->omx_handle, indexType, &lMeta);
620 * @p_session: job session
630 mm_jpeg_job_session_t* p_session)
634 mm_jpeg_encode_params_t *p_params = &p_session->params;
635 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
638 lKey.metaKey = p_session->meta_enc_key;
639 lKey.keyLen = p_session->meta_enc_keylen;
646 rc = OMX_GetExtensionIndex(p_session->omx_handle,
654 rc = OMX_SetConfig(p_session->omx_handle, indexType, &lKey);
704 * @p_session: job session
713 OMX_ERRORTYPE mm_jpeg_session_config_ports(mm_jpeg_job_session_t* p_session)
716 mm_jpeg_encode_params_t *p_params = &p_session->params;
722 p_session->inputPort.nPortIndex = 0;
723 p_session->outputPort.nPortIndex = 1;
724 p_session->inputTmbPort.nPortIndex = 2;
726 ret = OMX_GetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
727 &p_session->inputPort);
733 ret = OMX_GetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
734 &p_session->inputTmbPort);
740 ret = OMX_GetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
741 &p_session->outputPort);
747 p_session->inputPort.format.image.nFrameWidth =
749 p_session->inputPort.format.image.nFrameHeight =
751 p_session->inputPort.format.image.nStride =
753 p_session->inputPort.format.image.nSliceHeight =
755 p_session->inputPort.format.image.eColorFormat =
757 p_session->inputPort.nBufferSize =
759 p_session->inputPort.nBufferCountActual = p_params->num_src_bufs;
760 ret = OMX_SetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
761 &p_session->inputPort);
767 if (p_session->params.encode_thumbnail) {
770 p_session->inputTmbPort.format.image.nFrameWidth =
772 p_session->inputTmbPort.format.image.nFrameHeight =
774 p_session->inputTmbPort.format.image.nStride =
776 p_session->inputTmbPort.format.image.nSliceHeight =
778 p_session->inputTmbPort.format.image.eColorFormat =
780 p_session->inputTmbPort.nBufferSize =
782 p_session->inputTmbPort.nBufferCountActual = p_params->num_tmb_bufs;
783 ret = OMX_SetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
784 &p_session->inputTmbPort);
792 ret = OMX_SendCommand(p_session->omx_handle, OMX_CommandPortEnable,
793 p_session->inputTmbPort.nPortIndex, NULL);
801 ret = OMX_SendCommand(p_session->omx_handle, OMX_CommandPortDisable,
802 p_session->inputTmbPort.nPortIndex, NULL);
810 p_session->outputPort.nBufferSize =
812 p_session->outputPort.nBufferCountActual = p_params->num_dst_bufs;
813 ret = OMX_SetParameter(p_session->omx_handle, OMX_IndexParamPortDefinition,
814 &p_session->outputPort);
824 ret = OMX_SetConfig(p_session->omx_handle, OMX_IndexConfigCommonRotate,
839 * @p_session: job session
848 OMX_ERRORTYPE mm_jpeg_session_config_thumbnail(mm_jpeg_job_session_t* p_session)
854 mm_jpeg_encode_params_t *p_params = &p_session->params;
855 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
899 ret = OMX_GetExtensionIndex(p_session->omx_handle,
941 ret = OMX_SetConfig(p_session->omx_handle, thumb_indextype,
954 * @p_session: job session
963 OMX_ERRORTYPE mm_jpeg_session_config_main_crop(mm_jpeg_job_session_t *p_session)
967 mm_jpeg_encode_params_t *p_params = &p_session->params;
968 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
1008 ret = OMX_SetConfig(p_session->omx_handle, OMX_IndexConfigCommonInputCrop,
1021 ret = OMX_SetConfig(p_session->omx_handle, OMX_IndexConfigCommonOutputCrop,
1038 * @p_session: job session
1047 OMX_ERRORTYPE mm_jpeg_session_config_main(mm_jpeg_job_session_t *p_session)
1053 rc = mm_jpeg_session_config_ports(p_session);
1061 rc = mm_jpeg_session_config_main_buffer_offset(p_session);
1068 rc = mm_jpeg_encoding_mode(p_session);
1075 rc = mm_jpeg_meta_enc_key(p_session);
1082 rc = mm_jpeg_mem_ops(p_session);
1088 rc = mm_jpeg_speed_mode(p_session);
1100 * @p_session: job session
1109 OMX_ERRORTYPE mm_jpeg_session_config_common(mm_jpeg_job_session_t *p_session)
1115 mm_jpeg_encode_params_t *p_params = &p_session->params;
1116 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
1123 rc = OMX_SetConfig(p_session->omx_handle, OMX_IndexConfigCommonRotate,
1133 memset(&p_session->exif_info_local[0], 0, sizeof(p_session->exif_info_local));
1134 rc = OMX_GetExtensionIndex(p_session->omx_handle, QOMX_IMAGE_EXT_EXIF_NAME,
1144 rc = OMX_SetConfig(p_session->omx_handle, exif_idx,
1154 exif_info.exif_data = &p_session->exif_info_local[0];
1158 p_session->exif_count_local = exif_info.numOfEntries;
1165 rc = OMX_SetConfig(p_session->omx_handle, exif_idx,
1185 * @p_session: jpeg session
1194 OMX_BOOL mm_jpeg_session_abort(mm_jpeg_job_session_t *p_session)
1200 pthread_mutex_lock(&p_session->lock);
1201 if (MM_JPEG_ABORT_NONE != p_session->abort_state) {
1202 pthread_mutex_unlock(&p_session->lock);
1206 p_session->abort_state = MM_JPEG_ABORT_INIT;
1207 if (OMX_TRUE == p_session->encoding) {
1208 p_session->state_change_pending = OMX_TRUE;
1211 pthread_mutex_unlock(&p_session->lock);
1213 ret = OMX_SendCommand(p_session->omx_handle, OMX_CommandStateSet,
1220 rc = mm_jpegenc_destroy_job(p_session);
1225 pthread_mutex_lock(&p_session->lock);
1226 if (MM_JPEG_ABORT_INIT == p_session->abort_state) {
1228 pthread_cond_wait(&p_session->cond, &p_session->lock);
1232 p_session->abort_state = MM_JPEG_ABORT_DONE;
1233 pthread_mutex_unlock(&p_session->lock);
1237 if (p_session->next_session) {
1238 mm_jpeg_session_abort(p_session->next_session);
1249 * @p_session: encode session
1259 mm_jpeg_job_session_t *p_session)
1265 mm_jpeg_encode_params_t *p_params = &p_session->params;
1266 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
1270 ret = mm_jpeg_session_config_common(p_session);
1278 ret = mm_jpeg_session_config_main_crop(p_session);
1288 ret = OMX_SetConfig(p_session->omx_handle, OMX_IndexParamQFactor, &q_factor);
1296 ret = mm_jpeg_session_config_thumbnail(p_session);
1304 ret = OMX_GetExtensionIndex(p_session->omx_handle,
1312 work_buffer.fd = p_session->work_buffer.p_pmem_fd;
1313 work_buffer.vaddr = p_session->work_buffer.addr;
1314 work_buffer.length = p_session->work_buffer.size;
1318 buffer_invalidate(&p_session->work_buffer);
1320 ret = OMX_SetConfig(p_session->omx_handle, work_buffer_index,
1328 ret = mm_jpeg_metadata(p_session);
1337 ret = OMX_SetConfig(p_session->omx_handle,
1361 static OMX_ERRORTYPE mm_jpeg_session_configure(mm_jpeg_job_session_t *p_session)
1364 mm_jpeg_encode_params_t *p_params = &p_session->params;
1365 mm_jpeg_obj *my_obj = (mm_jpeg_obj *)p_session->jpeg_obj;
1369 MM_JPEG_CHK_ABORT(p_session, ret, error);
1372 ret = mm_jpeg_session_config_main(p_session);
1377 ret = mm_jpeg_session_change_state(p_session, OMX_StateIdle,
1385 ret = mm_jpeg_session_change_state(p_session, OMX_StateExecuting,
1406 * @p_session: encode session
1415 static OMX_ERRORTYPE mm_jpeg_session_encode(mm_jpeg_job_session_t *p_session)
1418 mm_jpeg_encode_params_t *p_params = &p_session->params;
1419 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
1421 mm_jpeg_obj *my_obj = (mm_jpeg_obj *)p_session->jpeg_obj;
1423 pthread_mutex_lock(&p_session->lock);
1424 p_session->abort_state = MM_JPEG_ABORT_NONE;
1425 p_session->encoding = OMX_FALSE;
1426 pthread_mutex_unlock(&p_session->lock);
1428 if (OMX_FALSE == p_session->config) {
1429 ret = mm_jpeg_session_configure(p_session);
1434 p_session->config = OMX_TRUE;
1437 ret = mm_jpeg_configure_job_params(p_session);
1442 pthread_mutex_lock(&p_session->lock);
1443 p_session->encoding = OMX_TRUE;
1444 pthread_mutex_unlock(&p_session->lock);
1446 MM_JPEG_CHK_ABORT(p_session, ret, error);
1450 snprintf(filename, 255, "/data/jpeg/mm_jpeg_int%d.yuv", p_session->ebd_count);
1452 p_session->p_in_omx_buf[p_jobparams->src_index]->pBuffer,
1453 (int)p_session->p_in_omx_buf[p_jobparams->src_index]->nAllocLen);
1456 ret = OMX_EmptyThisBuffer(p_session->omx_handle,
1457 p_session->p_in_omx_buf[p_jobparams->src_index]);
1463 if (p_session->params.encode_thumbnail) {
1467 p_session->ebd_count);
1469 p_session->p_in_omx_thumb_buf[p_jobparams->thumb_index]->pBuffer,
1470 (int)p_session->p_in_omx_thumb_buf[p_jobparams->thumb_index]->nAllocLen);
1472 ret = OMX_EmptyThisBuffer(p_session->omx_handle,
1473 p_session->p_in_omx_thumb_buf[p_jobparams->thumb_index]);
1480 ret = OMX_FillThisBuffer(p_session->omx_handle,
1481 p_session->p_out_omx_buf[p_jobparams->dst_index]);
1487 MM_JPEG_CHK_ABORT(p_session, ret, error);
1512 mm_jpeg_job_session_t *p_session = NULL;
1518 p_session = mm_jpeg_get_session(my_obj, job_node->enc_info.job_id);
1519 if (NULL == p_session) {
1529 p_session = mm_jpeg_queue_deq(p_session->session_handle_q);
1531 if (NULL == p_session) {
1543 p_session->auto_out_buf = OMX_FALSE;
1546 buf_idx = (uint32_t)mm_jpeg_queue_deq(p_session->out_buf_q);
1557 p_session->auto_out_buf = OMX_TRUE;
1568 p_session->encode_job = job_node->enc_info.encode_job;
1569 p_session->jobId = job_node->enc_info.job_id;
1570 ret = mm_jpeg_session_encode(p_session);
1582 (NULL != p_session->params.jpeg_cb)) {
1583 p_session->job_status = JPEG_JOB_STATUS_ERROR;
1585 p_session->job_status);
1586 p_session->params.jpeg_cb(p_session->job_status,
1587 p_session->client_hdl,
1588 p_session->jobId,
1590 p_session->params.userdata);
1594 mm_jpegenc_job_done(p_session);
1945 mm_jpeg_job_session_t *p_session = NULL;
1964 p_session = &my_obj->clnt_mgr[client_idx].session[session_idx];
1965 if (OMX_FALSE == p_session->active) {
1971 if ((p_jobparams->src_index >= (int32_t)p_session->params.num_src_bufs) ||
1972 (p_jobparams->dst_index >= (int32_t)p_session->params.num_dst_bufs)) {
1985 ((p_session->job_hist++ % JOB_HIST_MAX) << 16);
1990 node->enc_info.client_handle = p_session->client_hdl;
2028 mm_jpeg_job_session_t *p_session = NULL;
2044 p_session = mm_jpeg_get_session(my_obj, node->enc_info.job_id);
2045 if (p_session) {
2046 mm_jpeg_session_abort(p_session);
2062 static int32_t mm_jpeg_read_meta_keyfile(mm_jpeg_job_session_t *p_session, const char *filename)
2076 p_session->meta_enc_key = (uint8_t *) malloc((file_size + 1) * sizeof(uint8_t));
2078 if (!p_session->meta_enc_key) {
2083 fread(p_session->meta_enc_key, 1, file_size, fp);
2086 p_session->meta_enc_keylen = file_size;
2115 mm_jpeg_job_session_t *p_session = NULL;
2194 session_idx = mm_jpeg_get_new_session_idx(my_obj, clnt_idx, &p_session);
2200 p_session->next_session = NULL;
2203 p_prev_session->next_session = p_session;
2205 p_prev_session = p_session;
2209 p_session->work_buffer = my_obj->ionBuffer[buf_idx];
2211 p_session->work_buffer.addr = NULL;
2212 p_session->work_buffer.ion_fd = -1;
2213 p_session->work_buffer.p_pmem_fd = -1;
2216 p_session->jpeg_obj = (void*)my_obj; /* save a ptr to jpeg_obj */
2218 ret = mm_jpeg_session_create(p_session);
2220 p_session->active = OMX_FALSE;
2232 p_session->params = *p_params;
2233 p_session->client_hdl = client_hdl;
2234 p_session->sessionId = session_id;
2235 p_session->session_handle_q = p_session_handle_q;
2236 p_session->out_buf_q = p_out_buf_q;
2238 mm_jpeg_queue_enq(p_session_handle_q, p_session);
2240 p_session->meta_enc_key = NULL;
2241 p_session->meta_enc_keylen = 0;
2244 mm_jpeg_read_meta_keyfile(p_session, META_KEYFILE);
2247 if (OMX_FALSE == p_session->config) {
2248 rc = mm_jpeg_session_configure(p_session);
2253 p_session->config = OMX_TRUE;
2255 p_session->num_omx_sessions = num_omx_sessions;
2271 * @p_session: Session obj
2280 static int32_t mm_jpegenc_destroy_job(mm_jpeg_job_session_t *p_session)
2282 mm_jpeg_encode_job_t *p_jobparams = &p_session->encode_job;
2287 (int)p_session->exif_count_local);
2288 for (i = 0; i < p_session->exif_count_local; i++) {
2289 rc = releaseExifEntry(&p_session->exif_info_local[i]);
2294 p_session->exif_count_local = 0;
2302 * @p_session: encode session
2311 static void mm_jpegenc_job_done(mm_jpeg_job_session_t *p_session)
2313 mm_jpeg_obj *my_obj = (mm_jpeg_obj *)p_session->jpeg_obj;
2317 mm_jpegenc_destroy_job(p_session);
2321 p_session->jobId);
2325 p_session->encoding = OMX_FALSE;
2328 mm_jpeg_queue_enq(p_session->session_handle_q, p_session);
2330 if (p_session->auto_out_buf) {
2332 mm_jpeg_queue_enq(p_session->out_buf_q, (void*)(p_session->encode_job.dst_index +1));
2353 mm_jpeg_job_session_t *p_session)
2362 if (NULL == p_session) {
2367 session_id = p_session->sessionId;
2388 mm_jpeg_session_abort(p_session);
2389 mm_jpeg_session_destroy(p_session);
2391 p_cur_sess = p_session;
2400 while (NULL != mm_jpeg_queue_deq(p_session->session_handle_q))
2402 mm_jpeg_queue_deinit(p_session->session_handle_q);
2403 free(p_session->session_handle_q);
2404 p_session->session_handle_q = NULL;
2406 while (NULL != mm_jpeg_queue_deq(p_session->out_buf_q))
2408 mm_jpeg_queue_deinit(p_session->out_buf_q);
2409 free(p_session->out_buf_q);
2410 p_session->out_buf_q = NULL;
2439 mm_jpeg_job_session_t *p_session)
2446 if (NULL == p_session) {
2451 session_id = p_session->sessionId;
2470 mm_jpeg_session_abort(p_session);
2491 mm_jpeg_job_session_t *p_session = mm_jpeg_get_session(my_obj, session_id);
2493 return mm_jpeg_destroy_session(my_obj, p_session);
2565 mm_jpeg_job_session_t *p_session = (mm_jpeg_job_session_t *) pAppData;
2567 CDBG("%s:%d] count %d ", __func__, __LINE__, p_session->ebd_count);
2568 pthread_mutex_lock(&p_session->lock);
2569 p_session->ebd_count++;
2570 pthread_mutex_unlock(&p_session->lock);
2579 mm_jpeg_job_session_t *p_session = (mm_jpeg_job_session_t *) pAppData;
2583 CDBG("%s:%d] count %d ", __func__, __LINE__, p_session->fbd_count);
2586 pthread_mutex_lock(&p_session->lock);
2588 if (MM_JPEG_ABORT_NONE != p_session->abort_state) {
2589 pthread_mutex_unlock(&p_session->lock);
2593 p_session->fbd_count++;
2594 if (NULL != p_session->params.jpeg_cb) {
2596 p_session->job_status = JPEG_JOB_STATUS_DONE;
2601 p_session->job_status, pBuffer->pBuffer, pBuffer->nFilledLen, p_session->jobId);
2602 p_session->params.jpeg_cb(p_session->job_status,
2603 p_session->client_hdl,
2604 p_session->jobId,
2606 p_session->params.userdata);
2608 mm_jpegenc_job_done(p_session);
2611 pthread_mutex_unlock(&p_session->lock);
2626 mm_jpeg_job_session_t *p_session = (mm_jpeg_job_session_t *) pAppData;
2629 (int)nData2, p_session->abort_state);
2631 pthread_mutex_lock(&p_session->lock);
2633 if (MM_JPEG_ABORT_INIT == p_session->abort_state) {
2634 p_session->abort_state = MM_JPEG_ABORT_DONE;
2635 pthread_cond_signal(&p_session->cond);
2636 pthread_mutex_unlock(&p_session->lock);
2641 p_session->error_flag = nData2;
2642 if (p_session->encoding == OMX_TRUE) {
2646 if (NULL != p_session->params.jpeg_cb) {
2647 p_session->job_status = JPEG_JOB_STATUS_ERROR;
2649 p_session->job_status);
2650 p_session->params.jpeg_cb(p_session->job_status,
2651 p_session->client_hdl,
2652 p_session->jobId,
2654 p_session->params.userdata);
2658 mm_jpegenc_job_done(p_session);
2660 pthread_cond_signal(&p_session->cond);
2662 if (p_session->state_change_pending == OMX_TRUE) {
2663 p_session->state_change_pending = OMX_FALSE;
2664 pthread_cond_signal(&p_session->cond);
2668 pthread_mutex_unlock(&p_session->lock);