avcodec/j2kenc: drop dependancy on sizeof(AVFrame)
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 17 Dec 2013 15:27:36 +0000 (16:27 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 7 Jan 2014 20:28:41 +0000 (21:28 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8443b27072a076abb28d7f2f60bc90e1d5c285df)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/j2kenc.c

index d9f5eaf..498c7c0 100644 (file)
@@ -60,7 +60,7 @@ typedef struct {
 
 typedef struct {
     AVCodecContext *avctx;
-    AVFrame picture;
+    const AVFrame *picture;
 
     int width, height; ///< image width and height
     uint8_t cbps[4]; ///< bits per sample in particular components
@@ -390,18 +390,18 @@ static void copy_frame(Jpeg2000EncoderContext *s)
             for (compno = 0; compno < s->ncomponents; compno++){
                 Jpeg2000Component *comp = tile->comp + compno;
                 int *dst = comp->i_data;
-                line = s->picture.data[compno]
-                       + comp->coord[1][0] * s->picture.linesize[compno]
+                line = s->picture->data[compno]
+                       + comp->coord[1][0] * s->picture->linesize[compno]
                        + comp->coord[0][0];
                 for (y = comp->coord[1][0]; y < comp->coord[1][1]; y++){
                     uint8_t *ptr = line;
                     for (x = comp->coord[0][0]; x < comp->coord[0][1]; x++)
                         *dst++ = *ptr++ - (1 << 7);
-                    line += s->picture.linesize[compno];
+                    line += s->picture->linesize[compno];
                 }
             }
         } else{
-            line = s->picture.data[0] + tile->comp[0].coord[1][0] * s->picture.linesize[0]
+            line = s->picture->data[0] + tile->comp[0].coord[1][0] * s->picture->linesize[0]
                    + tile->comp[0].coord[0][0] * s->ncomponents;
 
             i = 0;
@@ -412,7 +412,7 @@ static void copy_frame(Jpeg2000EncoderContext *s)
                         tile->comp[compno].i_data[i] = *ptr++  - (1 << 7);
                     }
                 }
-                line += s->picture.linesize[0];
+                line += s->picture->linesize[0];
             }
         }
     }
@@ -927,10 +927,9 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
     s->buf = s->buf_start = pkt->data;
     s->buf_end = pkt->data + pkt->size;
 
-    s->picture = *pict;
-    avctx->coded_frame= &s->picture;
+    s->picture = pict;
 
-    s->lambda = s->picture.quality * LAMBDA_SCALE;
+    s->lambda = s->picture->quality * LAMBDA_SCALE;
 
     copy_frame(s);
     reinit(s);