That loop is completely stand-alone.
---
 libavcodec/jpeg2000dec.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index f5d5daf..4395dcd 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -1060,14 +1060,12 @@ static inline void mct_decode(Jpeg2000DecoderContext 
*s, Jpeg2000Tile *tile)
     s->dsp.mct_decode[tile->codsty[0].transform](src[0], src[1], src[2], 
csize);
 }
 
-static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile,
-                                AVFrame *picture)
+static void tile_codeblocks(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile)
 {
+    Jpeg2000T1Context t1;
+
     int compno, reslevelno, bandno;
-    int x, y;
 
-    uint8_t *line;
-    Jpeg2000T1Context t1;
     /* Loop on tile components */
 
     for (compno = 0; compno < s->ncomponents; compno++) {
@@ -1093,7 +1091,9 @@ static int jpeg2000_decode_tile(Jpeg2000DecoderContext 
*s, Jpeg2000Tile *tile,
                     Jpeg2000Prec *prec = band->prec + precno;
 
                     /* Loop on codeblocks */
-                    for (cblkno = 0; cblkno < prec->nb_codeblocks_width * 
prec->nb_codeblocks_height; cblkno++) {
+                    for (cblkno = 0;
+                         cblkno < prec->nb_codeblocks_width * 
prec->nb_codeblocks_height;
+                         cblkno++) {
                         int x, y;
                         Jpeg2000Cblk *cblk = prec->cblk + cblkno;
                         decode_cblk(s, codsty, &t1, cblk,
@@ -1116,6 +1116,17 @@ static int jpeg2000_decode_tile(Jpeg2000DecoderContext 
*s, Jpeg2000Tile *tile,
         /* inverse DWT */
         ff_dwt_decode(&comp->dwt, codsty->transform == FF_DWT97 ? 
(void*)comp->f_data : (void*)comp->i_data);
     } /*end comp */
+}
+
+static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile,
+                                AVFrame *picture)
+{
+    int compno;
+    int x, y;
+
+    uint8_t *line;
+
+    tile_codeblocks(s, tile);
 
     /* inverse MCT transformation */
     if (tile->codsty[0].mct)
-- 
2.5.0

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to