Browse code

allows to disable jpegls decoder

Originally committed as revision 9070 to svn://svn.ffmpeg.org/ffmpeg/trunk

Aurelien Jacobs authored on 2007/05/19 23:31:57
Showing 5 changed files
... ...
@@ -97,15 +97,16 @@ OBJS-$(CONFIG_INDEO2_DECODER)          += indeo2.o
97 97
 OBJS-$(CONFIG_INDEO3_DECODER)          += indeo3.o
98 98
 OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
99 99
 OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER)  += dpcm.o
100
+OBJS-$(CONFIG_JPEGLS_DECODER)          += jpeglsdec.o jpegls.o mjpegdec.o mjpeg.o
100 101
 OBJS-$(CONFIG_JPEGLS_ENCODER)          += jpeglsenc.o jpegls.o
101 102
 OBJS-$(CONFIG_KMVC_DECODER)            += kmvc.o
102 103
 OBJS-$(CONFIG_LJPEG_ENCODER)           += ljpegenc.o mjpegenc.o mjpeg.o mpegvideo.o
103 104
 OBJS-$(CONFIG_LOCO_DECODER)            += loco.o
104 105
 OBJS-$(CONFIG_MACE3_DECODER)           += mace.o
105 106
 OBJS-$(CONFIG_MACE6_DECODER)           += mace.o
106
-OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
107
+OBJS-$(CONFIG_MJPEG_DECODER)           += mjpegdec.o mjpeg.o
107 108
 OBJS-$(CONFIG_MJPEG_ENCODER)           += mjpegenc.o mjpeg.o mpegvideo.o
108
-OBJS-$(CONFIG_MJPEGB_DECODER)          += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
109
+OBJS-$(CONFIG_MJPEGB_DECODER)          += mjpegdec.o mjpeg.o
109 110
 OBJS-$(CONFIG_MMVIDEO_DECODER)         += mmvideo.o
110 111
 OBJS-$(CONFIG_MP2_ENCODER)             += mpegaudio.o mpegaudiodata.o
111 112
 OBJS-$(CONFIG_MPC7_DECODER)            += mpc.o
... ...
@@ -153,14 +154,14 @@ OBJS-$(CONFIG_SOL_DPCM_DECODER)        += dpcm.o
153 153
 OBJS-$(CONFIG_SONIC_DECODER)           += sonic.o
154 154
 OBJS-$(CONFIG_SONIC_ENCODER)           += sonic.o
155 155
 OBJS-$(CONFIG_SONIC_LS_DECODER)        += sonic.o
156
-OBJS-$(CONFIG_SP5X_DECODER)            += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
156
+OBJS-$(CONFIG_SP5X_DECODER)            += mjpegdec.o mjpeg.o
157 157
 OBJS-$(CONFIG_SVQ1_DECODER)            += svq1.o
158 158
 OBJS-$(CONFIG_SVQ1_ENCODER)            += svq1.o
159 159
 OBJS-$(CONFIG_SVQ3_DECODER)            += h264.o
160 160
 OBJS-$(CONFIG_TARGA_DECODER)           += targa.o
161 161
 OBJS-$(CONFIG_TARGA_ENCODER)           += targaenc.o rle.o
162 162
 OBJS-$(CONFIG_THEORA_DECODER)          += vp3.o xiph.o vp3dsp.o
163
-OBJS-$(CONFIG_THP_DECODER)             += mjpegdec.o mjpeg.o jpeglsdec.o jpegls.o
163
+OBJS-$(CONFIG_THP_DECODER)             += mjpegdec.o mjpeg.o
164 164
 OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
165 165
 OBJS-$(CONFIG_TIFF_DECODER)            += tiff.o lzw.o
166 166
 OBJS-$(CONFIG_TIFF_ENCODER)            += tiffenc.o rle.o lzwenc.o
... ...
@@ -91,7 +91,7 @@ void avcodec_register_all(void)
91 91
     REGISTER_DECODER(INDEO2, indeo2);
