#ifdef _MMCAMCORDER_RM_SUPPORT
#include <aul.h>
#include <rm_api.h>
+#include <ri-api.h>
+#include <ri-module-api.h>
#include "mm_camcorder_rm.h"
#include "mm_camcorder_internal.h"
return MM_ERROR_CAMCORDER_NOT_INITIALIZED;
}
+ memset(&rci, 0x00, sizeof(rm_consumer_info));
+
mm_camcorder_get_attributes(handle, NULL,
MMCAM_CLIENT_PID, &app_pid,
NULL);
/* RM register */
if (hcamcorder->rm_handle == 0) {
- ret = rm_register((rm_resource_cb)__mmcamcorder_rm_callback, (void*)hcamcorder, &(hcamcorder->rm_handle), &rci);
+ ret = rm_register((rm_resource_cb)__mmcamcorder_rm_callback,
+ (void*)hcamcorder,
+ &(hcamcorder->rm_handle),
+ (rci.app_id[0] != '\0') ? &rci : NULL);
if (ret != RM_OK) {
_mmcam_dbg_err("rm_register fail ret = %d",ret);
return MM_ERROR_RESOURCE_INTERNAL;
int qret_avail = 0; /* 0: not available, 1: available */
int resource_count = 0;
int display_surface_type = MM_DISPLAY_SURFACE_OVERLAY;
+ int camera_width = 0;
mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
if (!hcamcorder) {
resource_count++;
} else if (preview_format == MM_PIXEL_FORMAT_ENCODED_MJPEG) {
- hcamcorder->request_resources.state[resource_count] = RM_STATE_EXCLUSIVE;
- hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_VIDEO_DECODER_SUB;
-
- _mmcam_dbg_log("request dec rsc - category 0x%x", RM_CATEGORY_VIDEO_DECODER_SUB);
+ mm_camcorder_get_attributes(handle, NULL,
+ MMCAM_CAMERA_WIDTH, &camera_width,
+ NULL);
+ hcamcorder->request_resources.state[resource_count] = RM_STATE_EXCLUSIVE;
+ hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_MJPEG_DECODER;
+ hcamcorder->request_resources.category_option[resource_count] = ri_get_jpeg_category_id("MJPEG", camera_width);
+ _mmcam_dbg_log("request dec rsc - category 0x%x, option width [%d]", RM_CATEGORY_MJPEG_DECODER, camera_width);
resource_count++;
}
if (display_surface_type == MM_DISPLAY_SURFACE_OVERLAY) {
hcamcorder->request_resources.state[resource_count] = RM_STATE_EXCLUSIVE;
- if (preview_format == MM_PIXEL_FORMAT_ENCODED_H264)
- hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_SCALER;
- else
- hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_SCALER_SUB;
- _mmcam_dbg_log("request scaler rsc - category 0x%x", hcamcorder->request_resources.category_id[resource_count]);
+ hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_SCALER;
+ _mmcam_dbg_log("request scaler rsc - category 0x%x", RM_CATEGORY_SCALER);
resource_count++;
}
resource_count++;
} else if (preview_format == MM_PIXEL_FORMAT_ENCODED_MJPEG) {
hcamcorder->request_resources.state[resource_count] = RM_STATE_EXCLUSIVE;
- hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_VIDEO_DECODER;
- _mmcam_dbg_log("request dec rsc - category 0x%x", RM_CATEGORY_VIDEO_DECODER);
+ hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_MJPEG_DECODER;
+ hcamcorder->request_resources.category_option[resource_count] = ri_get_jpeg_category_id("MJPEG", camera_width);
+ _mmcam_dbg_log("request dec rsc - category 0x%x", RM_CATEGORY_MJPEG_DECODER);
resource_count++;
}
if (display_surface_type == MM_DISPLAY_SURFACE_OVERLAY) {
- hcamcorder->request_resources.state[resource_count] = RM_STATE_EXCLUSIVE;
- if (preview_format == MM_PIXEL_FORMAT_ENCODED_H264)
+ if (preview_format == MM_PIXEL_FORMAT_ENCODED_H264) {
+ hcamcorder->request_resources.state[resource_count] = RM_STATE_EXCLUSIVE;
hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_SCALER_SUB;
- else
+ _mmcam_dbg_log("request scaler rsc - category 0x%x", RM_CATEGORY_SCALER_SUB);
+ resource_count++;
+ } else if (preview_format == MM_PIXEL_FORMAT_ENCODED_MJPEG) {
+ hcamcorder->request_resources.state[resource_count] = RM_STATE_EXCLUSIVE;
hcamcorder->request_resources.category_id[resource_count] = RM_CATEGORY_SCALER;
- _mmcam_dbg_log("request scaler rsc - category 0x%x", hcamcorder->request_resources.category_id[resource_count]);
- resource_count++;
+ _mmcam_dbg_log("request scaler rsc - category 0x%x", RM_CATEGORY_SCALER);
+ resource_count++;
+ }
}
}
}