From e183b6d17cc5730f41f44ccca5c9857e19385f5f Mon Sep 17 00:00:00 2001
From: Stefan Gehrer <stefan.gehrer@gmx.de>
Date: Sat, 7 Jul 2007 05:27:59 +0000
Subject: [PATCH] move preparation of chroma intra prediction into its own
 inline function

Originally committed as revision 9513 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/cavs.c | 15 +--------------
 libavcodec/cavs.h | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/libavcodec/cavs.c b/libavcodec/cavs.c
index b6db8fe361f..c1b9f49463e 100644
--- a/libavcodec/cavs.c
+++ b/libavcodec/cavs.c
@@ -657,20 +657,7 @@ static int decode_mb_i(AVSContext *h, int cbp_code) {
     }
 
     /* chroma intra prediction */
-    /* extend borders by one pixel */
-    h->left_border_u[9] = h->left_border_u[8];
-    h->left_border_v[9] = h->left_border_v[8];
-    h->top_border_u[h->mbx*10+9] = h->top_border_u[h->mbx*10+8];
-    h->top_border_v[h->mbx*10+9] = h->top_border_v[h->mbx*10+8];
-    if(h->mbx && h->mby) {
-        h->top_border_u[h->mbx*10] = h->left_border_u[0] = h->topleft_border_u;
-        h->top_border_v[h->mbx*10] = h->left_border_v[0] = h->topleft_border_v;
-    } else {
-        h->left_border_u[0] = h->left_border_u[1];
-        h->left_border_v[0] = h->left_border_v[1];
-        h->top_border_u[h->mbx*10] = h->top_border_u[h->mbx*10+1];
-        h->top_border_v[h->mbx*10] = h->top_border_v[h->mbx*10+1];
-    }
+    load_intra_pred_chroma(h);
     h->intra_pred_c[pred_mode_uv](h->cu, &h->top_border_u[h->mbx*10],
                                   h->left_border_u, h->c_stride);
     h->intra_pred_c[pred_mode_uv](h->cv, &h->top_border_v[h->mbx*10],
diff --git a/libavcodec/cavs.h b/libavcodec/cavs.h
index 66105745369..a2d050a2b31 100644
--- a/libavcodec/cavs.h
+++ b/libavcodec/cavs.h
@@ -276,6 +276,23 @@ static inline void load_intra_pred_luma(AVSContext *h, uint8_t *top,
     }
 }
 
+static inline void load_intra_pred_chroma(AVSContext *h) {
+    /* extend borders by one pixel */
+    h->left_border_u[9] = h->left_border_u[8];
+    h->left_border_v[9] = h->left_border_v[8];
+    h->top_border_u[h->mbx*10+9] = h->top_border_u[h->mbx*10+8];
+    h->top_border_v[h->mbx*10+9] = h->top_border_v[h->mbx*10+8];
+    if(h->mbx && h->mby) {
+        h->top_border_u[h->mbx*10] = h->left_border_u[0] = h->topleft_border_u;
+        h->top_border_v[h->mbx*10] = h->left_border_v[0] = h->topleft_border_v;
+    } else {
+        h->left_border_u[0] = h->left_border_u[1];
+        h->left_border_v[0] = h->left_border_v[1];
+        h->top_border_u[h->mbx*10] = h->top_border_u[h->mbx*10+1];
+        h->top_border_v[h->mbx*10] = h->top_border_v[h->mbx*10+1];
+    }
+}
+
 static inline void modify_pred(const int_fast8_t *mod_table, int *mode) {
     *mode = mod_table[*mode];
     if(*mode < 0) {
-- 
GitLab