92 92
     REGISTER_DECODER(INDEO3, indeo3);
93 93
     REGISTER_DECODER(INTERPLAY_VIDEO, interplay_video);
94
-    REGISTER_ENCODER(JPEGLS, jpegls);
94
+    REGISTER_ENCDEC (JPEGLS, jpegls);
95 95
     REGISTER_DECODER(KMVC, kmvc);
96 96
     REGISTER_ENCODER(LJPEG, ljpeg);
97 97
     REGISTER_DECODER(LOCO, loco);
... ...
@@ -2282,6 +2282,7 @@ extern AVCodec indeo2_decoder;
2282 2282
 extern AVCodec indeo3_decoder;
2283 2283
 extern AVCodec interplay_dpcm_decoder;
2284 2284
 extern AVCodec interplay_video_decoder;
2285
+extern AVCodec jpegls_decoder;
2285 2286
 extern AVCodec kmvc_decoder;
2286 2287
 extern AVCodec loco_decoder;
2287 2288
 extern AVCodec mace3_decoder;
... ...
@@ -29,6 +29,7 @@
29 29
 #include "bitstream.h"
30 30
 #include "golomb.h"
31 31
 #include "mjpeg.h"
32
+#include "mjpegdec.h"
32 33
 #include "jpegls.h"
33 34
 #include "jpeglsdec.h"
34 35
 
... ...
@@ -359,3 +360,16 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, int point_transfor
359 359
 
360 360
     return 0;
361 361
 }
362
+
363
+
364
+AVCodec jpegls_decoder = {
365
+    "jpegls",
366
+    CODEC_TYPE_VIDEO,
367
+    CODEC_ID_JPEGLS,
368
+    sizeof(MJpegDecodeContext),
369
+    ff_mjpeg_decode_init,
370
+    NULL,
371
+    ff_mjpeg_decode_end,
372
+    ff_mjpeg_decode_frame,
373
+    CODEC_CAP_DR1,
374
+};
... ...
@@ -36,6 +36,7 @@
36 36
 #include "avcodec.h"
37 37
 #include "dsputil.h"
38 38
 #include "mjpeg.h"
39
+#include "mjpegdec.h"
39 40
 #include "jpeglsdec.h"
40 41
 
41 42
 
... ...
@@ -63,7 +64,7 @@ static int build_vlc(VLC *vlc, const uint8_t *bits_table, const uint8_t *val_tab
63 63
     return init_vlc(vlc, 9, nb_codes, huff_size, 1, 1, huff_code, 2, 2, use_static);
64 64
 }
65 65
 
