X-Git-Url: https://git.piment-noir.org/?p=deb_x265.git;a=blobdiff_plain;f=source%2Fencoder%2Fapi.cpp;h=74cee737a9c46919ea9a026a8e619871540f016b;hp=66f8e2856dd0460c42ff1bb3d1120ab9b8318a43;hb=b53f7c52d8280ab63876efd6eb292c21430ac607;hpb=5c9b45285dd64723ad1dac380b98a7b1f3095674 diff --git a/source/encoder/api.cpp b/source/encoder/api.cpp index 66f8e28..74cee73 100644 --- a/source/encoder/api.cpp +++ b/source/encoder/api.cpp @@ -73,7 +73,11 @@ x265_encoder *x265_encoder_open(x265_param *p) determineLevel(*param, encoder->m_vps); encoder->create(); - encoder->init(); + if (encoder->m_aborted) + { + delete encoder; + return NULL; + } x265_print_params(param); @@ -178,7 +182,6 @@ void x265_encoder_close(x265_encoder *enc) extern "C" void x265_cleanup(void) { - destroyROM(); BitCost::destroy(); } @@ -198,13 +201,12 @@ void x265_picture_init(x265_param *param, x265_picture *pic) pic->forceqp = X265_QP_AUTO; if (param->analysisMode) { - uint32_t numPartitions = 1 << (g_maxFullDepth * 2); uint32_t widthInCU = (param->sourceWidth + g_maxCUSize - 1) >> g_maxLog2CUSize; uint32_t heightInCU = (param->sourceHeight + g_maxCUSize - 1) >> g_maxLog2CUSize; uint32_t numCUsInFrame = widthInCU * heightInCU; pic->analysisData.numCUsInFrame = numCUsInFrame; - pic->analysisData.numPartitions = numPartitions; + pic->analysisData.numPartitions = NUM_CU_PARTITIONS; } } @@ -213,37 +215,3 @@ void x265_picture_free(x265_picture *p) { return x265_free(p); } - -int x265_alloc_analysis_data(x265_picture* pic) -{ - CHECKED_MALLOC(pic->analysisData.interData, x265_inter_data, pic->analysisData.numCUsInFrame * 85); - CHECKED_MALLOC(pic->analysisData.intraData, x265_intra_data, 1); - pic->analysisData.intraData->cuAddr = NULL; - pic->analysisData.intraData->depth = NULL; - pic->analysisData.intraData->modes = NULL; - pic->analysisData.intraData->partSizes = NULL; - pic->analysisData.intraData->poc = NULL; - CHECKED_MALLOC(pic->analysisData.intraData->depth, uint8_t, pic->analysisData.numPartitions * pic->analysisData.numCUsInFrame); - CHECKED_MALLOC(pic->analysisData.intraData->modes, uint8_t, pic->analysisData.numPartitions * pic->analysisData.numCUsInFrame); - CHECKED_MALLOC(pic->analysisData.intraData->partSizes, char, pic->analysisData.numPartitions * pic->analysisData.numCUsInFrame); - CHECKED_MALLOC(pic->analysisData.intraData->cuAddr, uint32_t, pic->analysisData.numCUsInFrame); - CHECKED_MALLOC(pic->analysisData.intraData->poc, int, pic->analysisData.numCUsInFrame); - return 0; - -fail: - x265_free_analysis_data(pic); - return -1; -} - -void x265_free_analysis_data(x265_picture* pic) -{ - X265_FREE(pic->analysisData.interData); - pic->analysisData.interData = NULL; - X265_FREE(pic->analysisData.intraData->depth); - X265_FREE(pic->analysisData.intraData->modes); - X265_FREE(pic->analysisData.intraData->partSizes); - X265_FREE(pic->analysisData.intraData->cuAddr); - X265_FREE(pic->analysisData.intraData->poc); - X265_FREE(pic->analysisData.intraData); - pic->analysisData.intraData = NULL; -}