Imported Upstream version 1.4+222+hg5f9f7194267b
[deb_x265.git] / source / encoder / api.cpp
index 66f8e2856dd0460c42ff1bb3d1120ab9b8318a43..74cee737a9c46919ea9a026a8e619871540f016b 100644 (file)
@@ -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;
-}