66
-static int mjpeg_decode_init(AVCodecContext *avctx)
66
+int ff_mjpeg_decode_init(AVCodecContext *avctx)
67 67
 {
68 68
     MJpegDecodeContext *s = avctx->priv_data;
69 69
 
... ...
@@ -802,7 +803,7 @@ static int mjpeg_decode_sos(MJpegDecodeContext *s)
802 802
         skip_bits(&s->gb, 8);
803 803
 
804 804
     if(s->lossless){
805
-        if(s->ls){
805
+        if(ENABLE_JPEGLS_DECODER && s->ls){
806 806
 //            for(){
807 807
 //            reset_ls_coding_parameters(s, 0);
808 808
 
... ...
@@ -1075,7 +1076,7 @@ found:
1075 1075
     return val;
1076 1076
 }
1077 1077
 
1078
-static int mjpeg_decode_frame(AVCodecContext *avctx,
1078
+int ff_mjpeg_decode_frame(AVCodecContext *avctx,
1079 1079
                               void *data, int *data_size,
1080 1080
                               uint8_t *buf, int buf_size)
1081 1081
 {
... ...
@@ -1237,7 +1238,7 @@ static int mjpeg_decode_frame(AVCodecContext *avctx,
1237 1237
                         return -1;
1238 1238
                     break;
1239 1239
                 case LSE:
1240
-                    if (ff_jpegls_decode_lse(s) < 0)
1240
+                    if (!ENABLE_JPEGLS_DECODER || ff_jpegls_decode_lse(s) < 0)
1241 1241
                         return -1;
1242 1242
                     break;
1243 1243
                 case EOI:
... ...
@@ -1473,7 +1474,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx,
1473 1473
     recoded[j++] = 0xFF;
1474 1474
     recoded[j++] = 0xD9;
1475 1475
 
1476
-    i = mjpeg_decode_frame(avctx, data, data_size, recoded, j);
1476
+    i = ff_mjpeg_decode_frame(avctx, data, data_size, recoded, j);
1477 1477
 
1478 1478
     av_free(recoded);
1479 1479
 
... ...
@@ -1572,7 +1573,7 @@ static int sp5x_decode_frame(AVCodecContext *avctx,
1572 1572
     return i;
1573 1573
 }
1574 1574
 
1575
-static int mjpeg_decode_end(AVCodecContext *avctx)
1575
+int ff_mjpeg_decode_end(AVCodecContext *avctx)
1576 1576
 {
1577 1577
     MJpegDecodeContext *s = avctx->priv_data;
1578 1578
     int i, j;
... ...
@@ -1592,10 +1593,10 @@ AVCodec mjpeg_decoder = {
1592 1592
     CODEC_TYPE_VIDEO,
1593 1593
     CODEC_ID_MJPEG,
1594 1594
     sizeof(MJpegDecodeContext),
1595
-    mjpeg_decode_init,
1595
+    ff_mjpeg_decode_init,
1596 1596
     NULL,
1597
-    mjpeg_decode_end,
1598
-    mjpeg_decode_frame,
1597
+    ff_mjpeg_decode_end,
1598
+    ff_mjpeg_decode_frame,
1599 1599
     CODEC_CAP_DR1,
1600 1600
     NULL
1601 1601
 };
... ...
@@ -1605,10 +1606,10 @@ AVCodec thp_decoder = {
1605 1605
     CODEC_TYPE_VIDEO,
1606 1606
     CODEC_ID_THP,
1607 1607
     sizeof(MJpegDecodeContext),
1608
-    mjpeg_decode_init,
1608
+    ff_mjpeg_decode_init,
1609 1609
     NULL,
1610
-    mjpeg_decode_end,
1611
-    mjpeg_decode_frame,
1610
+    ff_mjpeg_decode_end,
1611
+    ff_mjpeg_decode_frame,
1612 1612
     CODEC_CAP_DR1,
1613 1613
     NULL
1614 1614
 };
... ...
@@ -1618,9 +1619,9 @@ AVCodec mjpegb_decoder = {
1618 1618
     CODEC_TYPE_VIDEO,
1619 1619
     CODEC_ID_MJPEGB,
1620 1620
     sizeof(MJpegDecodeContext),
1621
-    mjpeg_decode_init,
1621
+    ff_mjpeg_decode_init,
1622 1622
     NULL,
1623
-    mjpeg_decode_end,
1623
+    ff_mjpeg_decode_end,
1624 1624
     mjpegb_decode_frame,
1625 1625
     CODEC_CAP_DR1,
1626 1626
     NULL
... ...
@@ -1631,9 +1632,9 @@ AVCodec sp5x_decoder = {
1631 1631
     CODEC_TYPE_VIDEO,
1632 1632
     CODEC_ID_SP5X,
1633 1633
     sizeof(MJpegDecodeContext),
1634
-    mjpeg_decode_init,
1634
+    ff_mjpeg_decode_init,
1635 1635
     NULL,
1636
-    mjpeg_decode_end,
1636
+    ff_mjpeg_decode_end,
1637 1637
     sp5x_decode_frame,
1638 1638
     CODEC_CAP_DR1,
1639 1639
     NULL