Lines Matching refs:gpMfeConfig

229 static MS_S32 MDrv_MFE_GetBits(MFE_CONFIG* gpMfeConfig, BITSFRAME_INFO *bits_info)  in MDrv_MFE_GetBits()  argument
233 MS_S32 num_of_buffers = gpMfeConfig->ctxBufInfo.m_nOutBuffer; in MDrv_MFE_GetBits()
236 if(gpMfeConfig->PollingMode) { in MDrv_MFE_GetBits()
253 if(gpMfeConfig->GopInfo.nCodingOrder > 2){ in MDrv_MFE_GetBits()
269 switch (gpMfeConfig->MFEClk) in MDrv_MFE_GetBits()
283 switch (gpMfeConfig->MFEClk) in MDrv_MFE_GetBits()
309 if(MDrv_MFE_CheckEncodeDone(gpMfeConfig) == FALSE) { in MDrv_MFE_GetBits()
310 … bits_info[0].status = gpMfeConfig->bitsframe[gpMfeConfig->rbits_index].status = BITS_INFO_ZERO; in MDrv_MFE_GetBits()
320 index = gpMfeConfig->rbits_index; in MDrv_MFE_GetBits()
322 if (gpMfeConfig->_MFE_U32MFEEvent!=0) { in MDrv_MFE_GetBits()
323 bits_info[i].miuAddress = gpMfeConfig->bitsframe[index].miuAddress; in MDrv_MFE_GetBits()
324 bits_info[i].miuPointer = gpMfeConfig->bitsframe[index].miuPointer; in MDrv_MFE_GetBits()
325 bits_info[i].size = gpMfeConfig->bitsframe[index].size; in MDrv_MFE_GetBits()
326 bits_info[i].status = gpMfeConfig->bitsframe[index].status; in MDrv_MFE_GetBits()
327 bits_info[i].voptype = gpMfeConfig->bitsframe[index].voptype; in MDrv_MFE_GetBits()
329 bits_info[i].IVOP_address= gpMfeConfig->bitsframe[index].IVOP_address; in MDrv_MFE_GetBits()
330 gpMfeConfig->_MFE_U32MFEEvent ^= (1<<index); in MDrv_MFE_GetBits()
755 static MS_S32 MDrv_MFE_ENC_OneFrame(MFE_CONFIG* gpMfeConfig, MEMMAP_CUR_t *YUV_addr) in MDrv_MFE_ENC_OneFrame() argument
759 gpMfeConfig->encode_state = WRITE_MFE_REG; in MDrv_MFE_ENC_OneFrame()
763 if(gpMfeConfig->GopInfo.nCodingOrder > 2){ in MDrv_MFE_ENC_OneFrame()
782 for (i=0; i<gpMfeConfig->ctxBufInfo.m_nOutBuffer; i++) { in MDrv_MFE_ENC_OneFrame()
783 MS_ASSERT(gpMfeConfig->outbitsbuf[i].used_size==0); in MDrv_MFE_ENC_OneFrame()
784 gpMfeConfig->outbitsbuf[i].used_size = 0; in MDrv_MFE_ENC_OneFrame()
787 …de frame #%u(Enc) #%u(Disp)\n", (unsigned int)gpMfeConfig->GopInfo.nCodingOrder, (unsigned int)gpM… in MDrv_MFE_ENC_OneFrame()
789 gpMfeConfig->ctxBufInfo.m_nCurYAddr = YUV_addr->Cur_Y0; in MDrv_MFE_ENC_OneFrame()
790 gpMfeConfig->ctxBufInfo.m_nCurCAddr = YUV_addr->Cur_C0; in MDrv_MFE_ENC_OneFrame()
792 if(gpMfeConfig->m_bFrameMode == 0) { in MDrv_MFE_ENC_OneFrame()
793 gpMfeConfig->ctxBufInfo.m_nRefYAddr[1] = YUV_addr->Cur_Y1; in MDrv_MFE_ENC_OneFrame()
794 gpMfeConfig->ctxBufInfo.m_nRefCAddr[1] = YUV_addr->Cur_C1; in MDrv_MFE_ENC_OneFrame()
797 MDrv_MFE_EncodeVOP(gpMfeConfig, &gpMfeConfig->GopInfo); in MDrv_MFE_ENC_OneFrame()
800 …if (!(gpMfeConfig->nCodecType==REG_ENC_MODE_H264 && gpMfeConfig->ctxH264Info.structure==TOP_FIELD)) in MDrv_MFE_ENC_OneFrame()
801 gpMfeConfig->GopInfo.nCodingOrder++; in MDrv_MFE_ENC_OneFrame()
893 MFE_CONFIG* gpMfeConfig = (MFE_CONFIG *)MFE_fd; in MDrv_MFE_Ioctl() local
897 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
901 memset(gpMfeConfig, 0, sizeof(MFE_CONFIG)); in MDrv_MFE_Ioctl()
902 memset(&gpMfeConfig->GopInfo, 0, sizeof(GOPINFO)); in MDrv_MFE_Ioctl()
904 gpMfeConfig->rbits_index = 0; in MDrv_MFE_Ioctl()
905 gpMfeConfig->GopInfo.nCodingOrder = 0; in MDrv_MFE_Ioctl()
906 gpMfeConfig->_MFE_U32MFEEvent = 0; in MDrv_MFE_Ioctl()
907 gpMfeConfig->bForceIframe = FALSE; in MDrv_MFE_Ioctl()
908 gpMfeConfig->nDropFlag =0; in MDrv_MFE_Ioctl()
910 gpMfeConfig->nCodecType = pappPVR_Info->nCodecType; in MDrv_MFE_Ioctl()
911 gpMfeConfig->nDispWidth = pappPVR_Info->nDispWidth; in MDrv_MFE_Ioctl()
912 gpMfeConfig->nDispHeight = pappPVR_Info->nDispHeight; in MDrv_MFE_Ioctl()
913 gpMfeConfig->nBufWidth = pappPVR_Info->nBufWidth; in MDrv_MFE_Ioctl()
914 gpMfeConfig->nBufHeight = pappPVR_Info->nBufHeight; in MDrv_MFE_Ioctl()
915 gpMfeConfig->dram_base = pappPVR_Info->BitsBuffStart; in MDrv_MFE_Ioctl()
916 gpMfeConfig->dram_size = pappPVR_Info->BitsBuffSize; in MDrv_MFE_Ioctl()
917 gpMfeConfig->bInterlace = pappPVR_Info->bInterlace; in MDrv_MFE_Ioctl()
918 gpMfeConfig->nPbetweenI = pappPVR_Info->nPbetweenI; in MDrv_MFE_Ioctl()
919 gpMfeConfig->nBbetweenP = pappPVR_Info->nBbetweenP; in MDrv_MFE_Ioctl()
920 gpMfeConfig->FrameRatex100 = pappPVR_Info->FrameRatex100; in MDrv_MFE_Ioctl()
921 gpMfeConfig->nBitrate = pappPVR_Info->nBitrate; in MDrv_MFE_Ioctl()
922 gpMfeConfig->nP_is_infinite = pappPVR_Info->nP_is_infinite; in MDrv_MFE_Ioctl()
923 gpMfeConfig->ctxBufInfo.m_nOutBuffer = pappPVR_Info->nOutBuffer; in MDrv_MFE_Ioctl()
924 gpMfeConfig->ctxBufInfo.m_OutBufferSize = pappPVR_Info->OutBufferSize; in MDrv_MFE_Ioctl()
925 gpMfeConfig->enableReduceBW = pappPVR_Info->enableReduceBW; in MDrv_MFE_Ioctl()
926 gpMfeConfig->enableFastMode = pappPVR_Info->enableFastMode; in MDrv_MFE_Ioctl()
927 memcpy(&gpMfeConfig->MfeCropInfo, &pappPVR_Info->MfeCropInfo,sizeof(MFE_CROP_INFO_t)); in MDrv_MFE_Ioctl()
929 gpMfeConfig->m_bFrameMode = pappPVR_Info->m_bFrameMode; in MDrv_MFE_Ioctl()
930 gpMfeConfig->m_bFDC_mode = pappPVR_Info->fdc_mode; in MDrv_MFE_Ioctl()
931 gpMfeConfig->m_quality = pappPVR_Info->quality; in MDrv_MFE_Ioctl()
932 memcpy(&gpMfeConfig->MfeAdvInfo,&pappPVR_Info->MfeAdvInfo,sizeof(MFE_ADV_INFO_t)); in MDrv_MFE_Ioctl()
934 gpMfeConfig->m_bFrameMode = 1; in MDrv_MFE_Ioctl()
937 gpMfeConfig->PollingMode = 1; in MDrv_MFE_Ioctl()
938 gpMfeConfig->ctxRateControl.m_nVPMbRow = MFE_ER_MBY; in MDrv_MFE_Ioctl()
939 gpMfeConfig->ctxRateControl.m_nVPSize = MFE_ER_BS_TH; in MDrv_MFE_Ioctl()
940 gpMfeConfig->MFEClk= pappPVR_Info->MFEClk; in MDrv_MFE_Ioctl()
941 gpMfeConfig->TimeIncreamentRes = pappPVR_Info->TimeIncreamentRes; in MDrv_MFE_Ioctl()
942 gpMfeConfig->VopTimeIncreament = pappPVR_Info->VopTimeIncreament; in MDrv_MFE_Ioctl()
944 if(gpMfeConfig->nPbetweenI == -1){ in MDrv_MFE_Ioctl()
945 gpMfeConfig->nP_is_infinite = 1; in MDrv_MFE_Ioctl()
950 gpMfeConfig->VTMode = 1; in MDrv_MFE_Ioctl()
951 gpMfeConfig->VTRateCtrl.m_bDropFrameEnabled= 1; in MDrv_MFE_Ioctl()
954 gpMfeConfig->bColorFormat = pappPVR_Info->bColorFormat; in MDrv_MFE_Ioctl()
956 gpMfeConfig->SecurityMode = 1; in MDrv_MFE_Ioctl()
958 if(gpMfeConfig->bColorFormat==MFE_YUYV) { in MDrv_MFE_Ioctl()
959 gpMfeConfig->g_nUseYUV422 = 1; in MDrv_MFE_Ioctl()
960 } else if(gpMfeConfig->bColorFormat==MFE_YVYU) { in MDrv_MFE_Ioctl()
961 gpMfeConfig->g_nUseYUV422 = 2; in MDrv_MFE_Ioctl()
962 } else if(gpMfeConfig->bColorFormat==MFE_UYVY) { in MDrv_MFE_Ioctl()
963 gpMfeConfig->g_nUseYUV422 = 3; in MDrv_MFE_Ioctl()
964 } else if(gpMfeConfig->bColorFormat==MFE_VYUY) { in MDrv_MFE_Ioctl()
965 gpMfeConfig->g_nUseYUV422 = 4; in MDrv_MFE_Ioctl()
967 gpMfeConfig->g_nUseYUV422 = 0; in MDrv_MFE_Ioctl()
971 gpMfeConfig->UseCABAC = 1; in MDrv_MFE_Ioctl()
974gpMfeConfig->bEnableTLB = (pappPVR_Info->reserved1 & (MS_U32)MFE_ENABLE_TLB_FLAG) ? 1 : 0; in MDrv_MFE_Ioctl()
976 MHAL_MFE_CreateRegMap(&gpMfeConfig->mfe_reg,&gpMfeConfig->mfe_reg1); in MDrv_MFE_Ioctl()
977 MDrv_MFE_Init(gpMfeConfig); in MDrv_MFE_Ioctl()
981 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
982 memcpy((MS_S32*)arg,&gpMfeConfig->ctxJpgInfo.QTable[0][0],sizeof(MS_S32)*64); in MDrv_MFE_Ioctl()
983 memcpy(((MS_S32*)arg)+64,&gpMfeConfig->ctxJpgInfo.QTable[1][0],sizeof(MS_S32)*64); in MDrv_MFE_Ioctl()
987 if (gpMfeConfig != NULL) { in MDrv_MFE_Ioctl()
988 gpMfeConfig->m_quality = (MS_U32)arg; in MDrv_MFE_Ioctl()
990 mfeJPE_Set_QTABLE(gpMfeConfig); in MDrv_MFE_Ioctl()
995 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
997 MDrv_MFE_ENC_OneFrame(gpMfeConfig, (MEMMAP_CUR_t*)arg); in MDrv_MFE_Ioctl()
1001 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1003 MDrv_MFE_GetDispOrder(gpMfeConfig, &gpMfeConfig->GopInfo, (MS_U32*)arg); in MDrv_MFE_Ioctl()
1007 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1010 return MDrv_MFE_GetBits(gpMfeConfig,bits_info); in MDrv_MFE_Ioctl()
1014 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1016 gpMfeConfig->nBitrate = pappPVR_Info->nBitrate; in MDrv_MFE_Ioctl()
1017 ms_dprintk(DRV_L1, "[IOCTL] MFE_IOC_SETBITRATE = %d\n", (int)gpMfeConfig->nBitrate); in MDrv_MFE_Ioctl()
1021 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1023 gpMfeConfig->bColorFormat = pappPVR_Info->bColorFormat; in MDrv_MFE_Ioctl()
1024 if(gpMfeConfig->bColorFormat==MFE_YUYV) { in MDrv_MFE_Ioctl()
1025 gpMfeConfig->g_nUseYUV422 = 1; in MDrv_MFE_Ioctl()
1026 } else if(gpMfeConfig->bColorFormat==MFE_YVYU) { in MDrv_MFE_Ioctl()
1027 gpMfeConfig->g_nUseYUV422 = 2; in MDrv_MFE_Ioctl()
1028 } else if(gpMfeConfig->bColorFormat==MFE_UYVY) { in MDrv_MFE_Ioctl()
1029 gpMfeConfig->g_nUseYUV422 = 3; in MDrv_MFE_Ioctl()
1030 } else if(gpMfeConfig->bColorFormat==MFE_VYUY) { in MDrv_MFE_Ioctl()
1031 gpMfeConfig->g_nUseYUV422 = 4; in MDrv_MFE_Ioctl()
1033 gpMfeConfig->g_nUseYUV422 = 0; in MDrv_MFE_Ioctl()
1035 … ms_dprintk(DRV_L2, "[IOCTL] MFE_IOC_SET_COLOR_FORMAT = %d\n", gpMfeConfig->bColorFormat); in MDrv_MFE_Ioctl()
1039 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1041 gpMfeConfig->nBitrate = pappPVR_Info->nBitrate; in MDrv_MFE_Ioctl()
1042 ms_dprintk(DRV_L1, "[IOCTL] MFE_IOC_RESET_BITRATE = %d\n", (int)gpMfeConfig->nBitrate); in MDrv_MFE_Ioctl()
1043 MfeDrvRateControlInit(gpMfeConfig); in MDrv_MFE_Ioctl()
1047 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1049 gpMfeConfig->PollingMode = pappPVR_Info->enableISR==1?0:1; in MDrv_MFE_Ioctl()
1050 … ms_dprintk(DRV_L1, "[IOCTL] MFE_IOC_SET_ISR = %u\n", (unsigned int)gpMfeConfig->PollingMode); in MDrv_MFE_Ioctl()
1054 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1056 gpMfeConfig->FrameRatex100 = pappPVR_Info->FrameRatex100; in MDrv_MFE_Ioctl()
1057 … ms_dprintk(DRV_L1, "[IOCTL] MFE_IOC_RESET_FRAMERATE = %d\n", (int)gpMfeConfig->FrameRatex100); in MDrv_MFE_Ioctl()
1058 MfeDrvRateControlInit(gpMfeConfig); in MDrv_MFE_Ioctl()
1062 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1064 gpMfeConfig->FrameRatex100 = pappPVR_Info->FrameRatex100; in MDrv_MFE_Ioctl()
1065 gpMfeConfig->nBitrate = pappPVR_Info->nBitrate; in MDrv_MFE_Ioctl()
1066 MfeDrvRateControlInit(gpMfeConfig); in MDrv_MFE_Ioctl()
1068 (int)gpMfeConfig->nBitrate, (int)gpMfeConfig->FrameRatex100); in MDrv_MFE_Ioctl()
1072 if (gpMfeConfig != NULL) { in MDrv_MFE_Ioctl()
1074 MDrv_MFE_clear_bitsbuf(gpMfeConfig, arg); in MDrv_MFE_Ioctl()
1078 if (gpMfeConfig != NULL) { in MDrv_MFE_Ioctl()
1080 MDrv_MFE_Finish(gpMfeConfig); in MDrv_MFE_Ioctl()
1081 MHAL_MFE_DelRegMap(&gpMfeConfig->mfe_reg,&gpMfeConfig->mfe_reg1); in MDrv_MFE_Ioctl()
1085 if (gpMfeConfig != NULL) { in MDrv_MFE_Ioctl()
1087 gpMfeConfig->bForceIframe = TRUE; in MDrv_MFE_Ioctl()
1091 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1092 … ms_dprintk(DRV_L3, "[IOCTL] MFE_IOC_GET_DROPFLAG = %u\n", (unsigned int)gpMfeConfig->nDropFlag); in MDrv_MFE_Ioctl()
1093 *((MS_U32 *)arg) = gpMfeConfig->nDropFlag; in MDrv_MFE_Ioctl()
1097 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1098 …RV_L1, "[IOCTL] MFE_IOC_GET_SKIPFLAG = %d\n", (int)rc_CheckSkippedFrame(&gpMfeConfig->VTRateCtrl)); in MDrv_MFE_Ioctl()
1099 *((MS_U32 *)arg) = rc_CheckSkippedFrame(&gpMfeConfig->VTRateCtrl); in MDrv_MFE_Ioctl()
1103 if (gpMfeConfig != NULL) { in MDrv_MFE_Ioctl()
1105 MDrv_MFE_SetMIUOffset(gpMfeConfig, arg); in MDrv_MFE_Ioctl()
1118 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1120 MDrv_MFE_GetConfigBytes(gpMfeConfig, (void*)arg); in MDrv_MFE_Ioctl()
1124 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1125 …"[IOCTL] MFE_IOC_GET_SKIPSHORTHEADER = %d\n", (int)rc_CheckSkippedFrame(&gpMfeConfig->VTRateCtrl)); in MDrv_MFE_Ioctl()
1126 *((MS_U32 *)arg) = rc_CheckSkippedFrame(&gpMfeConfig->VTRateCtrl); in MDrv_MFE_Ioctl()
1130 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1131 …ms_dprintk(DRV_L1, "[IOCTL] MFE_IOC_GET_FRAME_TYPE = %u\n", (unsigned int)gpMfeConfig->vopPredType… in MDrv_MFE_Ioctl()
1132 *((MS_U32 *)arg) = gpMfeConfig->vopPredType; in MDrv_MFE_Ioctl()
1138 MDrv_MFE_SetOSRegBase(gpMfeConfig,arg); in MDrv_MFE_Ioctl()
1142 if (gpMfeConfig != NULL) { in MDrv_MFE_Ioctl()
1144 if(gpMfeConfig->nCodecType == REG_ENC_MODE_H264) in MDrv_MFE_Ioctl()
1145 GenerateSPSPPS(gpMfeConfig); in MDrv_MFE_Ioctl()
1159 if (gpMfeConfig != NULL && arg != 0) { in MDrv_MFE_Ioctl()
1163 gpMfeConfig->setLevel = vui_info->level; in MDrv_MFE_Ioctl()
1164gpMfeConfig->setVUI_aspect_ratio_info_present_flag = vui_info->aspect_ratio_info_present_flag; in MDrv_MFE_Ioctl()
1165 gpMfeConfig->setVUI_aspect_ratio_idc = vui_info->aspect_ratio_idc; in MDrv_MFE_Ioctl()
1166 gpMfeConfig->setVUI_sar_width = vui_info->sar_width; in MDrv_MFE_Ioctl()
1167 gpMfeConfig->setVUI_sar_height = vui_info->sar_height; in MDrv_MFE_Ioctl()
1168 gpMfeConfig->ctxH264Info.LevelIDC = gpMfeConfig->setLevel; in MDrv_MFE_Ioctl()
1169 GenerateSPSPPS(gpMfeConfig); in MDrv_MFE_Ioctl()