void ff_hevc_pred_init(HEVCPredContext *hpc, int bit_depth) { #undef FUNC #define FUNC(a, depth) a ## _ ## depth #define HEVC_PRED(depth) \ hpc->intra_pred[0] = FUNC(intra_pred_2, depth); \ hpc->intra_pred[1] = FUNC(intra_pred_3, depth); \ hpc->intra_pred[2] = FUNC(intra_pred_4, depth); \ hpc->intra_pred[3] = FUNC(intra_pred_5, depth); \ hpc->pred_planar[0] = FUNC(pred_planar_0, depth); \ hpc->pred_planar[1] = FUNC(pred_planar_1, depth); \ hpc->pred_planar[2] = FUNC(pred_planar_2, depth); \ hpc->pred_planar[3] = FUNC(pred_planar_3, depth); \ hpc->pred_dc = FUNC(pred_dc, depth); \ hpc->pred_angular[0] = FUNC(pred_angular_0, depth); \ hpc->pred_angular[1] = FUNC(pred_angular_1, depth); \ hpc->pred_angular[2] = FUNC(pred_angular_2, depth); \ hpc->pred_angular[3] = FUNC(pred_angular_3, depth); switch (bit_depth) { case 9: HEVC_PRED(9); break; case 10: HEVC_PRED(10); break; default: HEVC_PRED(8); break; } }
void ff_hevc_pred_init_x86(HEVCPredContext *hpc, int bit_depth) { int mm_flags = av_get_cpu_flags(); if (bit_depth == 8) { if (HAVE_SSE42 && EXTERNAL_SSE42(mm_flags)) { HEVC_PRED(8); } } if (bit_depth == 10) { if (HAVE_SSE42 && EXTERNAL_SSE42(mm_flags)) { HEVC_PRED(10); } } }