Fix video recording
This commit is contained in:
parent
4a3722f898
commit
41f0c0db20
@ -53,7 +53,7 @@ static struct hw_module_methods_t camera_module_methods = {
|
|||||||
|
|
||||||
camera_module_t HAL_MODULE_INFO_SYM = {
|
camera_module_t HAL_MODULE_INFO_SYM = {
|
||||||
.common = {
|
.common = {
|
||||||
tag: HARDWARE_MODULE_TAG,
|
.tag = HARDWARE_MODULE_TAG,
|
||||||
.module_api_version = CAMERA_MODULE_API_VERSION_1_0,
|
.module_api_version = CAMERA_MODULE_API_VERSION_1_0,
|
||||||
.hal_api_version = HARDWARE_HAL_API_VERSION,
|
.hal_api_version = HARDWARE_HAL_API_VERSION,
|
||||||
.id = CAMERA_HARDWARE_MODULE_ID,
|
.id = CAMERA_HARDWARE_MODULE_ID,
|
||||||
@ -104,6 +104,10 @@ static int check_vendor_module()
|
|||||||
|
|
||||||
#define KEY_VIDEO_HFR_VALUES "video-hfr-values"
|
#define KEY_VIDEO_HFR_VALUES "video-hfr-values"
|
||||||
|
|
||||||
|
// nv12-venus is needed for blobs, but
|
||||||
|
// framework has no idea what it is
|
||||||
|
#define PIXEL_FORMAT_NV12_VENUS "nv12-venus"
|
||||||
|
|
||||||
static char *camera_fixup_getparams(int __attribute__((unused)) id,
|
static char *camera_fixup_getparams(int __attribute__((unused)) id,
|
||||||
const char *settings)
|
const char *settings)
|
||||||
{
|
{
|
||||||
@ -120,6 +124,12 @@ static char *camera_fixup_getparams(int __attribute__((unused)) id,
|
|||||||
* that it really is okay to turn it off.
|
* that it really is okay to turn it off.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const char *recordHint = params.get(android::CameraParameters::KEY_RECORDING_HINT);
|
||||||
|
bool videoMode = recordHint ? !strcmp(recordHint, "true") : false;
|
||||||
|
|
||||||
|
if (strcmp (params.getPreviewFormat(), PIXEL_FORMAT_NV12_VENUS) == 0)
|
||||||
|
params.setPreviewFormat(params.PIXEL_FORMAT_YUV420SP);
|
||||||
|
|
||||||
const char* hfrValues = params.get(KEY_VIDEO_HFR_VALUES);
|
const char* hfrValues = params.get(KEY_VIDEO_HFR_VALUES);
|
||||||
if (hfrValues && *hfrValues && ! strstr(hfrValues, "off")) {
|
if (hfrValues && *hfrValues && ! strstr(hfrValues, "off")) {
|
||||||
char tmp[strlen(hfrValues) + 4 + 1];
|
char tmp[strlen(hfrValues) + 4 + 1];
|
||||||
@ -127,6 +137,9 @@ static char *camera_fixup_getparams(int __attribute__((unused)) id,
|
|||||||
params.set(KEY_VIDEO_HFR_VALUES, tmp);
|
params.set(KEY_VIDEO_HFR_VALUES, tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (videoMode)
|
||||||
|
params.set(android::CameraParameters::KEY_VIDEO_SNAPSHOT_SUPPORTED, "true");
|
||||||
|
|
||||||
android::String8 strParams = params.flatten();
|
android::String8 strParams = params.flatten();
|
||||||
char *ret = strdup(strParams.string());
|
char *ret = strdup(strParams.string());
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user