hevc: templatize intra_pred
[ffmpeg.git] / libavcodec / hevcpred_template.c
index 19ca96d..2e1a886 100644 (file)
@@ -28,7 +28,8 @@
 
 #define POS(x, y) src[(x) + stride * (y)]
 
-static void FUNC(intra_pred)(HEVCContext *s, int x0, int y0, int log2_size, int c_idx)
+static av_always_inline void FUNC(intra_pred)(HEVCContext *s, int x0, int y0,
+                                              int log2_size, int c_idx)
 {
 #define PU(x) \
     ((x) >> s->sps->log2_min_pu_size)
@@ -349,6 +350,19 @@ static void FUNC(intra_pred)(HEVCContext *s, int x0, int y0, int log2_size, int
     }
 }
 
+#define INTRA_PRED(size)                                                            \
+static void FUNC(intra_pred_ ## size)(HEVCContext *s, int x0, int y0, int c_idx)    \
+{                                                                                   \
+    FUNC(intra_pred)(s, x0, y0, size, c_idx);                                       \
+}
+
+INTRA_PRED(2)
+INTRA_PRED(3)
+INTRA_PRED(4)
+INTRA_PRED(5)
+
+#undef INTRA_PRED
+
 static av_always_inline void FUNC(pred_planar)(uint8_t *_src, const uint8_t *_top,
                                   const uint8_t *_left, ptrdiff_t stride,
                                   int trafo_size)