This will allow deMpegEncContextizing the LJPEG encoder.
---
 libavcodec/ljpegenc.c |   16 ++++++++--------
 libavcodec/mjpegenc.c |   12 ++++++------
 libavcodec/mjpegenc.h |    2 +-
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c
index 46b51ab..1ca2d37 100644
--- a/libavcodec/ljpegenc.c
+++ b/libavcodec/ljpegenc.c
@@ -115,9 +115,9 @@ static int encode_picture_lossless(AVCodecContext *avctx, 
AVPacket *pkt,
                     diff= ((left[i] - pred + 0x100)&0x1FF) - 0x100;
 
                     if(i==0)
-                        ff_mjpeg_encode_dc(s, diff, m->huff_size_dc_luminance, 
m->huff_code_dc_luminance); //FIXME ugly
+                        ff_mjpeg_encode_dc(&s->pb, diff, 
m->huff_size_dc_luminance, m->huff_code_dc_luminance); //FIXME ugly
                     else
-                        ff_mjpeg_encode_dc(s, diff, 
m->huff_size_dc_chrominance, m->huff_code_dc_chrominance);
+                        ff_mjpeg_encode_dc(&s->pb, diff, 
m->huff_size_dc_chrominance, m->huff_code_dc_chrominance);
                 }
             }
         }
@@ -158,9 +158,9 @@ static int encode_picture_lossless(AVCodecContext *avctx, 
AVPacket *pkt,
                                 }
 
                                 if(i==0)
-                                    ff_mjpeg_encode_dc(s, *ptr - pred, 
m->huff_size_dc_luminance, m->huff_code_dc_luminance); //FIXME ugly
+                                    ff_mjpeg_encode_dc(&s->pb, *ptr - pred, 
m->huff_size_dc_luminance, m->huff_code_dc_luminance); //FIXME ugly
                                 else
-                                    ff_mjpeg_encode_dc(s, *ptr - pred, 
m->huff_size_dc_chrominance, m->huff_code_dc_chrominance);
+                                    ff_mjpeg_encode_dc(&s->pb, *ptr - pred, 
m->huff_size_dc_chrominance, m->huff_code_dc_chrominance);
                             }
                         }
                     }
@@ -170,19 +170,19 @@ static int encode_picture_lossless(AVCodecContext *avctx, 
AVPacket *pkt,
                         int x, y, h, v, linesize;
                         h = s->mjpeg_hsample[i];
                         v = s->mjpeg_vsample[i];
-                        linesize= p->linesize[i];
+                        linesize = pict->linesize[i];
 
                         for(y=0; y<v; y++){
                             for(x=0; x<h; x++){
                                 int pred;
 
-                                ptr = p->data[i] + (linesize * (v * mb_y + y)) 
+ (h * mb_x + x); //FIXME optimize this crap
+                                ptr = pict->data[i] + (linesize * (v * mb_y + 
y)) + (h * mb_x + x); //FIXME optimize this crap
                                 PREDICT(pred, ptr[-linesize-1], 
ptr[-linesize], ptr[-1], predictor);
 
                                 if(i==0)
-                                    ff_mjpeg_encode_dc(s, *ptr - pred, 
m->huff_size_dc_luminance, m->huff_code_dc_luminance); //FIXME ugly
+                                    ff_mjpeg_encode_dc(&s->pb, *ptr - pred, 
m->huff_size_dc_luminance, m->huff_code_dc_luminance); //FIXME ugly
                                 else
-                                    ff_mjpeg_encode_dc(s, *ptr - pred, 
m->huff_size_dc_chrominance, m->huff_code_dc_chrominance);
+                                    ff_mjpeg_encode_dc(&s->pb, *ptr - pred, 
m->huff_size_dc_chrominance, m->huff_code_dc_chrominance);
                             }
                         }
                     }
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index f5c70f9..054cc66 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -340,13 +340,13 @@ void ff_mjpeg_encode_picture_trailer(PutBitContext *pb, 
int header_bits)
     put_marker(pb, EOI);
 }
 
-void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
+void ff_mjpeg_encode_dc(PutBitContext *pb, int val,
                         uint8_t *huff_size, uint16_t *huff_code)
 {
     int mant, nbits;
 
     if (val == 0) {
-        put_bits(&s->pb, huff_size[0], huff_code[0]);
+        put_bits(pb, huff_size[0], huff_code[0]);
     } else {
         mant = val;
         if (val < 0) {
@@ -356,9 +356,9 @@ void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
 
         nbits= av_log2_16bit(val) + 1;
 
-        put_bits(&s->pb, huff_size[nbits], huff_code[nbits]);
+        put_bits(pb, huff_size[nbits], huff_code[nbits]);
 
-        put_sbits(&s->pb, nbits, mant);
+        put_sbits(pb, nbits, mant);
     }
 }
 
@@ -375,11 +375,11 @@ static void encode_block(MpegEncContext *s, int16_t 
*block, int n)
     dc = block[0]; /* overflow is impossible */
     val = dc - s->last_dc[component];
     if (n < 4) {
-        ff_mjpeg_encode_dc(s, val, m->huff_size_dc_luminance, 
m->huff_code_dc_luminance);
+        ff_mjpeg_encode_dc(&s->pb, val, m->huff_size_dc_luminance, 
m->huff_code_dc_luminance);
         huff_size_ac = m->huff_size_ac_luminance;
         huff_code_ac = m->huff_code_ac_luminance;
     } else {
-        ff_mjpeg_encode_dc(s, val, m->huff_size_dc_chrominance, 
m->huff_code_dc_chrominance);
+        ff_mjpeg_encode_dc(&s->pb, val, m->huff_size_dc_chrominance, 
m->huff_code_dc_chrominance);
         huff_size_ac = m->huff_size_ac_chrominance;
         huff_code_ac = m->huff_code_ac_chrominance;
     }
diff --git a/libavcodec/mjpegenc.h b/libavcodec/mjpegenc.h
index 81dd747..2ad55f2 100644
--- a/libavcodec/mjpegenc.h
+++ b/libavcodec/mjpegenc.h
@@ -56,7 +56,7 @@ void ff_mjpeg_encode_picture_header(AVCodecContext *avctx, 
PutBitContext *pb,
                                     uint16_t intra_matrix[64]);
 void ff_mjpeg_encode_picture_trailer(PutBitContext *pb, int header_bits);
 void ff_mjpeg_encode_stuffing(PutBitContext *pbc);
-void ff_mjpeg_encode_dc(MpegEncContext *s, int val,
+void ff_mjpeg_encode_dc(PutBitContext *pb, int val,
                         uint8_t *huff_size, uint16_t *huff_code);
 void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[6][64]);
 
-- 
1.7.10.4

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to