📄 mfcsetconfig.c
字号:
/* * Project Name MFC DRIVER * Copyright 2007 Samsung Electronics Co, Ltd. All Rights Reserved. * * This software is the confidential and proprietary information * of Samsung Electronics ("Confidential Information"). * you shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Samsung Electronics * * This source file is for printing the driver's log messages. * * @name MFC DRIVER MODULE Module (MfcSetConfig.c) * @author Jiun, Yu(jiun.yu@samsung.com) * @date 03-28-08 */#include "MfcDrvParams.h"#include "MFC_Instance.h"#include "MfcConfig.h"#include "LogMsg.h"int MFC_GetConfigParams( MFCInstCtx *pMfcInst, MFC_ARGS *args // Input arguments for IOCTL_MFC_SET_CONFIG ){ int ret; switch (args->get_config.in_config_param) { case MFC_GET_CONFIG_DEC_FRAME_NEED_COUNT: args->get_config.out_config_value[0] = pMfcInst->frambufCnt; ret = MFCINST_RET_OK; break; default: ret = -1; } // Output arguments for IOCTL_MFC_SET_CONFIG args->get_config.ret_code = ret; return MFCINST_RET_OK;}int MFC_SetConfigParams( MFCInstCtx *pMfcInst, MFC_ARGS *args // Input arguments for IOCTL_MFC_SET_CONFIG ){ int ret; unsigned int param_change_enable = 0, param_change_val; switch (args->set_config.in_config_param) { case MFC_SET_CONFIG_DEC_ROTATE:#if (MFC_ROTATE_ENABLE == 1) args->set_config.out_config_value_old[0] = MFCInst_Set_PostRotate(pMfcInst, args->set_config.in_config_value[0]); ret = MFCINST_RET_OK;#else LOG_MSG(LOG_ERROR, "MFC_SetConfigParams", "IOCTL_MFC_SET_CONFIG with MFC_SET_CONFIG_DEC_ROTATE is not supported.\r\n"); LOG_MSG(LOG_ERROR, "MFC_SetConfigParams", "Please check if MFC_ROTATE_ENABLE is defined as 1 in MfcConfig.h file.\r\n"); ret = MFCINST_RET_OK;#endif break; case MFC_SET_CONFIG_ENC_H263_PARAM: args->set_config.out_config_value_old[0] = pMfcInst->h263_annex; pMfcInst->h263_annex = args->set_config.in_config_value[0]; LOG_MSG(LOG_TRACE, "MFC_SetConfigParams", "parameter : 0x%X.\r\n", pMfcInst->h263_annex); ret = MFCINST_RET_OK; break; case MFC_SET_CONFIG_ENC_SLICE_MODE: if (pMfcInst->enc_num_slices) { args->set_config.out_config_value_old[0] = 1; args->set_config.out_config_value_old[1] = pMfcInst->enc_num_slices; } else { args->set_config.out_config_value_old[0] = 0; args->set_config.out_config_value_old[1] = 0; } if (args->set_config.in_config_value[0]) pMfcInst->enc_num_slices = args->set_config.in_config_value[1]; else pMfcInst->enc_num_slices = 0; ret = MFCINST_RET_OK; break; case MFC_SET_CONFIG_ENC_PARAM_CHANGE: switch (args->set_config.in_config_value[0]) { case ENC_PARAM_GOP_NUM: param_change_enable = (1 << 0); break; case ENC_PARAM_INTRA_QP: param_change_enable = (1 << 1); break; case ENC_PARAM_BITRATE: param_change_enable = (1 << 2); break; case ENC_PARAM_F_RATE: param_change_enable = (1 << 3); break; case ENC_PARAM_INTRA_REF: param_change_enable = (1 << 4); break; case ENC_PARAM_SLICE_MODE: param_change_enable = (1 << 5); break; default: break; } param_change_val = args->set_config.in_config_value[1]; ret = MFCInst_EncParamChange(pMfcInst, param_change_enable, param_change_val); break; case MFC_SET_CONFIG_ENC_CUR_PIC_OPT: switch (args->set_config.in_config_value[0]) { case ENC_PIC_OPT_IDR: pMfcInst->enc_pic_option ^= (args->set_config.in_config_value[1] << 1); break; case ENC_PIC_OPT_SKIP: pMfcInst->enc_pic_option ^= (args->set_config.in_config_value[1] << 0); break; case ENC_PIC_OPT_RECOVERY: pMfcInst->enc_pic_option ^= (args->set_config.in_config_value[1] << 24); break; default: break; } ret = MFCINST_RET_OK; break; default: ret = -1; } // Output arguments for IOCTL_MFC_SET_CONFIG args->set_config.ret_code = ret; return MFCINST_RET_OK;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -